计算机操作系统原理和设计南京大学计算机科学与技术系
2001年 7月
>
ch1 操作系统概论
1.1 操作系统的定义
1.1.1 操作系统的定义和目标
操作系统 ( Operating System)是管理硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一种系统软件。它可被看作是用户和计算机硬件之间的一种接口,
是现代计算机系统不可分割的重要组成部分。
用户 1 用户 2 用户 3 用户 4 用户 n
财务系统 航空订票 上网浏览 电子商务 科学计算
(应用程序)
编译程序 汇编程序 编辑程序 数据库
(系统程序)
操作系统计算机硬件



图 1-1 计算机系统的层次结构
硬件层
操作系统层
语言处理层
应用层
>
综上所述,现代计算机的用户通过应用程序与计算机交互来解决他的应用问题。通常,
应用程序用程序设计语言来表达,而不是直接用机器语言来开发。应用程序运行时,除依赖于语言处理程序的支持外,更多地依赖于操作系统提供的各种各样的功能和服务。
计算机系统中配置操作系统的主要目标可归结为:
方便用户使用 O S应该使计算机系统使用起来十分方便。
扩大机器功能 O S应该能改造硬件设施,扩充机器功能。
管理系统资源 O S应该管理好系统中的所有硬件软件资源。
提高系统效率 O S应该使计算机系统的资源得到充分利用,
使计算机系统的效率非常高。
构筑开放环境 O S应该构筑出一个开放环境,主要是指:
遵循有关国际标准;支持体系结构的可伸缩性和可扩展性;
支持应用程序在不同平台上的可移植性和可互操作性。
1.1.2 操作系统的作用
1.1.2.1 OS作为用户与计算机硬件之间的接口
>
1.1.2.2 OS作为计算机系统的资源管理者
>
1.1.2.3 OS作为虚拟计算机
>
1.1.3 操作系统的主要特性
1.1.3.1 第一个特性 --并发性
并发性( Concurrence)是指两个或两个以上的活动在同一时间间隔内发生
发挥并发性能够消除计算机系统中部件和部件之间的相互等待,有效地改善了系统资源的利用率,改进了系统的吞吐率,提高了系统效率
多个 I/O设备同时在 I/O;设备 I/O和 CPU
计算同时进行;内存中同时有多个作业被启动交替、穿插地执行,这些都是并发性活动的例子。发挥并发性能够消除计算机系统中部件和部件之间的相互等待,有效地改善了系统资源的利用率,
改进了系统的吞吐率,提高了系统效率。
例如,一个程序等待 I/O完成时,就出让
CPU,而调度另一个程序运行,在程序等待 I/O时,CPU便不会空闲,这就是采用了并发技术。
但由此引发了一系列的问题,使系统变得复杂化
如何从一个活动切换到另一个活动?
怎样将各个活动隔离开来,使之互不干扰,
免遭对方破坏?怎样让多个活动协作完成任务?
怎样协调多个活动对资源的竞争?如何保证每个活动的资源不被其它进程侵犯?
多个活动共享文件数据时,如何保证数据的一致性?
为了更好的解决上述问题,操作系统中很早就引入了一个重要的概念 --进程,由于进程能清淅刻划操作系统中的并发性,实现并发活动的执行,因而它已成为现代操作系统的一个重要基础。
采用并发技术的系统又称为多任务系统
(Multitasking),计算机系统中,并发的实质是一个物理 CPU(也可以多个物理
CPU) 在若干道程序之间多路复用,这样就可以实现程序之间的并发,以及
CPU与 I/O设备,I/O设备与 I/O设备之间的并行,并发性是对有限物理资源强制行使多用户共享以提高效率。
结论:实现并发技术的关键之一是如何对系统内的多个活动 (进程 )进行切换的技术。
1.1.3.2 第二个特性 -共享性
共享指操作系统中的资源包括硬件资源和信息资源,可被多个并发执行的进程所使用可以分成两种资源共享方式:
互斥共享,系统中的某些资源如打印机、磁带机、卡片机,虽然它们可提供给多个进程使用,但在同一时间内却只允许一个进程访问这些资源。当一个进程还在使用该资源时,
其它欲访问该资源的进程必须等待,仅当该进程访问完毕并释放资源后,才允许另一进程对该资源访问。这种同一时间内只允许一个进程访问的资源称临界资源,许多物理设备,以及某些数据和表格都是临界资源,它们只能互斥地被共享。
同时访问,系统中的还有许多资源,允许同一时间内多个进程对它进行访问,这里“同时”是宏观上的说法。典型的可供多进程同时访问的资源是磁盘,可重入程序也可被同时共享。
与共享性有关的问题是资源分配、信息保护、
存取控制等,必须要妥善解决好这些问题。
1.1.3.3 第三个特性 -异步性
( Asynchronism)
操作系统中的 异步 (随机 )性处处可见
例如,一个进程在 CPU上运行一段时间后,由于等待资源满足或事件发生,它被暂停执行,CPU转让给另一个
进程执行。系统中的进程何时执行?何时暂停?以什么样的速度向前推进?进程总共要多少时间执行才能完成?这些都是不可予知的,或者说该进程是以异步方式运行的,异步性给系统带来了潜在的危险,有可能导致与时间有关的错误,但只要运行环境相同,操作系统必须保证多次运行作业,都会获得完全相同的结果。
操作系统中的随机性处处可见,例如,作业到达系统的类型和时间是随机的;操作员发出命令或按按钮的时刻是随机的;程序运行发生错误或异常的时刻是随机的;各种各样硬件和软件中断事件发生的时刻是随机的等等,
异步性给系统带来了潜在的危险,有可能导致与时间有关的错误
操作系统的一个重要任务是必须确保捕捉任何一种随机事件,正确处理可能发生的随机事件,正确处理任何一种产生的事件序列,否则将会导致严重后果
1.1.4 操作系统需要解决的主要问题
1.1.4.1提供解决资源冲突的策略和技术
1.1.4.2 协调并发活动的关系
1.1.4.3 保证系统的安全性
>
1.2 操作系统的发展和形成
1.2.1 人工操作阶段
>
1.2.2 管理程序阶段
>
1.2.3 多道程序设计与操作系统的形成
>
1.2.4 操作系统发展的主要动力和进一步发展
1.2.4.1操作系统发展的主要动力
1.器件快速更新换代。
2.计算体系结构不断发展。
3.提高计算机系统资源利用率的需要。
4.让用户使用计算机越来越方便的需要。
5.满足用户新要求,提供给用户新服务。
1.2.4.2 操作系统的进一步发展大型机
1950 1960 1970 1990
编译没有软件 分时丫
1980
Multicss
批处理分布系统多处理机驻留监督容错小型机
1960 1970 1990Unix
没有软件 编译 分时丫 多处理机容错驻留监督微型机
1970 1980 Unix 1990
没有软件 编译多处理机多用户驻留监督多用户网络计算机
1990
没有软件 编译多用户操作系统的发展
1,微机操作系统的发展
2,并行操作系统的发展
3.分布式操作系统的发展
4.并行分布式操作系统的发展
>
1.3 操作系统的分类
1.3.1 批处理操作系统
批处理系统的主要特征是:
用户脱机工作
成批处理作业
多道程序运行
作业周转时间长批处理操作系统
用户把要计算的应用问题编成程序,连同数据和作业说明书一起交给操作员,
操作员集中一批作业,并输入到计算机中。然后,由操作系统来调度和控制用户作业的执行。通常,采用这种批量化处理作业方式的操作系统称为批处理操作系统( Batch Operating System)。
1.3.2 分时操作系统
允许多个联机用户同时使用一台计算机系统进行计算的操作系统称分时操作系统
分时操作系统具有以下特性:
同时性独立性及时性交互性
>
分时操作系统和批处理操作系统存在下列不同点:
目标不同
适应作业的性质不同
资源使用率不同
作业控制方式不同
1.3.3 实时操作系统有三种典型的实时系统,
过程控制系统、
信息查询系统、
事务处理系统。
何谓实时操作系统?
实时操作系统( Real Time Operating System)是指当外界事件或数据产生时,能够接收并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制监控的生产过程或对处理系统作出快速响应,并控制所有实行任务协调一致运行的操作系统。
实时操作系统通常由四部分组成:
l数据采集:它用来收集、接收和录入系统工作必须的信息或进行信号检测。
l加工处理:它对进入系统的信息进行加工处理,获得控制系统工作必须的参数或作出决定,然后,进行输出,记录或显示。
l操作控制:它根据加工处理的结果采取适当措施或动作,达到控制或适应环境的目的。
l反馈处理:它监督执行机构的执行结果,
并将该结果馈送至信号检测或数据按收部件,
以便系统根据反馈信息采取进一步措施,达到控制的予期目的。
1.3.4 网络操作系统
为了使网络中的计算机能方便地传送信息和共享网络资源而加到网络中的计算机上的操作系统称网络操作系统
( Network Operating System)。
网络操作系统应该具有的功能:
.网络通信
,资源管理
,网络管理
,网络服务下一代网络操作系统应能提供以下功能支撑:
l位置透明性 支持客户机、服务器和系统资源不停地在网络中装入卸出,且不固定确切位置的工作方式。
l名空间透明性 网络中的任何实体都必须从属于同一个名空间。
l管理维护透明性 如果一个目录在多台机器上有映象,应负责对其同步维护;应能将用户和网络故障相隔离;同步多台地域上分散的机器的时钟。
l安全权限透明性 用户仅需使用一个注册名及口令,
就可在任何地点对任何服务器的资源进行存取,请求的合法性由操作系统验证,数据的安全性由操作系统保证。
l通信透明性 提供对多种也
1.3.5 分布式操作系统
分布式计算机系统是指由多台分散的计算机,
经互连网络连接而成的系统,它满足以下条件:
l系统中任意两台计算机可以通过系统的安全通信机制来交换信息。
l系统中的资源为所有用户共享,用户只要考虑系统中是否有所需资源,而无需考虑资源在哪台计算机上。
l系统中的若干台机器可以互相协作来完成同一个任务,换句话说,一个程度可以分布于几台计算机上并行运行,一般的网络是不满足这个条件的,所以,分布式系统是一种特殊的计算机网络。
l系统中的一个结点出错不影响其它结点运行、即具有较好的容错性和健壮性。
分布式操作系统 (Distributed Operating
System)具备四项基本功能:
l进程通信:提供有力的通信手段,让运行在不同计算机上的进程可通过通信来交换数据;
l资源共享:提供访问它机资源的功能,使得用户可以访问或使用位于它机上的资源,例如 A
结点上的一个进程使用 B结点上的一台打印机,
而 B结点上的一个进程却在存取 A结点上的一个文件。
l并行运算:提供某种程度设计语言,使用户可编写分布式程序,该程序可在系统中多个节点上并行运行;
l网络管理:高效地控制和管理网络资源,对用户具有透明性、即使用分布式系统与传统单机相似。
分布式操作系统( Distrabuted
Operatying System)与单机集中式操作系统的主要区别在于,
.资源管理,
.进程通信,
.系统结构三个方面。
分布式操作系统举例:
分布式操作系统 Plan9由 AT&T公司
BELL实验室于由 Ken Thompson
(Unix设计者之一 ) 参与开发的分布式操作系统
分布式操作系统 Amoeba由荷兰自由大学和数学信息科学中心联合研制分布式系统研究和开发的主要方向,
l分布式系统结构:研究非共享通路结构和共享通路结构。
l 分布式操作系统:研究资源管理方法、同步控制机制、死锁的检测和解除和进程通信模型及手段等。
l 分布式程序设计:扩充顺序程序设计语言使其具有分布程序设计能力;开发新的分布式程序设计语言。
l分布式数据库:设计开发新的分布式数据库。
l分布式应用,研究各种分布分式并行算法,
研究在办公自动化、自动控制、管理信息系统等各个领域的应用。
1.3.6 嵌入式操作系统
★ 什么是嵌入式软件?
★ 嵌入式软件具有以下特点:
( 1)微型化
( 2)专业化
( 3)实时性
1.4 操作系统的功能
1.4.1 处理机管理
1.4.2 存储管理
1.4.3 设备管理
1.4.4 文件管理
1.4.5 网络与通信管理
1.4.6 用户接口
>
1.5 操作系统提供的服务和用户接口
1.5.1 操作系统提供的基本服务
,创建程序
,执行程序
,数据 I/O
,信息存取
,通信服务
,错误检测和处理此外,还具有另外一些功能,资源分配,
统计,保护 。
1.5.2 操作系统提供的用户接口从系统的角度来说,操作系统的服务和功能可以不同方式提供给用户,最基本的有两种:
l系统调用 (System Call) 是由操作系统实现完成某种功能的过程。它是程序与操作系统的接口,又称程序接口或编程级接口,在编写的程序中使用“系统调用” 就可以获得操作系统的底层服务,访问系统的各种软硬件资源。
l系统程序 (System Program) 可以看作是操作系统提供给用户的功能级接口。它是操作系统为用户提供的解决使用计算机和计算的共性问题所有服务的集合。这可以当作操作系统高层提供的服务 (虽然它们不能算作操作系统的一部分 ),用户常常通过操作命令来调用系统程序。
1.5.2.1 系统调用
1,系统调用的分类
.进程和作业管理
.文件操作
.设备操作
.信息维护
.通信
2.系统调用的实现要点一,是编写系统调用处理程序;
二,是设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还包含系统调用自带参数的个数;
三,是陷入处理机制需开辟现场保护区,
以保存发生系统调用时的处理器现场。
图 1-7是系统调用的处理过程。
System Call
用户程序
A0 SUB0
SUB1
SUBi
SUBn
A1
Ai
An


