1.2.2 操作系统的进一步发展
操作系统的形成已有60多年的历史。在20世纪,经过60年代、70年代的大发展时期,到80年代已趋于成熟。但随着VLSI和计算机体系结构的发展,操作系统仍在继续发展。由此而先后形成了微机操作系统、多处理机操作系统、网络操作系统、分布式操作系统以及嵌入式操作系统。
1.微机操作系统
配置在微机上的操作系统称为微机操作系统。最早出现的微机操作系统是在8位微机上的CP/M,后来出现了16位微机,相应地也就出现了16位微机操作系统。可按微机的字长分成8位、16位、32位和64位的微机操作系统,也可分为单用户单任务操作系统、单用户多任务操作系统和多用户多任务操作系统。
(1)单用户单任务操作系统。单用户单任务操作系统的含义是,只允许一个用户上机且只允许用户程序作为一个任务运行。这是一种最简单的微机操作系统,主要配置在8位微机和16位微机上。最有代表性的单用户单任务操作系统是CP/M和MS-DOS。
①CP/M。CP/M是Control Program/Monitor的缩写,是在1975年由Digital Research公司率先推出的带有软盘系统的8位微机操作系统,它配置在以Intel 8080、Intel 8085、Z80芯片为基础的微机上。由于CP/M具有较好的层次结构、可适应性、可移植性及易学易用性,使之在8位微机中占据了统治地位,成为事实上的8位微机操作系统的标准。
②MS-DOS。1981年IBM公司首次推出了IBM-PC(IBM个人计算机),在微机中采用了Microsoft公司开发的MS-DOS操作系统。该操作系统在CP/M的基础上进行了较大的扩充,增加了许多内部和外部命令,使该操作系统具有较强的功能及性能优良的文件系统。又因为它是配置在IBM-PC上,而随着该机种及其兼容机的畅销,MS-DOS操作系统也就成了事实上的16位微机单用户单任务操作系统的标准。
(2)单用户多任务操作系统。单用户多任务操作系统的含义是:只允许一个用户上机,但允许将一个用户程序分成若干个任务,使它们并发执行,从而有效地改善系统的性能。在32位微机上所配置的32位微机操作系统大多数是单用户多任务操作系统,其中最有代表性的是OS/2、MS Windows和Linux。
①OS/2。1987年4月,在IBM公司宣布下一代个人系统PS/2的同时,又发表了OS/2。其最初版本OS/2 1.x是针对80286开发的,故仍属于16位微机操作系统,但已能实现真正的多任务处理。后来推出的OS/2 2.x版本则是针对80386和80486开发的,因而已是32位微机操作系统。
②Windows。1990年,Microsoft公司推出了Windows 3.0,具有易学易用、友好的图形用户界面和支持多任务的优点,得以很快地流行开来,占领了市场。特别是Windows NT的出现,它支持RISC(精简指令集计算机)平台,具有高容量I/O、对称多处理C2级的安全性、客户机/服务器等功能。Windows 95在1995年8月正式发布,这是第一个不要求用户先安装MS-DOS的Windows版本。此后,又陆续发布Windows 98、Windows ME、Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 10和Windows Server操作系统,不断持续更新。
③Linux。20世纪90年代,Internet的出现,迅速改变着社会的面貌。国际上操作系统的研究活动也在发生着深刻的变化。1991年Linux在Internet上发布了一则消息,称用户可以自由下载Linux的公开版本。到1992年1月为止,全世界大约有100个人在使用Linux,他们的下载代码和评论对Linux的发展做出了关键性的贡献。于是,Linux从最开始的一个人的产品变成了在Internet上由无数志同道合的程序员们参与的一场运动。Linux遵从国际上相关组织制定的UNIX标准POSIX。它的结构、功能以及界面都与经典的UNIX并无两样。然而Linux的源码完全是独立编写的,与UNIX源码无任何关联。Linux继承了UNIX的全部优点,而且还增加了一条其他操作系统都不曾具备的优点,即Linux源码全部开放,并能在网上自由下载。Linux对硬件配置要求不高,甚至只需一台386计算机便能高效实现。Linux极其健壮,世界上很多Linux连续不停机运行一年以上也不曾崩溃过。
(3)多用户多任务操作系统。多用户多任务的含义是,允许多个用户通过各自的终端使用同一台主机,共享主机系统中的各类资源,而每个用户程序又可进一步分为几个任务,使它们并发执行,从而可进一步提高资源利用率和增加系统吞吐量。在大、中、小型机中所配置的都是多用户多任务操作系统;而在32位微机上,也有不少配置的是多用户多任务操作系统。其中,最有代表性的是UNIX操作系统。
UNIX操作系统是美国电报电话公司的Bell实验室开发的,至今已有40多年的历史。最初,它是配置在DEC公司的小型计算机PDP上,后来被移植到微机上。UNIX操作系统是唯一在微机工作站、小型计算机到大型计算机上都能运行的操作系统,它已成为当今世界最流行的多用户多任务操作系统。
2.多处理机操作系统
(1)多处理机系统的引入。短短几十年的计算机发展历史清楚地表明提高计算机系统性能的主要途径有两条:一是提高构成计算机系统的元器件的运行速度;二是改进计算机系统的体系结构。早期的计算机系统基本上都是单处理机系统。进入20世纪70年代出现了多处理机系统(Multi-Processor System,MPS),试图从计算机体系结构上来改善系统性能。引入多处理机系统的原因可归结为以下几点:
①增加系统的吞吐量。随着系统中处理机数目的增多,可使系统在较短的时间内完成更多的工作。但为使多台处理机能协调地工作,系统必须为此付出一定的开销。因此,利用n个处理机运行时所获得的加速比达不到n倍。
②节省投资。在达到相同处理能力的情况下,与用n台独立的计算机系统相比,采用具有n个处理机的系统,可以节省费用。这是因为这时的n个处理机包含在同一个机箱内,且用同一电源和共享一部分资源,例如外设、内存等。
③提高系统的可靠性。在MPS中通常都具有系统重构的功能,即当其中任何一个处理机发生故障时,系统能立即将该处理机上所处理的任务迁移到其他的一个或多个处理机上去处理,整个系统仍能正常运行,仅使系统的性能有所降低。例如,对于一个含有10个处理机的系统,当其中某一个处理机出现故障时,系统性能大约降低10%。
(2)多处理机系统的类型。根据多个处理机之间耦合的紧密程度,可把多处理机系统分为两类:紧密耦合多处理机系统和松散耦合多处理机系统。
①紧密耦合多处理机系统。在紧密耦合多处理机系统中,通常是通过高速总线或高速交叉开关来实现多个处理机之间的相互连接。它们共享内存和I/O设备,并要求将内存储器划分为若干个能独立访问的存储器模块,以便多个处理机能同时对内存进行访问。系统中所有的资源和进程都由操作系统实施统一的控制和管理。
②松散耦合多处理机系统。在松散耦合MPS中,通常是通过通道或通信线路来实现多台计算机之间的互联。每台计算机都有自己的存储器、I/O设备,并配置了操作系统来管理本地资源和在本地运行的进程。因此,每一台计算机都能独立地工作,必要时可通过通信线路与其他计算机交换信息,以及协调它们之间的工作。
(3)多处理机操作系统的类型。在多处理机系统中所配置的多处理机操作系统,可分成以下两种模式:
①非对称多处理机模式,又称主-从模式。在非对称多处理机系统中,把处理机分为主处理机和从处理机两类。主处理机只有一个,其上配置了操作系统,用于管理整个系统的资源,并负责为各从处理机分配任务。从处理机可有多个,它们执行预先规定的即由主处理机所分配的任务。在早期的特大型系统中,较多地采用主-从式操作系统。一般来说,主-从式操作系统易于实现,但资源利用率低。
②对称多处理机模式。通常在对称多处理机系统中,所有的处理机都是相同的。在每个处理机上运行一个相同的操作系统备份,用它来管理本地资源和控制进程的运行以及各计算机之间的通信。这种模式的优点是允许多个进程同时运行。例如,当有n个处理机时,可同时运行n个进程而不会引起系统性能的恶化。然而必须小心地控制I/O设备,以保证能将数据送至适当的处理机。同时,还必须注意使各处理机的负载平衡,以免有的处理机超载运行,而有的处理机空闲。
3.网络操作系统
计算机网络可以定义为一些互联的自主计算机系统的集合。所谓自主计算机是指计算机具有独立处理能力;而互联则是表示计算机之间能够实现通信和相互合作。可见,计算机网络是在计算机技术和通信技术在高度发展的基础上相互结合的产物。
(1)计算机网络的类型。
①按网络拓扑结构分类。根据网络拓扑结构的不同,可将网络分成以下5类:
● 星形网络。每一个远地结点通过一条单独的传输线路与中心点连接,即采用点-点连接方式,使网络呈现星形。
● 树形网络。将一个多级星形网络按层次排列便形成树形网络。树的根,即网络的最高层,是中央处理机,树的叶,即网络的最底层,为终端式个人计算机。
● 总线形网络。将若干个结点通过一条高速总线互联起来所形成的网络。采用广播方式,即由一个结点发出的信息可被总线上的所有结点接收。
● 环形网络。采用高速点-点信道,将各结点连接成环形,网络中的信息流是定向的,由一个源结点发出的信息将绕环传输一周后返回源结点。
● 网状形网络。各个结点间通过点-点连接,形成不规则的形状,结点之间通常都有多条通路。
②按网络地理范围分类。按网络所覆盖地理范围的大小,可把计算机网络分成以下两类:
● 广域网(WAN)。这种计算机网络所跨越的距离通常为数百千米到数千千米,甚至是上万千米;网络所覆盖的范围可以为一个地区或一个国家,乃至几大洲,其传输速率可达到数Mbit/s;网络中的通信设施属国家所有。
● 局域网(LAN)。这种计算机网络所跨越的距离通常为几十米至数千米;网络所覆盖的范围为一栋楼或一个单位;其传输速率较高,可达到100Mbit/s;网络设施属单位所有。
(2)网络操作系统的模式。网络操作系统有以下两种工作模式:
①客户机/服务器(Client/Server,C/S)模式。该模式是在20世纪80年代发展起来的,目前仍广为流行。网络中的各个站点可分为以下两大类。
● 服务器。它是网络的控制中心,其任务是向客户机提供一种或多种服务。服务器可有多种类型,如提供文件/打印服务的文件服务器、提供数据库服务的数据库服务器等。在服务器中包含了大量的服务程序和服务支撑软件。
● 客户机。这是用户用于本地处理和访问服务器的站点。在客户机中包含了本地处理软件和访问服务器上服务程序的软件接口。C/S模式具有分布处理和集中控制的特征。
②对等模式。采用这种模式的操作系统的网络中,各个站点是对等的。它既可作为客户机去访问其他站点,又可作为服务器向其他站点提供服务。在网络中既无服务处理中心,也无控制中心。或者说,网络的服务和控制功能分布于各个站点上。可见,该模式具有分布处理及分布控制的特征。
(3)网络操作系统的功能。网络操作系统应具有下述5方面的功能:
①网络通信。这是网络最基本的功能,其任务是在源主机和目标主机之间实现无差错的数据传输。为此,应有的主要功能包括:建立和拆除通信链路、传输控制、差错控制、流量控制、路由选择。
②资源管理。对网络中的共享资源(硬件和软件)实施有效的管理、协调诸用户对共享资源的使用、保证数据的安全性和一致性。在LAN中典型的共享资源有:硬盘、打印机、文件和数据。
③网络服务。这是在前两个功能的基础上,为了方便用户而直接向用户提供的多种有效服务。主要的网络服务有:电子邮件服务;文件传输、存取和管理服务;共享硬盘服务;共享打印服务。
④网络管理。网络管理最基本的任务是安全管理。通过“存取控制”来确保存取数据的安全性;通过“容错技术”来保证系统出现故障时数据的安全性。此外,还应对网络性能进行监视、对使用情况进行统计,以便为提高网络性能、进行网络维护和记账等提供必要的信息。
⑤互操作能力。在20世纪80年代后期所推出的操作系统都已提供了联网功能,从而便于将微机连接到网络上。在20世纪90年代推出的网络操作系统又提供了一定范围的互操作能力。所谓互操作,在客户机/服务器模式的LAN环境下,是指连接在服务器上的多种客户机和主机不仅能与服务器通信,而且还能以透明的方式访问服务器上的文件系统;而在互联网环境下的互操作,是指不同网络间的客户机不仅能通信,而且也能以透明的方式访问其他网络中的文件服务器。
4.分布式操作系统
(1)分布式系统。在以往的计算机系统中,其处理和控制功能都高度地集中在一台主机上,所有的任务都由主机处理,这样的系统称为集中式系统。
在分布式系统中,系统的处理和控制功能分散在系统的各个处理单元上。系统中的所有任务也可动态地被分配到各个处理单元中,使它们并行执行,实现分布处理。可见,分布式系统最基本的特征是处理上的分布。而处理分布的实质是资源、功能、任务和控制都是分布的。在分布式系统中,如果每个处理单元都是计算机,则可称为分布式计算机系统;如果处理单元只是处理机和局部存储器,则只能称为分布式(处理)系统。
(2)分布式操作系统与网络操作系统的比较。在分布式系统上配置的操作系统,称为分布式操作系统,它虽与网络操作系统有许多相似之处,但两者各有其特点。下面从5个方面对两者进行比较:
①分布性。分布式操作系统不是集中地驻留在某一个站点中,而是较均匀地分布在系统的各个站点上,因此分布式操作系统的处理和控制功能是分布式的。计算机网络虽然具有分布处理功能,然而网络的控制功能则大多集中在某个(些)主机或网络服务器中,或者说控制方式是集中式。
②并行性。在分布式处理系统中,具有多个处理单元,因此,分布式操作系统的任务分配程序可将多个任务分配到多个处理单元上,使这些任务并行执行,从而加速任务的执行。而在计算机网络中,每个用户的一个或多个任务通常都在自己(本地)的计算机上处理,因此在网络操作系统中通常无任务分配功能。
③透明性。分布式操作系统通常能很好地隐藏系统内部的实现细节。例如,对象的物理位置、并发控制、系统故障等对用户都是透明的。例如,当用户要访问某个文件时,只需提供文件名而无须知道它(所要访问的对象)是驻留在哪个站点上,即可对它进行访问,亦即具有物理位置的透明性。对于网络操作系统,虽然它也具有一定的透明性,但主要是指在操作实现上的透明性。例如,当用户要访问服务器上的文件时,只需发出相应的文件存取命令而无须了解对该文件的存取是如何实现的。
④共享性。在分布式系统中,分布在各个站点上的软、硬件资源可供全系统中的所有用户共享,并能以透明方式对它们进行访问。而网络操作系统虽然也能提供资源共享,但所共享的资源大多是设置在主机或网络服务器中。而在其他计算机上的资源则通常仅由使用该机的用户独占。
⑤健壮性。由于分布式系统的处理和控制功能是分布的,因此任何站点上的故障都不会给系统造成太大的影响;加之当某设备出现故障时,可通过容错技术实现系统重构,从而仍能保证系统的正常运行,因而系统具有健壮性,即具有较好的可用性和可靠性。而现在的网络操作系统的控制功能大多集中在主机或服务器中,这使得系统具有潜在的不可靠性,此外,系统的重构功能也较弱。
5.嵌入式操作系统
嵌入式系统在用来控制设备的计算机中运行,这种设备不是一般意义上的计算机,并且不允许用户安装软件。典型的例子有微波炉、电视机、汽车DVD、移动电话以及MP3播放器一类的设备。区别嵌入式系统与掌上设备的主要特征是:不可信的软件肯定不能在嵌入式系统上运行。用户不能给自己的微波炉下载新的应用程序,所有的软件都保存在ROM中。嵌入式操作系统是用于嵌入式系统的系统软件,它已经从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。嵌入式操作系统是相对于一般操作系统而言的,它除具备一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:
(1)可装卸性。开放性、可伸缩性的体系结构。
(2)强实时性。嵌入式操作系统实时性一般较强,可用于各种设备控制当中。
(3)统一的接口。提供各种设备驱动接口。
(4)操作方便、简单、提供友好的图形界面,追求易学易用。
(5)提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。
(6)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的嵌入式操作系统具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供服务。
(7)固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,用各种内存文件系统。
(8)更好的硬件适应性,也就是良好的移植性。
在这个领域中,主要的嵌入式操作系统有Linux、Symbian和VxWorks等。