天天看点

linux操作系统 第01章 操作系统概述

                                                                                第1章    操作系统概述

1.1  认识操作系统

1.1.1  操作系统的概念

       计算机系统由硬件和软件两部分组成。硬件是组成一台计算机的各个部件,包括中央处理器(CPU)、内存和输入/输出设备(I/O设备)。软件包括系统软件和应用软件。软件的静态形式是存储在存储设备中的程序、数据和文档信息,其动态形式是运行于CPU和内存中的指令流。在计算机系统中,硬件与软件相互依赖:硬件提供了执行计算的能力,软件控制和使用硬件完成特定的计算任务。

  从资源的角度看,计算机系统内的所有硬件以及存储设备中的信息都被看做资源,计算机系统的用户和系统中运行的程序都是这些资源的使用者。计算机系统的资源分为四类,如图1-1所示。其中,CPU、内存和I/O设备均为硬件资源,而文件则是信息资源。

linux操作系统 第01章 操作系统概述

图1‑1  计算机系统的资源

  计算机系统是一个十分复杂的系统,包含了数量庞大、种类繁多的资源,用户很难直接操作和管理这些资源。而对资源的调度或使用方法有任何不当都会直接影响系统效能的发挥。因此,如何有效地管理和使用系统资源是计算机系统设计的一个关键问题。目前的解决方案是用软件来完成全部资源的管理工作,这个软件就是操作系统。

  操作系统(Operating System,OS)是计算机系统中最基本的软件。它直接管理和控制计算机的资源,合理地调度资源,使之得到充分的利用,并为用户使用这些资源提供一个方便的操作环境和良好的用户界面。

  从资源角度看,操作系统是管理和控制计算机资源的软件。一台没有安装操作系统的计算机称为裸机,裸机上的资源是无法被利用的。

  从用户角度看,操作系统是用户与计算机之间的接口。操作系统屏蔽了硬件的细节,扩展了硬件的能力,为用户构造出一台更便于使用的抽象的计算机。

  从系统结构上看,操作系统是在硬件之上的第一层软件。操作系统包裹了整个硬件,用户和其他软件只有通过操作系统才可以使用硬件资源,以及存储在硬件中的信息资源。在操作系统之上运行的是系统软件和应用软件。系统软件是指那些为发挥硬件和系统的功能,使其方便使用而配备的软件,如编译系统、数据库管理系统、各种通信软件等。应用软件是为解决某应用问题而设计的软件,如文字处理、财会、科学计算、多媒体、计算机辅助制造软件等。

  可以看出,操作系统在计算机系统中起着支撑应用程序运行以及用户操作环境的作用,它是计算机系统的核心与基石,而所有其他软件都要倚赖操作系统才能运行。图1-2示意了操作系统在计算机系统中的重要地位。

linux操作系统 第01章 操作系统概述

图1‑2  操作系统在计算机系统中的地位

1.1.2  操作系统的功能

  操作系统作为计算机系统的资源管理器,它的功能是管理和控制系统资源。操作系统作为系统与用户之间的接口,它要为用户提供一个良好的使用环境。这些功能可以归纳为以下5项:

  (1) 处理机管理。处理机(CPU)是计算机硬件的核心。在多任务的系统中,同时有多个程序在系统中运行,它们都要占用CPU进行计算。处理机管理的功能是在多道程序之间分配和调度CPU,协调各程序的运行,并最大限度地发挥CPU的功效。

  (2) 内存管理。内存是计算机中比较宝贵的资源。当多个程序运行时,它们都需要一定的内存空间来存放程序代码。内存管理的功能是合理地管理有限的内存空间,为多道程序分配内存,并对各程序的内存区域进行保护,防止互相干扰。内存管理的另一项功能是实现内存的扩充。

  (3) 设备管理。计算机中除CPU和内存之外的所有硬件部件都称为I/O设备。设备管理的功能是有效地管理各种设备,合理地将设备分配给要求使用的程序,并控制设备完成指定的输入/输出操作。设备管理的目标一方面是要充分发挥各个设备的效能,提高设备的利用率;另一方面是要隐蔽设备操作的具体细节,方便用户使用设备。

  (4) 文件管理。在现代计算机系统中,程序和数据都是以文件的形式存储在存储设备(磁盘、磁带等)中的。文件管理的任务是有效地组织、管理和存储文件,方便用户检索和使用文件,并对文件实施共享、保密和保护措施。

  (5) 用户接口。用户接口的功能是向用户提供一个使用系统的良好环境,使用户能方便有效地利用系统完成自己的工作。为适应各种需要,操作系统通常提供3类用户接口,即命令接口、图形接口和程序接口。前两者是供用户在终端上使用的操作界面,后者是供程序员在编制程序时使用的系统调用界面。

1.2  操作系统的发展与现状

