Chapter 6 Computer Software 國立聯合大學 電子工程學系 蕭裕弘 Chapter Goals 說明電腦軟體的定義與種類 介紹兩種常見的系統軟體 說明作業系統的功能與組成 介紹一些常見的公用軟體 介紹作業系統未來的發展 介紹一些應用軟體的相關資訊 介紹國內與智慧財產權相關的法令 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 2 / 43 1. Introduction 使用者 User 使用者 User 使用者 User 應用軟體 Application software 系統軟體 System software 硬體 Hardware 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 3 / 43 Definitions of Software The instructions executed by a computer, as opposed to the physical device on which they run (the "hardware"). A collection of programs and data held in the storage of a computer for some purpose. Instructions that cause the hardware - the machines - to do work. The programs used to direct the operation of a computer, as well as documentation giving instructions on how to use them. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 4 / 43 Major Categories of Software Software is often divided into two categories: Systems software: Includes the operating system and all the utilities that enable the computer to function. Application software: Includes programs that do real work for users. For example, word processors, spreadsheets, and database management systems fall under the category of applications software. Software System software Application software 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 5 / 43 Software in Operation Computer software has to be "loaded" into the computer's storage (or memory). Once the software is loaded, the computer is able to operate. Computers operate by executing the software. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation -- moving data, carrying out a computation, or altering the flow of instructions. 程式 資料 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 結果 Chapter 6: Page 6 / 43 System Software System software is a generic term referring to any computer program or library whose purpose is to help run the computer system, as opposed to application software that helps solve user problems directly. is responsible for controlling, integrating, and managing the individual hardware components of a computer system. performs tasks like transferring data from memory to disk, or rendering text onto a display. The two main categories are: Operating systems Utilities System software stored on non-volatile storage on integrated circuits is usually termed firmware. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 7 / 43 2. Operating Systems An operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations, as well as running application software such as word processing programs and Web browsers. In general, the operating system is the first layer of software loaded into computer memory when it starts up. Operating system goals: Execute user programs and make solving user problems easier. Make the computer system convenient to use. Operating systems timeline – 線上資料 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 8 / 43 History of Operating Systems The mainframe era Minicomputers and the rise of UNIX The case of 8-bit home computers and game consoles Home computers Game consoles and videogames The personal computer era: Apple, DOS and beyond Evolution of OSs Batch processing Multiprogramming Time sharing 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 9 / 43 History of Microsoft Windows Windows 1.0 2.0 3.x NT 95 98 ME 2000 XP Server 2003 Year 85 87 90 -4 93 95 98 00 00 01 03 NT Win 95 Win 95 Win 95 NT NT NT S/M S/M S/M S/M S/M Kernel User/Task* DOS DOS DOS S/S S/S S/S M/M M/M * S: single, M: multiple 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 10 / 43 Terminology An operating system is conceptually broken into three sets of components: a user interface (which may consist of a graphical user interface and/or a command line interpreter or "shell"), low-level system utilities, and a kernel -- which is the heart of the operating system. Applications Shell Kernel Hardware 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 11 / 43 Functions of an Operating System Booting up the computer and configuring devices Interfacing with users Managing resources and jobs Monitoring activities File management Security Networking ...... 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 12 / 43 3. Components of OS Process management Memory management User program User program User program User program File management I/O-system System call interface management Secondary-storage management Networking Protection system Command-interpreter system Linux Memory manage Virtual file system VFS drivers Hard disk driver Process manage Abstract NW services TCP/IP driver Floppy disk driver Ethernet card driver system architecture 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 13 / 43 Process Management A process is a program in execution. A process needs certain resources, including CPU time, memory, files, and I/O devices, to accomplish its task. The OS is responsible for the following activities in connection with process management. Process creation and deletion. Process suspension and resumption. Provision of mechanisms for: Process synchronization Process communication new terminated scheduler dispatch admitted ready I/O or event completion 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 exit running interrupt I/O or event waiting waiting Chapter 6: Page 14 / 43 Main-Memory Management The OS is responsible for the following activities in connections with memory management: Keep track of which parts of memory are currently being used and by whom. Decide which processes to load when memory space becomes available. Allocate and deallocate memory space as needed. OS OS OS OS process 5 process 5 process 5 process 5 process 9 process 9 process 8 process 2 process 10 process 2 process 2 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 process 2 Chapter 6: Page 15 / 43 File Management The OS is responsible for the following activities in connections with file management: File creation and deletion. Directory creation and deletion. Support of primitives for manipulating files and directories. Mapping files onto secondary storage. File backup on stable (nonvolatile) storage media. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 16 / 43 I/O System Management Kernel Kernel I/O subsystem SCSI device driver Keyboard device driver Mouse device driver SCSI Keyboard Mouse device device device controller controller controller SCSI devices Keyboard Mouse … … … PCI bus device driver Floppy device driver ATAPI device driver PCI bus Floppy ATAPI device device device controller controller controller PCI bus 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Floppydisk driver ATAPI devices Chapter 6: Page 17 / 43 Secondary-Storage Management The OS is responsible for the following activities in connection with disk management: Free-space management Storage allocation Disk scheduling 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Disk array Chapter 6: Page 18 / 43 Networking 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 19 / 43 Protection System Protection refers to a mechanism for controlling access by programs, processes, or users to both system and user resources. The protection mechanism must: Distinguish between authorized and unauthorized usage. Specify the controls to be imposed. Provide a means of enforcement. 資訊犯罪 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 20 / 43 Command-Interpreter System A command line interpreter is a computer program which reads a line of text the user has typed and interprets this text in the context of a given operating system or programming language. Command line interpreters have the advantage that the user may issue a lot of commands in a very terse and efficient way. The downside is that one has to know the commands and their parameters. The graphical user interfaces (GUIs) were an answer to this problem. However for certain complex tasks GUIs are more difficult to use than a command line interface, because of the large number of menus and dialog boxes presented, and therefore a well designed command line interface is easier to use. C:> COPY file_a file_b C:> DIR C:\DOC 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 21 / 43 4. Common OSs for Desktop PCs OS Used Primarily on Type of Interface DOS Intel PCs Command-line Windows Intel or compatible PC GUI Mac OS Macintosh PCs GUI Linux Intel or compatible PCs, server, GUI and larger, multiuser computers Netware Intel or compatible servers GUI OS/2 Warp 4 Business PCs and larger, multiuser computers GUI 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 22 / 43 Windows vs. Linux - 1 Estimated market share Audience Windows Linux 90% 2-5% all markets. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 information technology, computer science, software engineers, educators, costsaving measure used by companies and governments. Chapter 6: Page 23 / 43 Windows vs. Linux - 2 Advantages: Windows Large market share Incredible range of compatible software and hardware. Most software makes use of a fairly consistent user interface, easing the process of getting up to speed with a new program. Primary applications - Microsoft Outlook Express, Microsoft Internet Explorer, Microsoft Office from same source as OS ensures compatibility. A perception of more available support. Linux High Stability. Low purchase cost (free on most distributions). High flexibility and freedom. Commercial support available. Many free or otherwise gratis software packages offer the functionality of programs available on the other desktop operating systems. Rarely targeted by worms and viruses. Fewer security holes. Linux is a Free Software operating system. Open development style and a license that requires distributed changes to be made available in source code for others means that future changes will be available for everyone. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 24 / 43 Windows vs. Linux - 3 Disadvantages: Windows Complex code (registry, "features") Microsoft's business practices (anticompetitive, privacy-invading, monopolistic) High cost, particularly for corporate or education licenses. Primary applications from Microsoft discourage third-party alternatives, either by their quality, their ability to create lock in, or both Frequently targeted by malicious crackers (aka. hackers), worms and viruses Existence of "private" APIs that are available to Microsoft applications but not divulged to third parties - this gives Microsoft an unfair advantage when creating applications for its own platform. Linux Some features of proprietary operating systems may not be available yet. Lack of formal support in free versions. Desktop managers widely seen as too geekoriented and not user-oriented. Many essential tools lack consistency in syntax or semantics, undermining ease of learning. Some powerful tools (e.g. the shell) are unnecessarily complicated. Initial setup process varies greatly among distributions. Installing new software difficult, too many bizzarre dependencies and issues. Incomplete hardware suppor. Lack of significant multilingual features. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 25 / 43 5. Utilities A utility program is a type of software that performs a specific task, usually related to managing or maintaining the computer system. Most OSs include a variety of utilities. Utilities are also available as independent programs. A few of the more common utilities: Encryption programs Antivirus programs Find or search utilities Backup utilities File compression utilities File viewers Internet utilities Device drivers Performance monitors Diagnostic software Screen-capture programs Disk optimizers Uninstallers Disk toolkits 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 26 / 43 Antivirus Programs In computer security terminology, a virus is a piece of program code that, by analogy with a biological virus, makes copies of itself and spreads by attaching itself to a host, often damaging the host in the process. A computer worm is a self-replicating computer program, similar to a computer virus. A virus attaches itself to, and becomes part of, another executable program; however, a worm is self-contained and does not need to be part of another program to propagate itself. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 27 / 43 Backup Utilities Backup utilities are programs designed to back up the contents of a hard drive. Computer backups are useful primarily for two purposes: The first and most obvious is to restore a computer to an operational state following a disaster, such as loss of a hard disc or the file system becoming so badly corrupted it cannot be read. The second use, often overlooked but probably more common, is to facilitate the recovery of a single file or set of files when they are accidentally deleted or corrupted by the user or a program. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 28 / 43 File Compression Utilities File compression programs enable files to be stored in a smaller amount of storage space. To free up disk space. To speed transmissions of files over network. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 29 / 43 Disk Optimizers Disk optimizers, also called disk defragmentation programs, rearrange the data and programs on the hard drive so that they can be accessed faster. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 30 / 43 Find or Search Utilities Find or search utilities enable user to find a “lost” file on your system by typing in part of its name or by typing in short strings of text known to be contained in the file. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 31 / 43 File Viewers File viewers make it easy to view files without opening the applications in which they were created. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 32 / 43 Internet Utilities Internet utilities enable user to more easily locate and keep track of resources on the Internet, censor downloaded content, keep track of connect time, and so forth. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 33 / 43 Performance Monitors Performance monitors can tell you how efficiently your computer system is performing its work. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 34 / 43 6. The Future of Operating Systems Operating systems exist to create an environment in which compelling applications come to life. They do that by providing abstractions built on the services provided by hardware. We argue that advances in hardware and networking technology enable a new kind of operating system to support tomorrow’s applications. Such an operating system would raise the level of abstraction for developers and users, so that individual computers, file systems, and networks become unimportant to most computations in the same way that processor registers, disk sectors, and physical pages are today. Distributed operating systems 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 35 / 43 Goals of Distributed Operating Systems Seamless distribution. The system should determine where computations execute or data resides, moving them dynamically as necessary. Users should be able to use any computing device that is part of the distributed system as naturally and productively as they would use the machine on their desk or in their den at home. Worldwide scalability. Logically there should be only one system, although at any one time it may be partitioned into many pieces. Fault-tolerance. The system should transparently handle failures or removal of machines, network links, and other resources without loss of data or functionality. Self-tuning. The system should be able to reason about its computations and resources, allocating, replicating, and moving computations and data to optimize its own performance, resource usage, and fault-tolerance. Self-configuration. New machines, network links, and resources should be automatically assimilated. Security. Although a single system image is presented, data and computations may be in many different trust domains, with different rights and capabilities available to different security principals. Resource controls. Both providers and consumers may explicitly manage the use of resources belonging to different trust domains. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 36 / 43 7. Application Software Application software is a subclass of computer software that employs the capabilities of a computer directly to a task that the user wishes to perform. This should be contrasted with system software which is involved in integrating a computer's various capabilities, but does not directly apply them in the performance of tasks that benefit the user. Accounting packages Collaborative software Compilers and interpreters Computer games Cryptography Database Educational software 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 E-mail Graphics program Spreadsheet Text editor Web browser Web server Word processor Chapter 6: Page 37 / 43 Application Suites Multiple applications bundled together as a package are sometimes referred to as an application suite. Microsoft Office which bundles together a word processor, a spreadsheet, and several other discrete applications, is a typical example. IBM Lotus SmartSuite COREL WordPerfect Office OpenOffice The separate applications in a suite usually have a user interface that has some commonality making it easier for the user to learn and use each application. And often they may have some capability to interact with each other in ways beneficial to the user. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 38 / 43 Ownership and Distributed Rights Sensitive questions sometimes arise about ownership and user rights regarding software products. A software maker or publisher develops a program, secures a copyright on it, and the retains ownership of all right to that program. The publisher then dictates who can use, copy, or distribute the program. The various classes of ownership and allowable use are: Proprietary software Shareware Freeware Public-domain software ... 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 39 / 43 Proprietary Software Someone owns the rights to the program, and the owner expects users to buy their own copies. Proprietary means that some individual or company holds the exclusive copyrights on a piece of software, at the same time denying other people the access to the software's source code and the right to copy, modify and study the software. The modification, use and redistribution of the programs is prohibited, or requires express permission the originator. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 40 / 43 Shareware Shareware is software that is distributed without payment ahead of time as is common for proprietary software. Typically shareware software is obtained free of charge by downloading, thus allowing one to try out the program ahead of time. A shareware program is accompanied by a request for payment, and often payment is required per the terms of the license past a set period of time. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 41 / 43 Freeware and Public-Domain Software Freeware is computer software which is made available free of charge. Typically freeware is distributed without source code. Freeware usually carries a license that permits redistribution but may have other restrictions, such as limitations on its commercial use. Public domain software has no copyright and therefore may be distributed without charge. 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 42 / 43 8. 智慧財產權相關法令 著作權相關法規 為保障著作人著作權益,調和社會公共利益,促進國家文化發展,特制定本法。 本法所稱著作,包含語文、音樂、戲劇、舞蹈、美術、攝影、圖形、視聽、錄音、建築、 電腦程式等。 商標法規 專利法規 為維護交易秩序與消費者利益,確保公平競爭,促進經濟之安定與繁榮,特制定本法。 積體電路電路布局保護法 為保障營業秘密,維護產業倫理與競爭秩序,調和社會公共利益,特制定本 法。 公平交易法規 為鼓勵、保護、利用發明與創作,以促進產業發展,特制定本法。 營業祕密法 為保障商標專用權及消費者利益,以促進工商企業之正常發展,特制定本法。 為保障積體電路電路布局,並調和社會公共利益,以促進國家科技及經濟之健全發展, 特制定本法。 光碟管理相關法令 國立聯合大學電子工程學系 – 計算機概論 – 蕭裕弘 Chapter 6: Page 43 / 43