1.3 主要操作系统介绍
目前最常用的操作系统是Windows系列、UNIX家族和Linux。其中,UNIX常用的变种有SUN公司的Solaris、IBM公司的AIX、惠普公司的HP UX等。其他比较常用的操作系统还有Mac OS,NetWare等。
1.3.1 Windows系列及MS DOS
微软公司于1975年成立,最初只有一个BASIC编译程序和比尔·盖茨、保罗·艾伦两个人。但现在,微软公司已成为世界上最大的软件公司,其产品涵盖操作系统、开发系统、数据库管理系统、办公室自动化软件、网络应用软件等各个领域。Windows系列操作系统是由微软公司从1985年起开发的一系列窗口操作系统产品,包括个人(家用)、商用和嵌入式三条产品线,如图1.9所示。
图1.9 微软公司Windows系列操作系统产品线
个人操作系统包括Windows Me,Windows 98/95,及更早期的版本Windows 3.x,Windows 2.x,Windows 1.x等,主要在IBM个人机系列上运行,现在随着个人计算机处理速度的提高及系统其他性能的提高,安装上述系统的人不多了,微软公司也停止了上述版本的发行。商用操作系统是以Windows NT为基础的Windows系统,主要在服务器、工作站上运行,也可以在IBM个人机系列上运行。嵌入式操作系统有用于掌上电脑的Windows CE和手机用操作系统Smartphone等。2001年微软利用以Windows NT为基础的Windows XP将家用和商用两条产品线合二为一,2003年推出了2000的升级版Windows 2003。Longhorn是微软公司Windows Vista版本的开发代号。它是继Windows XP和Windows Server 2003之后的又一重要的操作系统。该系统于2006年底发布运行。Vista特别针对系统安全做了许多工作,但是系统臃肿,运行效率受到影响。2009年微软推出了Windows 7,系统性能得到很大改善。
微软公司从1983年开始研制Windows操作系统。当时,IBM PC进入市场已有两年,微软公司开发的微型计算机操作系统DOS和编程语言BASIC随IBM PC捆绑销售,取得了成功。Windows操作系统最初的研制目标是在DOS基础上提供一个多任务的图形用户界面。不过,第一个取得成功的图形用户界面系统并不是Windows,而是Windows的模仿对象——苹果公司于1984年推出的Mac OS(运行于苹果公司的Macintosh个人计算机上),Macintosh机及其上的操作系统风靡美国多年,是IBM PC和DOS操作系统在当时市场上的主要竞争对手。当年,苹果公司曾对PC的Windows操作系统不屑一顾,并大力抨击微软公司抄袭Mac OS的外观和灵感。但苹果机和Mac OS是封闭式体系(硬件接口不公开、系统源代码不公开等),而IBM PC和MS DOS是开放式体系(硬件接口公开、允许并支持第三方厂家做兼容机、操作系统源代码公开等)。这个关键的区别使得IBM PC后来者居上,销量超过了苹果机,并使在IBM PC上运行的Windows操作系统的普及率超过了Mac OS,成为个人计算机市场占主导地位的操作系统。
1.MS DOS
DOS是微软公司与IBM公司开发的、广泛运行于IBM PC及其兼容机上的操作系统,全称是MS DOS。
20世纪80年代初,IBM公司开发IBM PC。当其涉足微型计算机市场时,曾多方考察选择配合该机的操作系统。1980年11月,IBM和微软公司正式签约,日后的IBM PC均使用DOS作为标准的操作系统。由于IBM PC大获成功,微软公司也随之得到了飞速发展,MS DOS从此成为个人计算机操作系统的代名词,发展为个人计算机的标准平台。
IBM PC机上所配的操作系统称为PC DOS,是IBM公司向微软公司买下MS DOS的版权,经过修改和扩充后而产生的。
MS DOS最早的版本是1981年8月推出的1.0版,1993年6月推出了6.0版,微软公司推出的最后一个MS DOS版本是DOS 6.22,以后不再推出新的版本。MS DOS是一个单用户微型计算机操作系统,自4.0版开始具有多任务处理功能。
2.Windows Me,Windows 98/95及Windows 3.x的发展历史
微软公司Windows操作系统的个人产品线由20世纪80年代的DOS平台演变而来,其中,影响较大和较突出的版本是Windows 3.1和Windows 95。
Windows 3.1在1992年发布,该系统修改了3.0的一些不足,并提供了更完善的多媒体功能,Windows系统开始流行起来,确定了Windows操作系统在PC领域的垄断地位,而Windows 95一上市就风靡世界。Windows 3.1及以前的版本均为16位系统,因而还不能充分利用硬件的发展提供强大功能。同时,它们必须与DOS共同管理系统硬件资源,依赖DOS管理文件系统,且只能在DOS之上运行,并且它不是多道程序设计系统,因而还不能算是完整的操作系统。而Windows 95则重写了操作系统内核,不再基于DOS系统,特别是增加了多任务,使得用户可以同时运行多个程序,成了真正的多道程序设计系统,并在提供强大功能(如网络和多媒体功能等)和简化用户操作(如桌面和资源管理等新特性)两个方面都取得了突出的成绩。
2000年9月,微软公司推出Windows 95/98的后续版本Windows Me(视窗千禧版,Microsoft Windows Millennium Edition),较之Windows 95/98没有本质上的改进,只是扩展了一些功能,增加了一些驱动程序。Windows Me的后续版本是把微软公司个人操作系统与商用操作系统合二为一(即把Windows Me和Windows 2000合二为一)的Windows XP。这种产品线的合并同时意味着,微软公司以后的个人和商用机器的Windows操作系统都基于NT内核。
3.微软公司的多用户操作系统Windows NT系列
微软公司在20世纪80年代中后期的主流产品Windows和DOS都是个人计算机上的单用户操作系统。1985年,IBM公司开始与微软公司合作开发商用多用户操作系统OS/2,1987年OS/2推出后,微软公司开始计划建立自己的商用多用户操作系统。1988年10月,微软公司聘用Dave Culter作为NT的主设计师,开始组建开发新操作系统的队伍。1993年5月24日,经过几百人4年多的工作,微软公司正式推出Windows NT。在相继推出Windows NT1.0,2.0,3.0,4.0后,2000年2月,推出Windows 2000(原来称为Windows NT5.0)。而Windows 2000的后一个版本是Windows XP。后来又推出了Windows 2003,2006年推出Vista,2009年推出Windows 7。
Windows NT的开发目标是开发工作站和服务器上的32位操作系统,以充分利用32位微处理器等硬件新特性,并使其容易适应将来的硬件变化,同时不影响已有应用程序的兼容性(使原有的工作量和修改量最小)。
Windows NT设计初期采用OS/2界面,后来因Windows 3.1操作系统的成功又改用Windows系列的界面。Windows NT系列可支持Intel x86和部分RISC CPU。Windows NT较好地实现了充分利用硬件新特性、可扩充性、可移植性、兼容性等设计目标,它支持对称多处理机结构、内核多线程、多个可装卸文件系统(MS DOS FAT、OS/2 HPFS、CDROM CDFS、NT可恢复文件系统NTFS等),还支持多种常用API(应用编程接口,如WIN 32,OS/2,DOS,POSIX等API),提供源码级兼容或二进制兼容,内置网络和分布式计算,具有互操作性。Windows NT安全性达到美国政府C2级安全标准。
Windows NT的后一个版本与Windows Me的后一个版本合二为一,称为Windows XP。Windows XP的设计理念是,把以往Windows系列软件家庭版的易用性和商用版的稳定性集于一身。
1.3.2 UNIX大家族(SVR4,BSD,Solaris,AIX,HP UX)
UNIX是一种多用户操作系统。它1969年诞生于美国贝尔(电话)实验室,由于其最初的简洁、易于移植等特点而很快得到注意、发展和普及,成为从微型机跨越到巨型机的唯一操作系统。除了贝尔实验室的“正宗”UNIX版本外,UNIX还有大量的变种。例如,目前的主要变种SUN Solaris,IBM AIX和HP UX等,不同变种间的功能、接口、内部结构与函数基本一致但又有不同。除变种外,还有一些系统,如Mach和Linux,与变种的UNIX不同,变种是在正宗版本的基础上修改而来(包括界面与内部实现),而Mach和Linux只是系统调用接口相同,其内核则完全被重写。
最早的UNIX具有内核结构小巧、接口简洁统一、功能丰富实用、用高级语言编写、可移植性好、源代码免费开放等优点,这些优点对UNIX的迅速成功起着重要作用。但后来由于变种不加控制地繁衍和功能的不断增加,其中的一些优点并没有完全保持下来。后来的UNIX内核不再小巧,而变得越来越庞大、复杂和笨拙。源代码免费开放和简单的许可证传播形式促进了早期的普及,但也导致了后来各变种间的不兼容。
此外,最初的UNIX就具有内核结构可扩充性不强、缺乏图形界面、接口对初学者和普通用户不友好等缺点。现在这些缺点有的得到了改善,有的还存在。图形界面在后来得到了发展,如X-Window,Motif等。内核结构问题至今仍存在。
UNIX最初的许多概念、命令、实用程序和语言,今天仍沿用,显示了UNIX原始设计的简洁和实力。
UNIX的发展主要经历了5个阶段。其发展历程如图1.10所示。
图1.10 UNIX发展历程
(1)UNIX的产生
UNIX起源于“Multics”的开发失败。Multics项目(Multipexed Information and Computing Service)由贝尔(电话)实验室、通用电气公司(General Electric)和麻省理工学院联合开发,旨在建立一个能够同时支持数千用户的分时系统,该项目因目标过于庞大而失败,于1969年撤销。
退出Multics项目后,贝尔实验室的雇员Thompson开始在公司的一台闲置的PDP—7(主存4KB)上开发一个“太空漫游”游戏程序。由于PDP-7缺少程序开发环境,为了方便这个游戏程序的开发,Thompson和公司的另一名雇员Ritchie一起用GE—645汇编语言(以前用于Multics开发)开发PDP—7上的操作环境。最初是一个简单的文件系统(后来演化为S5文件系统),很快又添加了一个进程子系统、一个命令解释器(后来发展为Bourne Shell)和一些实用工具程序,这个系统被命名为UNIX。
此后,随着贝尔实验室工作环境的需要,UNIX移植到PDP—11上,并逐渐增加了新的功能。很快地,UNIX开始在贝尔实验室内部流行,许多人都投入到它的开发中来。1971年,《UNIX程序员手册》第1版出版。从这之后直到1989年,贝尔实验室又相继出版10个版本的UNIX。
1973年,Ritchie开发的C语言对UNIX的发展起了重要作用。同年,用C语言重写了UNIX(UNIX第4版),这使得UNIX的可移植性大大增强,这是UNIX迈向成功之路的关键一步。
1973年10月,Thompson和Ritchie在ACM(Association for Computing Machinery,计算机协会)的SOSP(Symposium on Operating Systems Principles,操作系统原理讨论会),上发表了首篇UNIX论文,这是UNIX首次在贝尔实验室以外亮相。
(2)免费扩散(1973年到20世纪70年代末)
自从在SOSP上发表论文后,UNIX马上引起了众人的注意和兴趣,UNIX软件和源代码迅速以许可证形式免费传播到世界各地的大学及研究机构。这些大学、研究机构在免费使用的同时,对UNIX进行了进一步的研究、改进和移植。贝尔试验室又将这些改进与移植加入其以后的UNIX版本中。这种管理员与用户之间的敬业精神正是UNIX快速成长和不断发展的关键因素。UNIX早期发展的这种特征与近年Linux的发展极为相似。
另外,众多大学对UNIX的免费使用,使学生们得以熟悉UNIX,这些学生毕业后又把UNIX传播到各种商业和政府机构,这对UNIX早期的传播和普及起到了重要作用。
UNIX的第一次移植,是由Wollongong大学于1976年将其移植到Interdata机上。其他几次较早的移植包括:1978年,微软公司与SCO公司合作将UNIX移植到Intel 8086上,即XENIX系统(最早的UNIX商业变种之一);1978年,DEC公司将UNIX委托移植到VAX上,即UNIX/32V(3BSD的前身)。
(3)商用版本的出现和三大主线的形成(20世纪70年代中期到80年代中期)
20世纪70年代中期到80年代中期,UNIX的迅速发展,众多大学和公司的参与,使UNIX的变种迅速增多。像SUN Solaris,IBM AIX和HP UX等变种主要基于以下三条主线上的某个版本发展而来:由贝尔实验室发布的UNIX研究版(First Edition UNIX到Tenth Edition UNIX,或称V1到V10,以后不再发行新版)、由加利福尼亚州大学伯克利分校发布的BSD(Berkeley Software Distribution)、由贝尔实验室发布的UNIX System Ⅲ和SystemⅤ。
1984年的AT&T大分家使得AT&T可以进入计算机市场。因此,除了贝尔实验室研究小组继续研究和发行UNIX研究版之外,AT&T成立了专门的UNIX对外发行机构。这些机构先后发行了System Ⅲ(1982年)、SystemⅤ(1983年)、SystemⅤ Release 2(SVR2,1984年)、SVR3(1987年),许多商业UNIX变种都是基于这条主线实现的。
加利福尼亚州大学伯克利分校是最早(1973年12月)领取许可证的UNIX用户之一,最初的BSD版本发行(1978年春的1BSD和1978年末的2BSD)仅包括应用程序和实用工具(如Vi,Pascal编译,C编译,Shell解释器等),没有对操作系统核心本身进行修改和再发行。1979年末的3BSD则在内核设计上实现了页式虚存,它是由加利福尼亚州大学伯克利分校发行的第一个操作系统核心。在3BSD中所做的虚存工作使该校得到美国国防部资助,推出了4BSD(1980年4.0BSD到1993年的4.4BSD),其中集成了TCP/IP,引入了快速文件系统(Fast File System,FFS)、套接字等大量先进技术。BSD对UNIX的发展具有重要影响,有许多新技术是BSD率先引入的。SUN OS就是基于4BSD的。伯克利分校对UNIX的开发工作一直由计算机科学研究小组(Computer Science Research Group,CSRG)承担,1993年发行4.4BSD时,CSRG宣布因缺少资金等原因而停止UNIX开发,因此4.4BSD是伯克利分校发行的最后一个版本。
到20世纪80年代,UNIX已在从微型机到巨型机等众多不同机型上运行。作为通用操作系统,当时UNIX的主要竞争对手是各计算机厂商的专有系统,如IBM的OS 360/370系列等。
(4)两大阵营和标准化(20世纪80年代后期)
20世纪80年代后期,UNIX已经出现了很多变种,变种增多导致了程序的不兼容性和不可移植(同一应用程序在不同UNIX变种上不能不经修改而直接运行)。因此,迫切需要对UNIX进行统一标准化,这就导致了竞争的两大阵营和中间标准机构的出现。
1987年,在统一市场的浪潮中,AT&T宣布了与SUN公司的一项合作,将SystemⅤ和SUN OS统一为一个系统。其余厂商(IBM,Digital,HP,Apollo等)十分关注这项开发,认为他们的市场处于威胁之下,于是联合开发新的开放系统。他们的新机构称为开放软件基金会(Open Software Foundation,OSF),于1988年成立。作为回应,AT&T和SUN公司联盟也于1988年形成了UNIX International(UNIX国际,UI)。以SVR4为契机的这场“UNIX战争”将系统厂商划分成UI和OSF两大阵营,并围绕着两大主要UNIX系统技术(AT&T的SystemⅤ和称为OSF/1的OSF系统)展开竞争。
1989年,在SystemⅤ,BSD和XENIX的基础上,AT&T的UNIX Software Operation(UNIX软件工作室,USO)设计实现了SVR4。SVR4是非常成功且广泛使用的一个版本(目前大部分UNIX商业变种都基于SVR4)。SVR4的开发对核心进行了大幅度重写,吸收了由SUN OS提供的许多特性,如虚拟文件系统(Virtual File System,VFS)接口、一个完全不同的存储管理体系结构和SUN网络文件系统(Network File System,NFS)。除了从SUN OS吸收增强特性外,还从BSD UNIX,SystemⅤ Release3,XENIX吸收了诸多特性,以及对UI定义的新特性进行了补充。
定义SVR4的过程在当时来说是非常开放的。最终用户、软件开发商、系统管理员、经销商等都被要求列出他们的系统软件问题,并就他们对下一代UNIX环境的希望提供反馈。最终的目标是,确定如何最好地增强UNIX的可用性和可伸缩性。基于这些意见和反馈,SVR4从当时的三个主要UNIX平台(BSD/SUN OS,SVR3,XENIX)汲取了最优的技术。
SVR4通过把UNIX的三个主要分支(BSD/SUN OS,SystemⅤ和XENIX)联合到一个公用环境中来统一零碎的UNIX市场。SVR4使已安装的80%的UNIX系统得到了统一,使主要基于SystemⅤ、XENIX的变种和基于BSD/SUN OS的变种得到了统一。SVR4规范了系统调用等接口,使用户二进制程序在同处理机情况下跨操作系统版本移植成为可能。
与UI相对立的OSF,则于1989年推出基于卡内基-梅隆大学Mach 2.5版的操作系统OSF/1。
20世纪80年代中期,由卡内基-梅隆大学开发的Mach支持UNIX系统调用编程接口,但却是一个全新的内核。OSF/1和NextStep等商业系统都基于Mach 2.5。Mach 2.5的后续版本Mach 3.0与2.5版的内核结构完全不同,引入了所谓微内核结构,不过因为微内核结构的系统开销太大,因此一直没有商业化。
除UI和OSF所做的统一和标准化努力外,还出现了若干UNIX标准接口(主要是编程接口),如AT&T的SystemⅤ接口定义(SystemⅤ Interface Definition,SVID)、IEEE POSIX规范(如1990年的POSIX 1003.1)、X/Open可移植性指南(X-open Portability Guideline,XPGA,如1993年的XPG4)等。
任一标准都只涉及大多数UNIX系统功能的一个子集。理论上说,如果程序员只使用该子集的函数,其应用程序就可以移植到任何遵从同一标准的系统上。但这也意味着,程序员不能利用硬件或操作系统特性对应用程序进行优化,也不可能利用某些UNIX厂商提供的特殊功能。标准化保障了可移植性,却给性能优化制造了障碍。与这一矛盾相关的是,在标准化过程中,各厂商总想加入一些特性来标榜自己的“产品特色和优势”,这也使得标准化没有完全成功。
(5)共同面对Windows NT的竞争和两大阵营的淡化(20世纪90年代)
20世纪90年代初期,美国经济萧条,加上微软公司的Windows系统蓬勃发展,这一切都威胁着UNIX的发展乃至生存。共同面对的外来竞争,使两大阵营(UI与OSF)的争斗很快淡化下来。
1993年,UI停止商业运作。出于各种原因,SVR4从1989年至今几经易主,先后曾属于AT&T UNIX Software Operation(1989年)、UNIX系统实验室(UNIX System Laboratories,USL,1991年)、Novell公司(1991年部分股权,1993年所有股权)、X/OPEN(1993年底,仅拥有商标和授权书)和SCO公司(1995年底)。
Digital公司1993年发行的DEC OSF/1是唯一一个基于OSF/1标准的商业操作系统。此后,Digital公司从该操作系统中删减了许多与OSF/1相关的部分,1995年将其改名为Digital UNIX。1998年,DEC公司被Compaq公司并购后又改名为Tru64 UNIX。
1.3.3 自由软件Linux和freeBSD等
1984年,自由软件的积极倡导者Richard Stallman组织开发了一个所谓自由软件的软件体系——GNU(GNU is Not UNIX),并拟订了一份通用公用版权协议(General Public License,GPL)。所谓自由软件是由开发者提供软件的全部源代码,任何用户都有权使用、复制、扩散、修改该软件,同时用户也有义务将自己修改的程序代码公开。自由软件可免费提供给任何用户使用,也包括用于商业目的;并且自由软件的所有源程序代码也是公开的,可免费得到。它的源代码不仅公开而且可自由修改,无论修改的目的是使自由软件更加完善,还是在修改的基础上开发上层软件都没有问题。
自由软件的出现给人们带来很大的好处。首先,免费可使用户节省相当一笔费用;其次,公开源代码可吸引尽可能多的开发者参与软件的查错与改进。在开发协调人的控制下,自由软件新版本的公布、反馈、更新等过程是完全开放的。
目前,人们已很熟悉的一些软件,如因特网域名服务器程序BIND、Perl编程语言环境、Web服务器程序Apache、TCP/IP网络软件等,实际上都是自由软件的经典之作。还有如C++编译器、FORTRAN 77、SLIP/PPP、IP Accounting、防火墙、Java内核支持、BSD邮件发送、Arena和LynxWeb浏览器、Samba(用于在不同操作系统间共享文件和打印机)、Applixware的办公套装、starOffice套件、Corel Wordperfect等都是著名的自由软件。
1993年,Linux的创始人Linus把Linux奉献给了GNU,从而使用户能够使用从底层到应用的全套自由软件。
1.Linux
Linux是一个多用户操作系统,是Linus Torvalds主持开发的遵循POSIX标准的操作系统,它提供了UNIX的编程界面,但内核实现则完全重写。它是一个免费的自由软件,源代码开放,这是它与UNIX及其变种的不同之处。UNIX虽然有过免费发送给学校和科研机构的时代,但是随着其所有者AT&T可以经营计算机产品,其所有者开始收取转让费和使用费。由于内核可以转让,所以其变种也非常多,影响了对用户程序的兼容性。
Linus Torvalds在2001年初的Linux World大会前夕推出了Linux 2.4内核,Linux有内核(Kernel)与发行套件(Distribution)两套版本号。内核版本指在Linus领导下的开发小组开发出系统内核的版本号,最近版本即2.6(一般说来,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.0.35;而序号的第二位为奇数的版本一般有一些新的东西加入,是不一定很稳定的测试版本,如2.1.88)。而一些组织机构或厂商将Linux系统内核同应用软件和文档包装起来,并提供一些安装界面、系统设定与管理工具,这样就构成了一个发行套件,如最常见的Slackware,Red Hat,Debian,红旗Linux等。实际上,发行套件就是Linux的一个大软件包。相对于内核版本,发行套件的版本号随发布者的不同而不同,与系统内核的版本号是相对独立的,如Slackware 3.5,Red Hat9,Debian 1.3.1等。
(1)Linux的产生与发展
Linux最初是由芬兰赫尔辛基大学计算机系的大学生Linus Torvalds,在1990年年底到1991年的几个月中,为了自己的操作系统课程学习和后来上网使用而陆续编写的,在他自己买的Intel 386 PC上,利用Tanenbaum教授自行设计的微型操作系统Minix作为开发平台。据Linus说,刚开始的时候他根本没有想到要编写一个操作系统内核,更没想到这一举动会在计算机界产生如此重大的影响。最开始是一个进程切换器,然后是为自己上网需要而自行编写的终端仿真程序,再后来是为他从网上下载文件自行编写的硬盘驱动程序和文件系统。这时,他发现自己已经实现了一个几乎完整的操作系统内核,出于对这个内核的信心和发展愿望,Linus希望这个内核能够免费扩散使用,但由于谨慎,他并没有在Minix新闻组中公布它,而只是于1991年底在赫尔辛基大学的一台FTP服务器上发了一则消息,说用户可以下载Linux的公开版本(基于Intel 386体系结构)和源代码。从此以后,Linux得到了所有Linux爱好者的协力开发。
Linux的兴起可以说是Internet上创造的一个奇迹。由于它是在Internet上发布的,网上的任何人在任何地方都可以得到Linux的基本文件,并可通过电子邮件发表评论或提供修正代码。这些Linux的热心者中,有将它作为学习和研究对象的大专院校的学生和科研机构的研究人员,也有网络黑客等,他们所提供的所有初期的上载代码和评论后来证明对Linux的发展至关重要。正是由于众多热心者的努力,使Linux在不到三年的时间里成为了一个功能完善、稳定可靠的操作系统。
1993年,Linux的第一个产品——Linux 1.0版问世,它是按完全自由版权进行扩散的。它要求所有的源代码必须公开,而且任何人均不得从Linux交易中获利。然而半年以后,Linus开始意识到这种纯粹的自由软件理想对于Linux的扩散和发展来说实际上是一种障碍而不是一股推动力,因为它限制了Linux以磁盘复制或者CD-ROM等媒体形式进行扩散的可能,也限制了一些商业公司参与Linux的进一步开发并提供技术支持的愿望。于是Linux决定转向GPL版权,这一版权除了规定有自由软件的各项许可权之外,还允许用户出售自己的程序复制品。这一版权的转变后来证明对Linux的进一步发展确实极为重要。从此以后,有多家技术力量雄厚又善于市场运作的商业软件公司加入了原先完全由业余爱好者和网络黑客参与的这场自由软件运动,开发出了多种Linux的发布版本,增加了更易于用户使用的图形界面和众多的软件开发工具,极大地拓展了Linux的全球用户基础。Linus本人也认为:“使Linux成为GPL的一员是我一生中所做过的最漂亮的一件事。”一些软件公司,如Red Hat等也不失时机地推出了自己的以Linux为核心的操作系统版本,这大大推动了Linux的商品化。在一些大的计算机公司的支持下,Linux还被移植到Alpha,PowerPC,MIPS及SPARC等微处理机的系统上。
随着Linux用户基础的不断扩大、性能的不断提高、功能的不断增加、各种平台版本的不断涌现,以及越来越多商业软件公司的加盟,Linux不断地向高端发展,开始进入越来越多的公司和企业计算领域。Linux被许多公司和Internet服务提供商用于Internet网页服务器或电子邮件服务器,并已开始在很多企业计算领域大显身手。1998年下半年,由于Linux本身的优越性,使它成为传媒关注的焦点,进而出现了当时的“Linux热”。首先是各大数据库厂商(Oracle,Informix,Sybase等),继而是其他各大软硬件厂商(IBM,Intel,Netscape,Corel,Adaptec,SUN公司等),纷纷宣布支持甚至投资Linux(支持是指该厂商自己的软硬件产品支持Linux,即可以在Linux下运行,最典型的是推出xxx for Linux版或推出预装Linux的机器等)。即使像SUN和HP这样的公司,尽管它们的操作系统产品与Linux会产生利益冲突,也大力支持Linux,从而达到促进其硬件产品销售的目的。
(2)Linux的特点
Linux能得到如此大的发展,受到各方青睐,是由它的下述特点决定的:
① 免费、源代码开放。Linux是免费的,获得Linux非常方便;Linux开放源代码,使得使用者能控制源代码,安全并易于扩展。因为内核有专人管理,内核版本无变种,所以对用户应用兼容性有保证。
② 出色的稳定性和速度性能。
③ 内核模块化好。用户可以按照Linux的用途选择内核模块,达到精简内核,节省主存的目的。
④ 功能完善。Linux包含了人们期望操作系统拥有的特性,不仅仅是UNIX的,而且也吸取了其他操作系统的功能,包括多任务、多用户、页式虚存、库的动态链接、文件系统缓冲区大小的动态调整、支持非常多的文件系统。
⑤ 极具网络优势。因为Linux的开发者是通过Internet开发的,所以网络支持功能在开发早期就已加入。而且Linux对网络的支持比大部分操作系统都更出色。它能够支持Internet或其他任何使用TCP/IP或IPX协议的网络,经由以太网、ATM、调制解调器、HAM/Packet无线电(X.25协议)、ISDN或令牌环网相连接。Linux也是Internet/WWW服务器系统的理想选择。在相同硬件的条件下(即使是多处理器),它通常比Windows NT,Novell和大多数UNIX系统的性能要卓越。Linux拥有世界上最快的TCP/IP驱动程序。Linux支持几乎所有通用的网络协议,包括E-mail,UseNet News,Gopher,Telnet,Web,FTP,Talk,POP,NTP,IRC,NFS,DNS,NIS,SNMP,Kerberos,WAIS等。
⑥ 硬件支持广泛,硬件要求低。刚开始的时候,Linux主要是为低端UNIX用户而设计的,在只有4MB主存的Intel 386处理器上运行良好。同时,Linux并不只运行在Intel x86处理器上,它也能运行在Alpha,SPARC,PowerPC,MIPS等RISC处理器上。
⑦ 用户程序众多(而且大部分是免费软件),程序兼容性好。由于Linux支持POSIX标准,因此大多数UNIX用户程序也可以在Linux下运行。另外,为了使UNIX SystemⅤ和BSD上的程序能直接在Linux上运行,Linux还增加了部分System V和BSD的系统接口,使Linux成为一个完善的UNIX程序开发系统。Linux也符合X/Open标准,具有完全的X-Window实现,现有的大部分基于X-Window的程序不需要任何修改就能在Linux上运行。Linux的DOS“仿真器”DOSEMU可以运行大多数MS DOS应用程序。Windows程序也能在Linux的Windows“仿真器”的帮助下,在X-Window支持下运行。
(3)Linux的运营方式
Linux是目前三大主流操作系统之一。Linux如此大受青睐,客观上是Linux在成本、性能和可靠性等方面的优势,相对于微软公司Windows NT在性能和稳定性等方面的问题,更使Linux成为大受欢迎的替代品,而主观上是用户对微软垄断抵制和对免费软件的好感。
Linux一开始主要在一些软件高手间流行,很快地在Internet上吸引了大批的技术专家投入Linux的开发工作。它的开发者虽然大多是在业余时间进行开发,但其水平绝不是业余的。从开发模式上看,Linux采取分布式的开发模式(参加开发的人分布在世界各地,通过网络参加开发)。Linux及其应用程序的开发大多以项目(Project)为组织形式,项目的参与者都有具体的分工:开发经验丰富、有管理经验的参与者通常担当协调人,负责分派工作和协调工作进度;其他参与者有的从事程序编写,有的负责程序测试。
Linux内核虽然源代码公开,但对内核版本的确定是由专门的小组进行的。各项目小组开发出来的内核程序,经由专门的小组认可后再加入到内核的发行版本中,从而确保了内核版本的一致性。
由于Linux独特的分布式开发模式,项目管理工作使用了专门的软件。错误跟踪系统(Bug Tracking)可以替开发者处理来自电子邮件(E-mail)或其他网上资源的错误(Bug)报告,还能定义项目开发者的角色和职责,如编程人员、软件集成人员和测试人员。工作流程管理(Workflow Management)系统除了能够分配开发者的职权外,还能进行文档管理、版本控制管理及工作成本评估。项目管理(Project Management)系统能够跟踪相关的工作,提供调度、储备和优化资源的机制。由此看出,Linux开发的有序性和有效性保证了它的高度可靠性。项目小组开发出的程序经过一段时间的测试之后,就会在Internet上发布测试版和源代码,由更广泛的用户继续测试,直到程序相对稳定,才会发布程序的正式版本。正式版本的使用者如果发现错误,可以通过Internet报告,问题一般都能迅速得到解决。由于源代码公开,用户也可以自己动手解决问题。因此,Linux软件往往比商业软件错误更少,而且修改错误更为及时。
Linux通过Internet在全球范围内网罗了一大批职业的和业余的技术专家,在Internet上形成了一个数量庞大而且非常主动热心的支持者群体。它们通过网络很快地响应用户所遇到的问题。例如,当PentiumⅡ设计上的错误刚被发现时,Linux是最早提供解决方案的操作系统。
Linux早期主要依靠网上的免费技术支持,虽然这种免费技术支持通常是快速响应的,但终归无法向用户提供百分之百的保证和承诺。近年来,越来越多的商业公司开始提供对Linux的收费技术支持。这种收费技术支持更为正规、可靠、有保证,从而进一步增强了大多数Linux普通用户的使用信心,进一步改善了Linux的形象。例如,Red Hat可提供每天24小时、每周7天(简称24×7)的电话支持,这些正规的技术支持服务,对于把Linux更快地推向企业计算领域无疑是大有帮助的。商业公司的加盟还增加了Linux的应用程序,如Oracle,Informix,Sybase推出了以Linux为平台的数据库系统。商业软件公司推出的Linux应用程序弥补了Linux缺乏大型应用软件的不足,并能为Linux用户提供可靠的服务。
2.其他免费操作系统(freeBSD,Minix等)
(1)freeBSD
它是美国加利福尼亚州大学伯克利分校开发的免费支持POSIX标准的操作系统,它基于4.4BSD,改写了原来有版权保护的来源于UNIX的代码,运行于Intel x86平台,因其高效和完美而被发烧友们誉为“学院公主”。freeBSD的用户群包括公司、网络服务提供商、研究人员、计算机专家、学生及家庭用户,目前主要用于教育和娱乐领域。
(2)Minix
它是一个运行于Intel x86平台的微内核结构的教学用多用户操作系统,其特点是免费,源代码公开。它的接口界面与UNIX相同,但内部结构与代码完全不同,从内核、编译器到实用工具和库文件均不含有任何AT&T UNIX代码。Minix由荷兰阿姆斯特丹Vrije大学的知名操作系统专家Andrew S.Tanenbaum主持设计与实现。
虽然Minix的源程序代码完全公开,但它是有版权的,它不属于公有,也不同于GNU公共许可证下的软件。其版本所有者(Prentice Hall)允许任何人下载Minix用于教学或研究领域,但若要把Minix用于商业系统或其他产品中,需经Prentice Hall许可。
Minix并不是实用的操作系统。因为为其设计的应用软件大多数用于教学和实验,而由于它简单的设计思想和极小的系统内核,在教学中得到了广泛应用,它特别适合UNIX初学者了解同类操作系统的工作机理。
习题1
1.1 为什么要有操作系统?
1.2 操作系统以什么手段支持用户使用计算机,以什么手段支持用户程序运行?
1.3 操作系统是如何支持用户“方便”编程的?
1.4 早期监督程序(Monitor)的功能是什么?
1.5 什么是作业控制语言?什么是作业说明书?
1.6 试述监督程序的工作过程。
1.7 试述多道程序设计技术的基本思想。为什么采用多道程序设计技术可以提高资源利用率?
1.8 什么是分时系统?其主要特征是什么?适用于哪些应用?
1.9 什么是实时系统?它的主要特点是什么?适用于哪些应用?
1.10 引入SPOOLing技术的硬件基础是什么?
1.11 举一个现实生活当中的并发与共享的例子。
1.12 各种计算机资源应该以何种方式得到使用,请举例说明。