1.2.1  操作系统的发展

  操作系统经历了从无到有、由弱到强的发展过程。了解操作系统发展史可以帮助我们发现操作系统发展背后的原因、动机和技术的来龙去脉,从而加深对操作系统本质的认识。

操作系统的发展与计算机硬件体系结构和工艺技术的发展分不开。按照计算机硬件的4个时期的划分,操作系统的发展经历了以下几个阶段。

  1. 第一代计算机(20世纪40年代中~50年代末)

  第一代计算机采用电子管器件设计,体积非常庞大,运行速度也很慢,主要用于数值计算。这个时期的机器没有操作系统,采用机器语言编写程序,完全靠手工方式来操作机器,方式有手工操作和手工批处理操作两种。

  1) 手工操作

  最初运行程序的方式是通过插板和连接线来编程,运行时将连线板插入机器中,再在控制台上用扳键设置参数,然后按下启动按钮启动机器运行直到程序停止。程序运行中,用户通过控制板的开关和状态灯来调试程序。后来出现了读卡机和纸带机,取代了连线板。用户将机器语言的程序和数据打在卡片或纸带上,再用读卡机或纸带机将程序读入机器。

  由于用户在进行手工操作期间计算机处于空闲等待状态,因此系统的效率极低。另外,手工操作的难度很大,只有专家级用户才能胜任。

  2) 手工批处理操作

  20世纪50年代初期,汇编语言和磁带机诞生,计算机操作进入手工批处理阶段。用户可以事先将一批程序录在磁带上,然后启动机器顺序地读入和执行各个程序。磁带机的传输速度高,缩短了程序加载的时间,而批处理方式又缩短了手工装卸程序的时间,这使系统效率有所提高。

  2. 第二代计算机(20世纪50年代末~60年代中)

  20世纪50年代末,计算机进入了晶体管时代,计算机的运行速度和可靠性都有了明显的提高,大型机诞生,并开始进入实际应用领域,如少数大型公司、政府部门和大学等。这个时期的计算机主要用于科学和工程计算,大多用FORTRAN语言和汇编语言编程。由于机器价格昂贵,减少处理机的空闲等待时间成为这个时期主要的研究目标。解决方案就是批处理系统和执行程序系统。

  1) 批处理系统

  批处理的含义就是把用户提交的作业(作业是指要计算机完成的一项计算任务,包括程序、数据和控制命令)编成序列,成批地录在磁带机上,由常驻内存的“监督程序”控制一批作业依次运行。这个“监督程序”就是操作系统的雏形,它标志着操作系统的诞生。

  批处理系统实现了作业间的自动转接,缩短了作业交替时主机的等待时间。但当作业进行I/O操作时,仍会造成主机大量的空闲等待时间,因而系统效率还是很低。

  2) 执行程序系统

  20世纪60年代初期,硬件技术取得突破性进展,通道和中断技术出现。通道是一种专门用作控制外部设备传输数据的硬件,中断机制允许主机在运行时被代表某种事件的信号打断。利用通道技术和中断技术,主机可以将数据传输工作交给通道,在通道控制设备传输数据的同时,主机继续执行运算,传输完毕后,通道用中断方式向主机报告,主机响应中断后执行中断处理程序处理传输结果,然后再继续运行原来的程序。这在很大程度上实现了处理机与外设的并行操作,系统效率因而大大提高。此时的I/O控制与中断处理程序统称为“执行程序”。“执行程序”就是早期的操作系统。

  3. 第三代计算机(20世纪60年代中~70年代初)

  计算机进入集成电路时代后,系统体积明显减小,系统性能进一步提高,价格逐渐降低。此时,大型机开始进入商业领域,小型机也逐渐崛起,高级语言诞生。这一时期也是操作系统的兴盛期,涌现出大量操作系统,包括多道批处理系统、分时系统和实时系统等。这些奠定了现代操作系统的基本框架。

  1) 多道批处理系统

  由于大型机造价很高,机时十分昂贵,因此充分利用系统资源,缩短作业周转时间,提高系统吞吐量就成为操作系统的一个重要设计目标。

  早期的批处理系统是单道的,即每次只调入一个用户作业运行,因此系统资源的利用率很低。而多道批处理系统同时可容纳多个作业运行,通过合理搭配作业,使CPU与I/O设备资源都得到充分的利用,从而极大地提高了系统效率。

  2) 分时系统

  随着计算机应用逐渐普及,越来越多的普通用户开始使用计算机来完成日常的工作。为了满足用户与系统交互的需要,同时又尽可能地充分利用尚且昂贵的系统资源,分时系统应运而生。分时系统允许多个用户共享一台计算机的资源,即在一台计算机上连接几台甚至几十台终端机(键盘与显示器),每个用户都通过各自的终端机直接与计算机交互,使用这台计算机的资源,直接与计算机交互。分时系统调度CPU按固定的时间片轮流为各个终端服务。由于计算机的处理速度很快,用户感觉不到分时引起的运行停顿,似乎这台计算机是自己专用的。

  3) 实时系统

  随着计算机性能和可靠性的不断提高,价格的不断降低,计算机开始进入自动控制等领域。这就要求计算机具备实时处理的能力。实时是指对于特定的输入事件,系统能够在限定的时间内作出响应并完成对该事件的处理。实时系统就是具有实时响应能力的系统,主要用于过程控制及实时信息处理。

  4. 第四代计算机(20世纪70年代初至今)

  20世纪70年代初,计算机进入大规模集成电路时代,计算机性能迅速提高,价格不断下降。尤其是20世纪80年代以来,超大规模集成电路使得计算机的体积大幅缩小,价格大幅度下降,而性能和可靠性不断增强。这些因素导致个人计算机飞速发展和普及,同时计算机网络也兴起和迅速扩大。伴随这些发展,操作系统也相应地向着个人计算、网络与分布式计算方向发展。操作系统的理论日益完善,性能更加稳定,操作更加方便。

  1) 个人操作系统

  随着计算机的普及,个人计算机(PC机)已进入到人们的日常工作和生活中。个人操作系统就是专为PC机设计的单用户操作系统,主要供个人用户完成日常工作、文件编辑和娱乐使用。早期的PC操作系统以DOS为代表,特点是单用户单任务和字符命令界面。20世纪80年代末到90年代初,显示技术的发展使显示设备的成本不断降低,PC操作系统开始提供图形用户界面。而后随着PC机的更新换代和硬件性能的大幅提升,PC操作系统又引入了多任务机制,大大提升了系统的使用效率。目前,以Windows系统为代表的PC操作系统已发展成为成熟的多任务图形窗口操作系统。

  2) 网络操作系统

  从20世纪80年代中期开始,计算机网络飞速发展,计算机不再是孤立地存在,而是通过网络相互连接,交流和共享信息资源。网络操作系统是在传统操作系统之上增加了对网络设备和网络协议的支持,实现计算机之间的通信和资源共享。网络操作系统还提供了网络管理、安全控制等各种网络应用功能。

  在网络发展的早期,网络规模较小,网络操作系统的应用局限在局域网范围,使用的协议也不尽兼容。20世纪90年代初,随着广域网和全球互联网时代的到来,网络操作系统逐步走向统一和开放。目前用于网络服务器的操作系统主要有Unix和Windows两大类,它们都采用标准的TCP/IP通信协议和标准的网络服务协议,从而消除了系统间的通信障碍,实现了全网络的信息交流与资源共享。

  纵观操作系统的发展历史,可以看到主导其发展的两条主要线索,即硬件和应用。早期操作系统的发展紧密依赖于硬件,动力在于提高昂贵的硬件资源的利用率。而随着硬件价格的下降,操作系统更加注重系统的易用性,致力于构造方便、安全和可靠的应用环境。值得注意的是,近年来操作系统的发展已逐渐走出依附于硬件发展的局面,形成自身的一套理论体系,并带动整个软件产业走向成熟。