系统调用处理子程序取系统功能号找入口地址表相应入口地址结束处理心潮难现场入口地址表
A0
A1

Ai

An
保护 CPU现场系统调用陷入机构陷入指令图 1-7 陷入机构和系统调用处理过程系统调用的参数传递一是由访管指令或陷入指令自带参数,可以规定指令之后的若干单元存放的是参数,这叫直接参数;或者在指令之后紧靠的单元中存放参数的地址,这叫间接参数。
二是通过 CPU的通用寄存器传递参数,这种方法不宜传递大量参数。改进的方法是:在内存的一个块或表中存放参数,其首地址送入寄存器,实现参数传递,图 1-8是这种方式参数传递的示意。
三是在内存中开辟专用堆栈区域传递参数。
图 1-8 传递参数的一种方法操作系统
X:参数
LOAD AddR X
System Call 8 X
图 1-8 传递参数的一种方法从表 X取参数 系统调用 8的处理子程序寄存器图 1-9 Unix系统调用处理过程源程序 函数替换 目标程序
nw=write(fd,buf,count)
Load r0,fd
Trap 04
Buf
count
xxxxx
8904(H)
*****
$$$$$
Trap中断处理程序
C
编译 装配系统调用入口表
Write地址查表
Write调用处理程序处理程序中断带参数返回图 1-9 Unix系统调用处理过程
Linux系统调用
Linux有 170个系统调用,应用程序和 Shell通过系统调用机制访问 Linux内核 (功能 )。每个系统调用由两部分组成:
l 核心函数 运行在核心态,是实现系统调用功能的 (内核 )代码,作为操作系统的核心驻留在内存中,是一种共享代码,用 C语言书写。它运行在核心态,数据也存放在内核空间,通常它不能使用系统调用,也不能使用应用程序可用的库函数。
l 接口函数 是提供给应用程序的 API,以库函数形式存在 Linux的 lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把:系统调用号、入口参数地址传送给相应的核心函数,并使用户态下运行的应用程序陷入核心态。
Linux系统调用入口程序 entry.s,
是用汇编写的,它包含了系统调用入口地址表,给出了所有系统调用核心函数的名字:
ENTRY(sys-call-table)
,long SYMBOL-NAME(sys-ni-syscall) 0
,long SYMBOL-NAME (sys-exit) 1
,long SYMBOL-NAME (sys-fork) 2
,long SYMBOL-NAME (sys-read) 3
,long SYMBOL-NAME (sys-write) 4
,long SYMBOL-NAME (sys-open) 5
,long SYMBOL-NAME(sys-close) 6
,
,
,long SYMBOL-NAME (sys-vfork ) 190
Linux的系统调用号就是系统调用入口表中位置的序号,所有系统调用通过接口函数将系统调用号传给内核,内核转入系统调用控制程序再通过调用号位置来定位核心函数,Linux内核的陷入由
0x80(int80h)中断实现。系统调用控制程序的主要功能为:①取系统调用号 ;② 根据系统调用号定位核心函数地址 ;③ 根据通用寄存器内容,从用户栈中取入口参数 ;④ 核心函数执行,把结果返回应用程序。
3.系统调用与过程 (函数 ) 调用的区别
l一是调用形式 过程 (函数 ) 使用一般调用指令,其转向地址是固定不变的,包含 在跳转语句中;但系统调用中不包含处理程序入口,而仅仅提供功能号,按功能号调用。
l二是被调用代码的位置 过程 (函数 ) 调用是一种静态调用,程序和被调代码在同一程序内,经过连接编辑后作为目标代码的一部份。当过程 (函数 ) 升级或修改时,必须重新编译连结。而系统调用是一种动态调用,系统调用的处理代码在调用程序之外
(在操作系统中 ),这样一来,系统调用处理代码升级或修改时,
与调用程序无关。而且,调用程序的长度也大大缩短,减少占用的存储空间。
l三是提供方式 过程 (函数 ) 往往由高级语言或汇编语言的编译系统提供,不同编译系统提供的过程 (函数 ) 可以不同;系统调用由操作系统提供,一旦操作系统设计好,系统调用的功能、种类与数量便固定不变了。
l四是调用的实现 程序使用一般机器指令转子指令来调用过程
(函数 ),是在用户态运行的;程序执行系统调用,是通过中断机构来实现,需要从用户态转变到核心态,在管理状态下运行,
因此,安全性好。
1.5.2.2 系统程序
1,系统程序的分类
文件管理
状态信息
程序设计语言支持
程序的装入和执行支持
通信
其它软件工具
2,命令解释程序
命令解释程序的主要功能是接受和执行下一条用户从键盘输入的命令 。
当一个新的批作业被启动,或新的交互型用户登录进系统时,系统就自动地执行命令解释程序,它负责读入控制卡或命令行,并作出相应解释和执行 。
命令解释程序实现的两种方式
一种是它自身包含了命令的执行代码。
另一种是由专门的,系统程序,实现,
它自身不含命令处理代码,也不进行处理,而仅仅把这条命令对应的命令文件装入内存执行。
命令解释程序的处理过程
操作系统做完准备工作后便启动命令解释程序,它输出命令提示符,等待键盘中断到来 。
每当用户打入一条命令 (暂存在命令缓冲区 )并按回车换行时,申请键盘中断 。 CPU响应后,
将控制权交给命令解释程序,接着读入命令缓冲区内容,分析命令,接受参数 。 若为简单命令立即转向命令处理代码执行 。 否则查找命令处理文件,装入主存,传递参数,将控制权交给其执行 。 命令处理结束后,再次输出命令提示符,等待下一条命令 。
用户如何来向操作系统提交作业和说明运行意图呢?
操作系统一般都提供了 联机作业控制 方式和 脱机作业控制 方式两个作业级的接口,这两个接口使用的手段为:操作命令
(语言 )和作业控制语言 。
(1)联机用户接口 —— 操作命令命令行方式
>
批命令方式
>
图形化方式
>
(2) 脱机用户接口 — 作业控制语言批处理用户接口由作业控制语言( Job Control
Language) (一组作业控制语句或作业控制操作命令 )
组成。由于批处理作业的用户不能直接与他们作业交互,只能委托操作系统来对作业进行控制和干予,作业控制语言便是提供给用户,为实现所需作业控制功能委托系统代为控制的一种语言。用户使用 JCL的语句,把他的运行意图、即需要对作业进行的控制和干予,事先写在作业说明书上,然后,将作业连同作业说明书一起提交给系统。当调度到该批处理作业运行时,系统调用 JCL语句处理程序或命令解释程序,对作业说明书上的语句或命令,逐条地解释执行。如果作业在执行过程中出现异常情况,系统会根据用户在作业说明书上的指示进行干予。这样,作业一直在作业说明书的控制下运行,直到作业运行结束。
IBM JCL的一个例子
有一个需要编译、连结编辑的作业,它的源程序和数据穿在卡片上,编译、连结编辑的结果均需在行式打印机上输出,
编译结果要存盘,连结编辑结果还要从穿孔机输出,此作业用 JCL语句组织 如下,
// HAROLD JOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=b
// COMP EXEC PGM=IEYFORT
// SYSPRINT DD SYSOUT=A
// SYSLIN DD DSNAME=SYSL,DISP=OLD
// SYSIN DD*
,
<Source Program Card>
,
/*
// GO EXEC PGM=FORTLINK
// SYSPRINT DD SYSOUT=A
// FTOTF001 DD UNIT=SYSCP
// GO SYSIN DD*
,
<Data Card>
,
/*
//
1.5.2.3 Unix的系统调用、库函数和系统程序操作系统系统调用:进程管理,存储管理,文件管理,设备管理标准库函数标准函数:打开,关闭,读,写,创建,撤销标准系统程序 (实用程序 )
系统程序:汇编,编译,编辑,Shell
用户图 1-11系统程序,库函数,系统调用的分层关系用户接口库函数接口系统调用接口
POSIX标准标准 内容
1003.0 概述与指南
1003.1 库函数 (系统调用 )
1003.2 Shell和实用程序
1003.3 测试方法和一致性
1003.4 实时扩展
1003.5 Ada语言
1003.6 安全性扩展
1003.7 系统管理
1003.8 透明文件访问
1003.9 Fortran77联编
1003.10 超级计算
Unix系统调用
系统调用符合可移植操作系统 POSIX1003.1标准,每个兼容的 Unix都必须支持它,用户可以使用系统调用直接调用 Unix底层功能,其实现方法是通过把变量参数放入寄存器或堆栈中并发出陷阱指令,程序执行系统调用由用户模式转到核心模式,从而运行 Unix。 Unix的标准系统调用分进程管理,文件管理,设备管理,及状态控制等五十余条,系统调用是软件开发者进入 Unix内核的入口,内核常驻内存,对所有用户进程的工作,文件系统的访问进行监视和控制 。
Unix标准函数
Unix还提供标准函数 (又叫标准例行程序 ),可移植操作系统 POSIX1003.1标准实际上定义了一个库过程的集合,它们组成了标准函数库,
其中较重要的是 I/O库函数 。 库函数用汇编语言编写,但却可以在 C语言中调用,例如 C程序可以通过执行一个 Read库过程来实现 Read系统调用 。 有些功能系统调用不能实现,而函数却能做到,如格式变换,自动缓冲等 。 一般来说标准函数库建立在系统调用的上层,因此它提供的功能较系统调用强,使用也较方便 。 但是,
库函数的实现最终要用到系统调用,标准
Unix系统程序
Unix的内核之外包含有非常丰富的系统程序,包括语言处理程序,文件编辑程序和种种软件开发及维护工具 。
根据可移植操作系统 POSIX1003.2标准,描述了近百个系统程序的语义,其中大部分集中在文件管理,目录管理,过滤器,编译和程序开发工具方面 。 现有的各种
Unix版本均实现了一部分最常用的系统程序约五十多条 。
据 AT&T公司称,Unix下运行的微机软件包己有 1000多个,正是这些应用程序大大加强了 Unix的功能 。 通常,
在高级语言中没有系统调用的概念,它通过标准函数或语句来间接地调用操作系统的功能 。 不论高级语言还是汇编语言,最终实际执行的不是源程序,而是经过编译或汇编产生的目标代码 。 需要调用操作系统功能的语句或标准函数,经编译及连接装配成目标程序段,其中包含了一系列对应的系统调用 。
1.6 流行操作系统简介
1.6.1 D O S 操作系统
DOS的 发展历史
DOS的主要功能
DOS的主要特点
DOS的主要缺点
1.6.2 Wiindows操作系统
1 Wiindows操作系统概况
2 Wiindows的主要特点
3 Wiindows 95/98
4 Wiindows NT
5 Wiindows 2000
1.6.3 O S/2操作系统
O S/2的主要特点有:
l采用图形化用户接口,操作直观方便。
l可以在 16位和 32位两种 CPU上工作。
l使用虚存可扩充到 4GB。
l引入会话、进程、线程概念,实现多任务控制。
l提供高性能文件系统,采用长文件名和扩展文件属性。
l提供应用程序设计接口( API),可以支持多任务、多线程和动态连接。
l具有和 MS-DOS的向上兼容性,MS-DOS的文件可在 OS/2下读写。
1.6.4 Netware操作系统
Netware是 Novell公司开发的网络操作系统 (Networking
Operating System,NOS)。
Netware具有高性能文件系统,支持 DOS,OS/2,MAC、
及 Unix文件格式 ;具有三级容错,可靠性高 ;安全保密性好 ;具有开放性,提供开放的开发环境 。
Netware有多种版本,Netware lite是廉价点对点 NOS,
支持 25个用户,每个结点可作为对等机 。 Netware2.2是为小单位和工作组开发的 NOS,满足工作组用户的各种需要 。 Netware3.1x是一个 32位的 NOS,更能发挥高档
PC的计算能力,支持用户可达 256个,能支持 DOS,
Windows,Macintosh,OS/2和 Unix工作站访问 Netware
服务器 。 Netware4.xx是其 NOS新版,增强了网络目录服务,支持用户数可达 1000个 。 Netware3.11是最为成功的
NOS,已占有很大市场份额,Novell对其进行了改进于
1993年 8月推出替代产品 Netware3.12,其中,主要加进了以下功能:电子邮件,支持 Windows用户的工具,支持 CD-ROM,加强了工作站 Shell功能 。
1.6.5 Unix操作系统
美国电报电话公司的贝尔实验室于 1969年在 DEC公司的小型系列机 PDP-7上开发成功
1973年开发出 C语言并改写 Unix(Unix第 5版 ),从而使得
Unix具有高度易读性、可移植性,为迅速推广和普及走出了决定性的一步
1974年 7月,” Unix分时系统”一文在美国权威杂志
CACM上发表,这是第一次正式公布于众,引起了广泛注意
最早可获得的 Unix是 1975年的 Unix第 6版
1978年的 Unix第 7版,可以看作当今 Unix的祖先,该版为
Unix走进商界奠定了基础。
1981年,AT&T公司发表了 Unix System Ⅲ,从此开始,
Unix不再按 Version改为按 System号排列。 1983年,AT&T
公司公布了 Unix Systemⅴ,至今它还是最新版本。
由大学开发的非 AT&T系统的 Unix是美国加利福尼州立大学 Berkeley分校运行在 VAX-11机上的 Unix BSD ( Berkelry Software
Distribution),其中,最著名的是 4.1BSD、
4.2BSD,4.3BSD和 4.4BSD,这些版本中加入了页式虚存、长文件名、加 进 网 络 协议
TCP/IP等,在 Unix 的发展中起了重要 作用,
该校的版本已成为教学、科研、商用的主流系统。
Unix取得成功的最重要原因是系统的开放性,
公开源代码,用户 可以 方便地向 Unix系统中逐步添加新功能和工具,这样可使 UINX越来越完善,能提供更多服务,成为有效的程序开发支撑平台。它是目前唯一可以安装和运行在从微型机、工作站直到大型机和巨型机上的操作系统 。
Unix的主要特点:
l Unix的结构分核心部分和应用子系统,
便于做成开放系统。
l 具有分层可装卸卷的文件系统,提供文件保护功能。
l 提供 I/O缓冲技术,系统效率高。
l 剥夺式动态优先的 CPU调度,有力地支持分时操作。
l 命令语言丰富齐全。
l 具有强大的网络与通信功能。
l 支持多用户、多任务
l 请求分页式虚拟存储管理
Unix已成为一个操作系统标准
实际上 Unix已 不是指一个具体操作系统。许多公司和大学都推出了自己的 Unix系统,如 IBM
公司的 AIX操作系统,SUN公司的 Solaris操作系统,柏克利大学的 Unix BSD 操作系统,
DEC公司的 ULTRIX操作系统,CMU的 Mach
操作系统,SW公司的 Unix SCO以及 AT&T公司自己的 Unix SystemV等。上述版本互不兼容,
非常混乱。为了使同一个程序能在所有不同
Unix版本上运行,IEEE拟定了一个 Unix标准,
称作 POSIX。它定义了相互兼容的 Unix系统必须支持的最少系统调用接口。该标准已被多数 Unix支持,冈时,其他一些操作系统也在支持 POSIX标准。
1.6.6 Solaris操作系统
SUN Microsystem公司开发的 Solaris是具有完全对称多处理和多线程支持的 32位分布式计算环境的 Unix操作系统变种。
Solaris2.x基于 SPARC和 Intel平台,是一个可移植操作系统,可移植到任何新的主流平台上。
1998年 10月,SUN公司隆重推出 64位操作系统
Solaris7.0,这是基于 2.6版的最新版本,在网络特性、可靠性、兼容性、互操作性、易于配置和管理方面均有很好改进。
SUN NFS(Network File System)是 1984
年推出的一个网络文件系统产品,
NFS提供了在异种机,异种操作系统的网络环境下共享文件的简单有效的方法 。 NFS基于
C/S 模式,使用 UDP/FP 协议和 RPC(Remote
Procedure Call)机制,主要特点有,① 提供透明的文件访问和文件传送,用户使用本地或远程的文件没有区别,真正实现了分布式数据处理 ;② 易于扩充,扩充新的资源或软件,
不需改变现有工作环境 ;③ 性能高,可靠性好,
具有可伸缩性 。
1.6.7 Macintosh操作系统
1986年,美国 Apple公司推出
Macintosh机操作系统。 MAC是全图形化界面和操作方式的鼻祖。由于它拥有全新的窗口系统、强有力的多媒体开发工具和操作简便的网络结构而风光一时。 Apple公司也就成为当时唯一能与 IBM公司抗衡的 PC
机生产公司。
MAC操作系统的主要特点有
1)采用面向对象技术;
2)全图形化界面; 3)虚拟存储管理技术;
4)应用程序间的相互通信;
5)强有力的多媒体功能;
6)简便的分布式网络支持; 7)丰富的应用软件。
1.6.8 MINIX操作系统
荷兰 Vrije大学计算机系教授 Andrew S,
Tanenbavm开发 了 一个与 Unix兼容,然而内核全新的操作系统 Minix。 Minix没有借用 AT & T一行代码,所以不受其许可证的限制,学生可以通过它来剖析一个操作系统,研究其内部如何运作,其名称源于‘小 Unix’,因为它非常简洁,
短小,故称 Minix。
Minix用 C语言编写,着眼于可读性好,代码中加入了数千行注释。可运行在 IBM PC,Macintosh,Sparc,
Amiga,Atari等许多平台上。 Minix
一直恪守,Small is Beautiful”的原则,早期 Minix甚至没有硬盘就能运行。目前最常用的是 Minix2.0,它具有多任务处理能力,可支持三个用户同时工作,支持 TCP/IP,支持
4GB内存。提供 5个编辑器,200个实用程序。
Tanenbavm 主页地址:
http,//www.cs.vu.nl/~ast/
Minix的版权为 Prentice Hall所有,可免费下载用于教学。
1.6.9 自由软件和 Linux操作系统
自由软件( Free Software or Freeware)
是指遵循通用公共许可证 GPL( General
public License)规则,保证您有使用上的自由、获得源程序的自由,可以自己修改的自由,可以复制和推广的自由,
也可以有收费的自由的一种软件。
自由软件出现的意义 。
1.6.9自由软件与 Richard stallman
GNU的含义是 GNU is not Unix的意思,由自由软件的倡导者 Richard stallman先生指导并启动的一个组织。
七十年代后期起很多软件不再提供源码,使用户无法修改软件中的错误,使用尤为不便。为此,在 1984年,
Stallman先生启动了 GNU计划,并成立了自由软件基金会 ( Free Software Foundation,FSF)。
Stallman先生通过 GNU写出一套和 Unix兼容,但同时又是自由软件的 Unix系统,GNU 完成了大部分外围工作,包括外国命令 gcc/ gcc++,shell等,最终 Linux内核为 GNU工程划上了一个完美句号,现在所有工作继续在向前发展。目前人们熟悉的一些软件如 C++编译器,Objective C,FORTRAN77,C 库,BSD email、
BIND,Perl,Apache,TCP/IP,IP accounting、
HTTPserver,Lynx Web都是自由软件的经典之作。
Linux的 诞生
Linux是由芬兰藉科学家 Linus Torvalds于 1991
年编写完成的一个操作系统内核,当时他还是芬兰首都赫尔辛基大学计算机系的学生,
在学习操作系统课程中,自己动手编写了一个操作系统原型,从此,一个新的操作系统诞生了。 Linus把这个系统放在 Internet上,允许自由下载,许多人对这个系统进行改进、
扩充、完善,许多 人做出 了关 键 性 贡 献。
Linux由最初一个人写的原型变化成在 Internet
上由无数志同道合的程序高手们参与的一场运动。
Linux技术特点,
(1) 继承了 Unix的优点,又有了许多更好的改进,是集体智慧的结晶,能紧跟技术发展潮流,具有极强的生命力; (2) 通用的操作系统,可作为 Internet上的服务器;可用做网关路由器;可用做文件和打印服务器;
也可供个人使用; (3) 内置通信联网功能,可让异种机联网; (4) 开放的源代码,有利于发展各种特色的操作系统; (5) 符合 POSIX标准,各种 Unix应用可方便地移植到 Linux下; (6) 提供庞大的管理功能和远程管理功能; (7) 支持大量外部设备; (8) 支持 32种文件系统,如 Ext2,Ext,Xiafs,Isofs,Hpfs,MSDOS、
UMSDOS,Proc,NFS,SYSV,Minix,SMB,Ufs、
Ncp,VFAT,AFFS等; (9) 提供 GUI,有图形接口 X-
Windows,有多种窗口管理器; (10) 支持并行处理和实时处理,能充分发挥硬件性能; (11) 可自由获得源代码,在 Linux平台上开发软件成本低。
1.6.10 IB M
系列操作系统
IBM(Internetional Business Machines Corp.)-国际商业机器公司
IBM操作系统的发展历程。
l 第一阶段六十年代以前,计算机型号为:
IBM1404,1620,704,709,7094等 ;使用操作系统为 FMS(Fortran Mornitor System)、
IBMSYS(IBM7094 Mornitor)等 ;主要使用的技术有:自动批处理、脱机外围设备操作、特权指令、管态 /目态、人工设备分配和负载平衡、原始文件系统、程序复盖和重迭支持。
l 第二阶段七十年代以前,计算机型号为,IBM S/360系列机等 ; 使用操作系统为 OS/360(又分成任务数固定多道程序系统 OS360/MFT(Multiprogramming With a
Fixed number of Tasks)和任务数可变多道程序系统
OS360/MVT(Multiprogramming With a
Variable number of Tasks)和磁盘操作系统 DOS/360。主要使用的技术有:多道程序设计、远程作业进入,SPOOLING、
内存复盖重迭的完整支持、完善的文件系统、库子程序、多种高级语言。
lIBM公司推出 S/360系列计算机试图达到两个目标:一是兼容性,由于所有计算机都有相同的体系结构和指令系统,因而,为一种型号机器编写的程序可以在其他所有机器上运行 ;二是通用性,该系列机既可用于科学计算,又可用于商业数据处理,以便一个系列机能满足所有用户的要求。 IBM基本上达到了这两个目标,取得了成功。
l第三阶段七十年代开始,计算机型 号 为,IBM S/370 系 列 机、
IBM43xx系列机,IBM308x系列机、
IBM309x系列机等 ; 使用操作系统为
OS/VS1 (OS360/MFT 的后裔 ) 和
DOS/VS。主要使用的技术有:虚拟 存 储 器、多 任 务 处 理、
Checkpoint、交互式处理。
九十年代之前,IBM系列操作系统又有进一步发展 。 ① 在 OS360/MVT操作系统的基础上扩充,开发出能为每个用户提供私有虚存空间的多虚存操作系统
OS/VS2(又叫 MVS-Multi Virtual Storage);
② 随着用户希望系统提供交互型程序开发环境愿望越来越迫切,六十年代中,
IBM公布了其分时系统 TSS/360,结果由于太大太慢,导致无人使用,成为一个失败的系统 。 ③ 七十年代起,IBM开始研究 Virtual Machine操作系统,从 CP/40
和 CP/67开始,而后发展成为 VM/370和
VM/SP。
目前,IBM的主要计算机产品
1 RS/6000系列 Unix服务器及 SP结点群集计算机,运行 AIX操作系统
2 S/390企业级服务器,运行 OS/390,VM
和 DOS/VSE操作系统
3 Definity通用服务器,运行基于 Intel的
Windows NT,Netware等操作系统
4 AS/400服务器 首次采用 64位的 RISC技术,运行 OS400操作系统 。
5 PC微型机 运行 Windows9x,OS2、
MS-DOS等操作系统 。
1 RS/6000系列 Unix服务器及 SP结点群集计算机,运行 AIX操作系统
RS/6000是 IBM于七十年代末推出的第二代 RISC服务器,
1994年 10月开发出 SMP的 RS/6000产品,之后又设计出并行机 RS/6000SP。 RS/6000上运行 AIX(Advanced Interactive
executive,AIX)操作系统,AIX操作系统是 1990年推出的超强重负载 Unix操作系统,最新版本是 4.3。 它是一个具有可伸缩性,高安全性,高可靠性的软实时操作系统,可以全年不停机工作 。 它提供了一个安全的图形化界面的多用户环境,支持多线程,动态装卸设备驱动程序,虚存空间可达 252字节,网络特性出色,管理工具多样,各种语言支持,商用 Unix软件大都可在其上运行,许多自由软件可以移植过来 。 世界上许多 Internet网站和研究中心都采用
RS/6000及 AIX系统,主要用在 FTP,email,Web服务器,
数据库服务器,及 CAD,CAE,可视化等各种科学和工程应用 。
2 S/390企业级服务器,运行 OS/390、
VM和 DOS/VSE操作系统
目前全世界商用数据处理 70%以上都运行 S/390企业级服务器。由于中小型服务器组合的公司网因处理能力所限,维修成本过高,不大能适应现代商业的需要 ;此外,
电子商务的蓬勃发展,大大刺激了对计算能力的需求,
导致大型机市场再度升温,用一台或几台大型机代替众多的中小服务器已成为 IT业户与大势所趋。这也反映了计算机应用遵循:集中 — 分散 — 再集中的曲折历程。
S/390大型机及其操作系统 OS/390便在这样的大趋势下应运而生。
最新一代 S/390G6是当今世界上第一个使用铜质互联芯片技术的企业级服身器,速度达 1600MIPS。 OS/390
前身是 MVS,1996年 IBM宣布 OS390 1.1版,1998年
IBM宣布 OS/390 2.5版,目前最新版本是 OS/390 2.7版。
OS/390是一个 基于对象技术的开放式的操作系统,支持 X/OpenXPG4 unix标准。除了 Unix应用程序可在
OS/390上运行外,兼容 S/370上开发的所有应用程序。
它支持 TCP/IP协议,网络安全性很高。
OS/390采用了面向对象程序设计技术,并行处理技术,分布式处理技术,Client/Server技术,具有较强的互操作性,可扩展性和可移植性 。 由于历史的原因,OS/390有几种不同的运行方式,S/370模式支持原 S/370下运行的程序 ;MVS/ESA390(Enterprise System
Architecture,ESA)模式可支持 10个 240MB处理器内存和 256个通道 ;ESA/390LPAR模式可把系统从逻辑上分成 (Logical Partitioning)最多十个部分,有些多 CPU型号甚至可分成 20个
LPAR,每个部分有自己的 CPU,内存和通道,
且分别运行不同操作系统,如 OS/370,
MVS/ESA370和 MVS/ESA390,也可以运行
IBM原有操作系统虚机器操作系统 VM和虚存扩充操作系统 DOS/VSE。
4 AS/400服务器 首次采用 64位的 RISC
技术,运行 OS400操作系统。
AS/400服务器是 IBM开发的最新中型商用机器,有四种类型 。 各种设备如:工作站,PC机,磁带机,CD-
ROM,远程控制器,打印机等都可连接到服务器上 。
AS/400上配置 OS/400操作系统,在硬件之上自底向上共设置了四层软件,许可证内部代码,OS/400,程序设计支持和应用支持 。
OS/400主要提供以下功能:控制语言和菜单,系统操作员服务,程序员服务,工作管理,设备管理,数据管理,消息处理,通信和安全性保证 。 程序设计支持层提供 C,C++,Cobol,RPG,Java等语言 。 应用支持层提供网络管理,工业应用,数控库和系统管理服务 。 许可证内部代码 (Licensed Internal Code,LIC)由
IBM提供并在提交系统之前预先安装在 AS/400上的一组用户不可见指令,用户程序需经硬件自动转换成
LIC才能被 CPU执行 。