國立聯合大學電子工程學系蕭裕弘

Download Report

Transcript 國立聯合大學電子工程學系蕭裕弘

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