1.2.2  操作系统的分类

  目前,操作系统的分类主要有以下几种方式。

  1. 按处理方式分

  1) 多道批处理操作系统

  多道批处理系统(Batch Processing OS)主要用于大型机系统。多道是指在内存中存在多个作业,同时处于运行状态,共享系统资源。当一个作业等待I/O操作时,CPU不是空闲等待,而是转去执行其他作业。批处理是指在系统外存中存在大量的后备作业,可随时调入内存。作业的执行完全由作业控制语言控制,系统不与用户交互。所以,有时也称批处理系统为脱机系统。

  多道批处理系统的设计目标是充分利用系统资源,缩短作业周转时间,提高系统吞吐量。其代表是IBM大型机操作系统VM、MVS和OS/390。

  2) 分时操作系统

  多道批处理系统追求的目标是充分地利用系统资源,但从用户的角度看,多道批处理系统的使用很不方便,它有以下缺点:

  (1) 用户响应时间长。从用户提交作业到拿回运行结果,可能会等待数小时甚至数天。

  (2) 用户无法干预运行中的情况。

  分时操作系统(Time Sharing OS)的做法是:由多个用户使用各自独立的终端共享一台计算机。系统把CPU的运行时间分为很短的时间片,按时间片轮转法将CPU轮流分配给各个用户作业使用。从微观上看,多个用户的程序是在交替地运行的,但由于时间片划分得很小,用户感觉不到这种交替。所以,从宏观上看,各个用户的程序是在同时运行着的。

  分时系统具有以下特点:

  (1) 多路性:多个用户同时使用一台处理机,各用户对应的作业都在同时进行着。

  (2) 独立性:多个用户作业之间互不干扰,用户感觉好像是在独立使用计算机。

  (3) 及时性:系统对用户有足够快的响应时间,用户觉察不出作业的停顿。

  (4) 交互性:用户利用终端直接与系统交互,发布命令,观察作业的运行状态和结果。

  分时系统具有强大的交互、会话与事务处理能力,因而具有很强的通用性,可用于商业、教育、办公等各种领域。分时操作系统的代表是Unix,目前广泛应用在大、中、小型计算机和工作站中。

  3) 实时操作系统

  实时操作系统(Real Time OS)是指具有一定实时资源调度以及通信能力的操作系统。“实时性”是指对特定事件的响应和处理时间是可预知的,在任何情况下都不会超出操作系统所承诺的上限。实时系统的响应时间比分时系统更短,更苛刻,往往要达到毫秒或微秒级。

  实时操作系统主要关注系统的响应性。它的交互能力比较差,不强调资源利用率,但对响应时间和可靠性的要求很高。通常应用在需要精细的过程控制能力的领域,如航空航天、军事、医疗和工业控制等。常用实时操作系统有QNX、VxWorks、实时Linux等。

  2. 按规模和用途分

  1) 主机操作系统

  主机操作系统(Mainframe OS)通常是指运行在IBM公司的大型机以及其他厂商制造的兼容主机上的操作系统。大型机与其他计算机的区别是其强大的输入/输出能力以及极高的可靠性。大型机的I/O吞吐量高达每秒数万兆字节以上,而系统的可用性可达100%。为了有效地利用硬件资源,大型机上的操作以批处理作业为主,主要用于金融和大型企业的高端数据库服务器和应用服务器。

  目前的主机操作系统有OS/390、z/OS等专用系统以及少数Unix和Linux系统。近年来,Linux系统开始进入主机系统,它所带来的自由理念和价格冲击给沉寂的大型机软件领域注入了活力。

  2) 通用操作系统

  最常用的操作系统是通用操作系统(General Purpose OS),它由分时操作系统发展而来,是分时系统与批处理系统的结合。其原则是分时优先,批处理在后,即在“前台”以分时方式响应用户的交互作业,在“后台”以批处理方式处理时间性要求不强的作业。

  通用操作系统可以运行在各种具有标准化CPU、存储和I/O架构的通用机型上,包括PC服务器、工作站、中小型机。其应用范围覆盖了大部分的工程、科学和商业应用。

  Unix、Linux、Windows等操作系统都是最常用的通用操作系统。

  3) 个人操作系统

  个人操作系统(PC OS)是运行在PC机上的一种单用户多任务的操作系统,也称为桌面操作系统。这种操作系统是为单个用户服务的,但可以同时运行多项任务。与其他操作系统相比,个人操作系统更注重的是系统的易用性,而不是系统的利用率。它采用友好的图形界面与人交互,使用方便。此外,个人操作系统还强调对多媒体和网络访问功能的支持,以满足用户日常办公、学习、娱乐和访问网络等方面的需求。

  Microsoft公司的Windows是目前最流行的PC机操作系统,在全球桌面系统中占有九成以上的市场份额。苹果公司的Mac系统因其美观的界面和出色的多媒体的质量而在图形工作站占据龙头地位。随着易用性的改进,Linux系统也正逐步进入桌面操作系统领域,但目前还远未对Windows系统构成威胁。

  3. 按体系结构分

  1) 网络操作系统

  网络操作系统(Network OS)是指运行在网络服务器上的操作系统,因此也称为服务器操作系统。网络操作系统在内核上支持网络设备驱动和网络协议,具备较强的网络通信能力,同时提供包括文件传输、远程登录、数据库访问、电子邮件、信息检索等服务,使网络用户能够方便地利用网络上的各种资源。由于运行在开放的网络环境中,开放性、并发性、安全性和可靠性都是网络操作系统的重要指标。

  网络操作系统主要有Unix、FreeBSD、Linux和Windows。Unix主要应用于高端服务器,如大型文件系统、大型数据库系统以及关键事务应用服务器等。Windows主要应用于中、低端服务器,如Web服务器。Linux的应用范围非常广泛,适用于从低到高的各种服务器。

  2) 分布式操作系统

  分布式系统由若干台计算机组成,它们通过高速局域网互连,形成一个紧密耦合的集群,在同一操作系统的控制下运行,这个操作系统就是分布式操作系统(Distributed OS)。分布式操作系统负责管理分布式系统的各个节点的资源,并控制分布式程序的运行。在分布式操作系统的控制下,各节点机协同工作,并行计算,相互可以充分共享资源,均衡负载,从而获得极高的整体运算能力。分布式系统的另一个优势是它的可靠性。机群中的一个节点失效,不会影响整个系统的运作。

  目前,分布式系统的性能和可靠性已经可以媲美一些大型机系统,而造价却低得多,因此,它已被看作是未来大型计算系统的一个发展方向。但目前的分布式操作系统还没有进入真正实用的阶段,它的研究是操作系统的一个热门领域。其中,利用Linux构造分布式系统也是目前的研究方向之一。

  3) 嵌入式操作系统

  嵌入式操作系统(Embeded OS)是运行在嵌入式系统环境中,对整个嵌入式系统的资源进行调度和控制的系统。与其他类型的操作系统相比,嵌入式操作系统具有以下特点:

  (1) 体积小:嵌入式系统大多使用闪存(Flash Memory)作为存储介质,因此,嵌入式操作系统必须结构紧凑、体积微小才能在有限空间中运行。

  (2) 可靠性高:嵌入式系统大多工作在较差的环境中,因此,嵌入式操作系统应具备处理各种事件(如断电、误操作等)的能力,在各种条件下保持正常运行。

  (3) 实时性强:大多数嵌入式操作系统都是实时系统,很多还是强实时多任务系统。

  目前流行的嵌入式操作系统包括3Com公司的Palm OS、MicroSoft公司的Win CE、WindRiver公司的VxWorks以及各种嵌入式Linux等。与其他操作系统相比,嵌入式Linux具有源码开放、内核小、效率高、可剪裁、网络功能强和成本低等特点,是开发信息家电等嵌入式系统的理想平台。

