图书前言

任何一台现代计算机系统,小至台式机、笔记本电脑甚至各种嵌入式计算机系统,大至巨型机,都离不开操作系统。

操作系统的主要功能是:

 管理和驱动硬件;

 为所有上层软件提供支持;

 方便用户使用。

随着20世纪80年代初个人计算机(personal computer,PC)的诞生和迅猛发展,PCDOS得到了极其广泛的应用,拥有了庞大的用户群。随着硬件功能和性能的急剧扩展与提高,PCDOS的版本也不断更新。进入20世纪90年代,诞生了Windows系列的各级版本直至Windows 95、Windows 98、Windows 2000以及目前的Windows XP,功能也从单用户、单任务的磁盘操作系统发展为现代的多任务网络操作系统,拥有了最广大的用户群。

20世纪70年代初,美国电报电话公司(AT&T)贝尔实验室的K.汤普逊和D.里奇开发了UNIX操作系统,特别是在里奇开发了C语言,并用C语言重写了UNIX系统后,UNIX成为第一个用高级语言编写的操作系统。由于UNIX是一个功能完整、强大而又十分短小精悍的操作系统,便于剪裁和移植,因此,在美国的大学得到了普及和应用,培养了大批应用和开发UNIX的人才。UNIX成为在各种硬件体系、各种规模(从台式机到巨型机)的计算机上应用的惟一的操作系统。特别是UNIX与Internet的诞生和发展紧密相关。绝大部分Internet设备和系统是在UNIX系统上开发的。至20世纪80年代后期和20世纪90年代初以来,UNIX成为当时的超级小型机、工程工作站(workstation)和网络服务器的主流操作系统。目前UNIX在可靠性(reliability)、可用性(availability)和可伸缩性(scalability)上仍是无可匹敌的。在大型和高端的服务器上仍是主流的操作系统。近年来,在互联网时代,一些软件开发的爱好者在Linus Benedict Torvalds率领下开发了非UNIX的UNIX类操作系统Linux,日益得到人们的喜爱和重视,成为操作系统领域的一支强大的生力军。

现代的操作系统可粗略地分为操作系统的核心和外围软件两大部分。外围软件由命令解释语言、大量的命令与实用程序、各种库函数,操作系统支持的高级语言和图形用户界面等组成。用户在使用操作系统时首先与外围软件交互和使用外围软件(大量的用户只使用操作系统的外围软件)。但是,操作系统的核心是整个软件系统的基础、核心和灵魂,是软件皇冠上最灿烂的明珠。不理解、不懂得操作系统的核心,虽然会使用操作系统,但也只是知其然而不知其所以然。所以,要能得心应手地、自由地、有创造性地使用操作系统,必须学习和理解操作系统的核心。

作者自20世纪80年代末以来主持和参加了国产操作系统的开发。因工作需要,先后分析了UNIX System V R4.0、Mach 2.5、Mach 3.0和Tru64 UNIX V5.0等的核心的源代码。并为各种层次的技术人员培训过UNIX核心,积累了丰富的经验。

本书不着眼于如何使用UNIX/Linux,不介绍如何在UNIX/Linux上编程。而是希望更深入一步,帮助读者进入UNIX/Linux的核心,理解它们、掌握它们,从而有助于更好地应用UNIX和Linux。

本书不追求全面,不是面面俱到地介绍UNIX/Linux的核心。而是追求深入性、系统性和先进性,追求有自己的特色。

作者因中国计算机软件与服务总公司(简称中软总公司)与美国Compaq公司合作开发国产操作系统COSIX 64(以Tru64 UNIX V5.0为基础)的需要,参加了Compaq公司的“Tru64 UNIX V5.0系统核心”培训。本书吸取了培训教材的一些内容。