1.3  Linux操作系统概述

1.3.1  Linux操作系统的发展背景与历史

  1.  Linux的背景

  Linux的诞生和发展与Unix系统、Minix系统、Internet、GNU计划有着不可分割的关系,它们对于Linux有着深刻的影响和促进作用。

  1)  Unix系统

  1971年,Unix操作系统正式诞生于AT&T公司的Bell实验室。它是一个多用户多任务的分时操作系统。在那个年代,操作系统都是用汇编语言编写而成的,追求大而全的设计,使得系统异常庞大和复杂。而此时出现的Unix是第一个用高级语言(C语言)写成的,它的内核只有2万行代码,短小精悍,性能却非常优异,令研究者们如获至宝。更为重要的是,Unix的源代码是公开的,而且在整个20世纪70年代都是免费的,这使它很快就在大学和研究机构中流行起来,随后又被广泛移植到各种机型的硬件平台上。经过不断发展和演变,Unix的应用范围现已覆盖了大中小型计算机、工作站以及PC服务器,尤其是在中小型机以及工作站上始终占有统治地位。

  如今,Unix已具有30多年的稳定运行历史,以高可靠性、高效率著称,主要用于重要的商务运算和关键事务处理。Unix有如下主要特点:

  (1) 无可比拟的安全性与稳定性,能达到大型主机可靠性指标。

  (2) 良好的伸缩性,系统内核和核外程序均可裁剪,以适合不同规模的计算。

  (3) 强大的TCP/IP支持,对Internet的发展功不可没。

  (4) 良好的可移植性,支持广泛的硬件平台。

  (5) 源代码公开,便于研究和教学。

  Unix堪称操作系统设计的典范,它的许多优秀的设计思想和理念对后来的操作系统产生了深刻的影响,Linux就是许多类Unix系统中的一个佼佼者。由于Linux的开发者都具有各种Unix的背景,因此Linux继承了Unix的优秀设计思想,也集中了Unix的各种优点。

  2)  Minix系统

  Unix是一个商用软件,虽然它的源代码是公开的,但不是免费的。Unix高昂的源码许可证费用令普通用户无法接受。另外,Unix对硬件平台的要求也比较高,这限制了它在教学和研究领域的使用。

  1987年,荷兰教授Andrew设计了一个微型的Unix操作系统——Minix,用于操作系统的研究和教学。Minix非常小巧,可运行在廉价的微机上。它的源代码是免费的,任何一个用户都可以得到它、研究它和使用它。Linux的作者Linus就是通过研究Minix系统起步,开发了最初的Linux内核。

  3)  Internet

  20世纪80年代中期,互联网(Internet)逐渐形成,它将全球计算机网络连接在一起,使世界各地的用户能够通过Internet交流和获取信息。在互联网的早期用户中,很大一部分是软件从业者和爱好者,他们通过Internet切磋技术、协同工作、发布和获取软件代码,逐渐形成一种植根于互联网的独特的“黑客”文化。

  Linux是一个诞生于互联网时代的产物,它的开发者是遍布世界各地的无数个软件高手,是网络把他们的力量汇聚在一起,推动Linux不断地发展和壮大起来。如果没有Internet,Linux还只是个人手中的一个实验程序。

  4)  GNU

  20世纪80年代初,自由软件运动兴起。自由软件运动的目标是减少对软件使用上的限制,使软件的发展更具灵活性。自由软件提倡四大自由,即运行软件的自由、获取源代码修改软件的自由、发布(免费/少许收费)软件的自由以及发布后修改软件的自由。

  1983年,自由软件运动的领导者Richard Stallman提出GNU(GNU ’s Not Unix)计划。GNU计划致力于开发一个自由的类Unix操作系统,包括内核、系统工具和各种应用程序。GNU系统中的每一个构件都是自由软件,但不都是免费发布的(如X Window系统等)。

  为了保证GNU计划的软件能够被广泛地共享,Stallman又为GNU计划创作了通用软件许可证(General Public License,GPL)。GPL是一个针对免费发布软件的具体发布条款。对于遵照GPL许可发布的软件,用户可以免费得到软件的源代码和永久使用权,可以任意复制和修改,同时也有义务公开修改后的代码。

  到1991年,GNU已经完成了除系统内核外的几乎所有必备软件的开发,其中大部分是按GPL许可发布的。此时,Linux内核也正式发布了。Linux内核虽然不是GNU计划的一部分,但它是基于GPL许可发布的,也就是说,它被奉献给了GNU作为系统内核。自然地,各种GNU软件被组合到了Linux内核上,构成了GNU/Linux这一完整的自由操作系统。

  GPL许可与Internet网络相结合,改变了传统的以公司为主体的封闭式软件开发模式,代之以源代码开放和全球范围协作的全新开发模式。这种开发模式激发了世界各地的软件开发者的热情和创造力,推动自由软件迅速地发展和壮大。

  2.  Linux的发展历史

  1991年初,芬兰赫尔辛基大学的学生Linus Torvalds出于个人爱好,决定自己编写一个类似Minix的操作系统。他在PC机上学习和研究Minix,并参照它开发出最初的Linux内核。1991年9月,Linus通过Internet正式公布了他的第一个“作品”——Linux 0.01版。这个系统在网上一出现,立即吸引了许多软件高手投入到开发工作中。到1993年,大约有100余名程序员参与了Linux内核的编写和修改工作。在众多爱好者的帮助下,Linux的完整内核被迅速开发出来。

  1994年3月,Linux1.0内核发布。该内核具备了完整的类Unix操作系统的本质特性,不同的是,Linux是按免费自由软件的GPL许可发行的,这是促进Linux快速发展的决定性因素。更多开发者开始投入Linux内核的开发、测试和修正工作,还有许多人将GNU项目已开发出的C库、gcc、emacs、bash等移植到Linux内核上来,使之成为一个完整可用的系统。

  1996年6月,Linux 2.0内核发布。此时的Linux已经进入了实用阶段。Red Hat等许多软件公司看好Linux的前景,纷纷介入其中。他们把内核、源代码及应用程序整合在一起,又增加了一些实用工具软件和图形界面,形成各种发行版并开始广泛发行。

  1998年以来,Linux逐渐获得商业认同。很多实力雄厚的商业软硬件公司,如IBM、Intel、Sun、Novell、Oracle等纷纷宣布对Linux的投资和支持计划。这奠定了Linux作为服务器操作系统进入实际应用领域的地位。

  目前,Linux的开发和发布模式是:内核程序由核心组成员负责更新和发布,驱动程序和应用软件由众多Linux爱好者、软件供应商和系统集成商等自行开发或移植。

  近年来,Linux还在蓬勃发展中。凭借其优秀的设计和不凡的性能,加上知名企业的大力支持,市场份额逐步扩大。在短短的十几年中,Linux已从一个为满足个人爱好而设计的产物成长为一个充满竞争力和活力的主流操作系统。

1.3.2  Linux操作系统的特点

  总的说来,Linux是一个遵循POSIX标准的,多用户、多任务的自由操作系统。与其他操作系统相比,它有以下显著特点:

  (1) 基于Unix设计,性能出色。Linux继承了Unix的优秀品质,具有出色的性能、可靠性和稳定性,为系统的安全运行提供了保证。Linux系统可以胜任7 × 24小时不间断的工作,除非硬件出问题,系统出现死机的概率很小。

  (2) 遵循GPL许可,自由软件。Linux遵循GNU的GPL许可证,是自由软件家族中最重要的一员。用户可以免费地获得和使用Linux, 并且在GPL许可的范围内自由地修改和传播, 因而是学习、应用、开发操作系统及其他软件的理想平台。

  (3) 符合POSIX标准,兼容性好。POSIX是基于Unix制定的针对操作系统应用接口的国际标准,目的是为了获得不同操作系统在源代码级上的软件兼容性。Linux是一个符合POSIX标准的操作系统。这就是说,基于POSIX标准编写的应用程序(包括大多数Unix、类Unix系统的应用程序)都可以方便地移植到Linux系统上,反之亦然。

  (4) 可移植性好。可移植性是指将操作系统从一种计算机硬件平台转移到另一种计算机硬件平台后,仍能正常运行的能力。Linux的内核只有不到10%的代码采用了汇编语言,其余均采用C语言编写,因此具备高度可移植性。目前,Linux可以在包括i386、Sparc、Alpha、Mips、PowerPC等在内的各种计算机平台上运行。

  (5) 网络功能强大。Linux是在互联网上发展起来的,它有着与生俱来的强大的网络功能。其网络协议内置在内核中,性能强、兼容性好,可以轻松地与各种网络集成在一起。Linux内核外的网络应用功能也十分强大,可以运行各类网络服务。

  (6) 安全性好。Linux系统是针对多用户和网络环境设计的,在设计之初就充分考虑了安全性。Linux内核中采取了许多保障系统资源安全的措施,如文件权限控制、审计跟踪、核心授权等,使得Linux可以十分安全地运行在开放网络环境中。另外,由于源码开放,研究者众多,系统漏洞的修补和更新速度都很快,抵御病毒攻击的能力也很强。

  尽管有这些优秀的特性,Linux系统还是存在一些问题。目前的主要问题是:入门要求比较高,中文支持不够好;发行版本太多,比较混乱,亟待标准化;出自个人之手的应用软件良莠不齐,用户需仔细辨别使用;我国对自由软件版权的确认和相关法律还不成熟,所以,当用于商业目的时要特别注意版权的细节问题。

1.3.3  Linux操作系统的组成

  Linux的基本系统由3个主要部分组成:

  ● 内核:运行程序和管理基本硬件设备的核心程序。

  ●  Shell:系统的命令行用户界面,负责接收、解释和执行用户输入的命令。

  ● 文件系统:按一定的组织方式存放在磁盘上的文件集合。

  以上部分构成的Linux基本系统是系统的最小配置,它使用户可以运行程序、管理文件和使用设备。在基本系统之上,用户可以通过有选择地附加一些系统和应用软件(如图形用户界面、开发环境等)来扩展系统,使其满足不同的应用需求。图1-3描述了Linux系统的结构。

linux操作系统 第01章 操作系统概述

图1‑3  Linux系统结构示意图

1.3.4  Linux操作系统的版本

  “Linux”一词有两种不同的含义:从技术角度上讲,Linux指的是一个自由的“类Unix”操作系统的内核,由Linus带领的内核团队维护和发布。从使用角度看,Linux是指以Linux内核为基础的,包含了系统工具和各种应用的完整的“类Unix”操作系统,这种完整的Linux系统称为Linux发行(distribution)版本,由各发行商或社团组织维护和发布。

  1.  Linux的内核版本

  所有Linux系统使用的内核只有一个版本,由Linus本人带领的内核团队维护和发布。内核的版本号由三组数字表示。第一组数字是主版本号,主版本不同的内核在功能上有很大的差异。第二组数字是次版本号。如果是奇数,则表示该版为测试版,可能有潜在缺陷;如果是偶数则表示该版已经过严格测试,是稳定的版本。第三组数字是修订序列号,数字越大则表示功能越强或缺陷越少。

  2.  Linux的发行版本

  Linux的知名发行版本多达几百种,每种发行版本都以Linux内核为基础,配置的程序也大同小异,通常包括图形界面、网络服务程序、标准系统库、应用程序等。各版本之间真正的区别在于其安装、配置、附加应用、管理工具以及技术支持的不同。目前比较流行的发行版本主要有以下几种:

  1)  Red Hat和Fedora

  Red Hat公司是商业化最成功的Linux发行商,它的Red Hat Linux无论在服务器上还是桌面系统中都工作得很好。Red Hat Linux拥有数量庞大的用户和许多创新技术,并获得了很多商业的支持和社区技术支持,它的兴衰一度成为Linux成败的晴雨表。Red Hat提供了优秀的安装程序、图形配置工具以及先进的软件包管理工具RPM,在硬件与软件兼容性上也做得很好。

  2003年底,Red Hat公司停止了免费版Red Hat Linux的开发工作,将原Red Hat Linux拆分为两个系列:用于服务器的商业化版本Red Hat Enterprise Linux(RHEL)和定位于桌面用户的免费版本Fedora。RHEL由Red Hat公司提供收费的技术支持和更新,产品测试充分,稳定性好,主要用做企业服务器系统。Fedora的开发工作则是采用了由Red Hat主办、社区支持的开放源代码项目的形式进行。Fedora采用了许多Linux的最新技术,版本更新周期短。所有用到企业版的技术都要先在Fedora上试验。因此,Fedora是体验Linux前沿技术的平台。但Fedora不提供稳定性和支持保证。

  2)  Debian和Ubuntu

  Debian/GNU Linux是最纯正的自由软件Linux发行版,Debian的所有软件包都是自由软件,完全由分布在世界各地的Linux爱好者维护并发行,因而它的软件资源十分丰富。Debian非常注重稳定性,它的发行版本变化不快,但特别强调网络维护和在线升级。

  Ubuntu是一个基于Debian的较新的发行版,它拥有Debian所有的优点,并在某些方面有所加强。Ubuntu的安装非常人性化,其默认的桌面系统既简单又不失华丽。Ubuntu还被誉为对硬件支持最好、最全面的Linux发行版本之一,许多在其他发行版上无法使用的硬件,在Ubuntu上可以轻松搞定。此外,Ubuntu的版本更新周期也较Debian短。

  3) SuSE

  SuSE是来自德国的一个Linux发行版,2003年被Novell公司收购,并将其定位于构建企业级服务器平台的Linux版本。SuSE运行稳定,拥有强大的技术支持力量,目前已成为Red Hat商用Linux的最主要的竞争者。SuSE的安装程序和图形管理工具非常直观易用,即使是没有经验的用户也能在很短的时间内学会使用。

  4)  Gentoo

  Gentoo是一个基于源代码的发行版,它因其高度的可定制性出名:Gentoo的用户都选择手工编译源代码,生成专为自己定制的系统。Gentoo适合比较熟悉Linux系统的资深用户使用。此外,完整的使用手册以及广受美誉的Portage软件在线更新系统也是Gentoo的出色之处。

  5)  Slackware

  Slackware是最早的Linux发行版,它保留了原始的传统,使用基于文本的工具和配置文件,升级也不是很频繁。它的特点是稳定、可靠、简单和敏感。Slackware在老牌Linux用户中最为流行,目前仍有很多忠实的老用户。此外,Slackware拥有一套很大的程序库,其中包括开发应用程序可能需要的几乎每一个工具,是开发自由软件的理想平台。

1.3.5  Linux操作系统的应用与发展

  Linux可以说是被最广泛移植的操作系统内核,从掌上电脑iPaq到IBM大型机都可以看到Linux内核的成功应用。Linux是IBM超级计算机Blue Gene的主要操作系统,并在超级计算机操作系统领域中占有高达90%以上的份额。Linux系统在嵌入式系统领域中的占有率位居第一,应用前景十分广阔。然而,Linux系统的最主要应用是中高端服务器系统。作为高性能的网络和应用服务器,Linux已成为大中型企业信息系统的支柱,广泛应用于通信、金融、商业和军事等领域。

  由于源代码公开和免费,Linux系统已经广泛地渗入到操作系统的教学和研究领域。对于研究者来说,可以剖析系统的内核,合法地修改它和改进它,以适应研究的需要。对于普通用户来说,通过Linux可以了解操作系统的内部实现原理,并动手实践所学习的知识。

  Linux还在快速地发展中。Linux内核的发展方向主要是对新体系结构和新硬件技术的支持。分布式系统是当前操作系统研究的一个重要领域,以Linux内核为基础,按照自由软件模式开发高性能的分布式操作系统,这是Linux的发展趋势之一。另外,提供对更多硬件平台(尤其是嵌入式系统) 的支持以及更多高性能的硬件驱动程序,让新的硬件技术能很快地在Linux下工作,这是Linux技术更新的重要工作。

  Linux系统的另一个发展方向是面向个人用户的普及。Linux桌面系统正在不断地完善,用户界面更加友好,应用软件以及软件开发工具也在进一步地丰富。这些都将提高Linux系统的易用性,使其能够逐渐被普通用户所接受。

习    题

  1-1  什么是操作系统?它的基本功能是什么?

  1-2  操作系统在计算机系统中处于什么地位?

  1-3  从用户的角度看,分时系统与多道批处理系统相比有哪些优点?

  1-4  什么是GNU计划?Linux与GNU有什么关系?

  1-5  Linux系统有哪些特点?

  1-6  Linux基本系统由哪几部分组成?Linux内核的功能是什么?

  1-7  浏览www.kernel.org网站,当前最新的Linux内核的版本号是多少?

  1-8  参考附录A,自己动手安装一个Linux系统。

1、UNIX诞生    Bell Labs   Ken Thompson(Unics  汇编  1969 )  Dennis Ritchie(Unix   C)      Linus Torvalds  出生

2、Berkeley   BSD Unix  Bill Joy  Sun公司

3、1975, IBM推出了早期的PC兼容机(Intel生产的X86系列的cpu),每台IBM兼容机都捆绑一个DOS。 DOS ( 微软联合创始人Allen同学Tim Paterson) 

4、Jobs , 1983年苹果公司推出了Apple Lisa(源于Xerox原型机Alto  -GUI,鼠标),首次采用GUI的商品化计算机

5、 Bill得到了Lisa原型机,马上组织团队研发,并在1990年5月份推出Windows3.0并一炮而红