基本信息
- 原书名:Operating Systems:Design and Implementation (Second Edition)
- 原出版社: Prentice Hall
- 作者: Andrew S.Tanenbaum Albert S.Woodhull
- 译者: 王鹏 尤晋元 朱鹏 敖青云
- 丛书名: 国外计算机科学教材系列
- 出版社:电子工业出版社
- ISBN:7505347748
- 上架时间:2004-2-1
- 出版日期:2004 年2月
- 开本:16开
- 页码:378
- 版次:1-9
- 所属分类:计算机 > 操作系统 > 操作系统理论
教材 > 计算机教材 > 本科/研究生 > 计算机专业教材 > 计算机专业课程 > 操作系统
内容简介
作译者
塔嫩鲍姆先前的研究领域包括编译器、操作系统、网络和局域分布式系统,他现在的研究主要集中在可扩展到数百万用户的广域分布式系统。对这些课题的研究使他在学报和会议上发表了70余篇论文,并出版了5部专著。
塔嫩鲍姆教授同时还主持开发了大量的软件。他是Amsterdam编译工具箱的总设计师,该工具箱被广泛地用来开发可移植的编译器,同时还用于MINIX(的开发。他和他的博士研究生及程序员们一起设计了一个基于微内核的高性能分布式操作系统——Amoeba。现在,以教学和研究为目的的用户可以从Internet上免费获得MINIX和Amoeba软件。
塔嫩鲍姆的许多博士研究生在获得学位后都取得了非常丰硕的成果,这令塔嫩鲍姆非常自豪,因为这是他诲人不倦的结果。
塔嫩鲍姆教授同时还是ACM的会员、IEEE高级会员、荷兰皇家艺术和科学院院士,他曾获得1994年ACM Karl V.Karlstrom杰出教育奖和1997年ACM/SIGCSE计算机科学教育杰出贡献奖。他被列入Internet上的who’s Who in the World名单,他在WWW上的主页地址为:httP://www.cs.vu.nl/~ast/。
阿尔伯特·伍德豪尔分别在麻省理工学院和华盛顿大学获得学士和博士学位。他进麻省理工学院本来是想成为一名电气工程师,可是后来却成了生物学家。从1973年起他开始在位于麻省Amherst的Hampshire自然科学学院工作。当微型计算机慢慢多起来的时候,作为使用电子检测仪器的生物学家,他开始使用微型计算机。他给学生开设的检测仪器方面的课程逐渐演变为计算机接口和实时程序设计。
伍德豪尔博士对教学和科学技术的发展有浓厚的兴趣,在进入研究生院之前他曾在尼日利亚教过两年中学,近年来他曾几次利用自己的假期在尼加拉瓜讲授计算机科学。
他对计算机作为电子系统,以及计算机与其他电子系统的相互配合很感兴趣。他最喜欢讲授的课程有计算机体系结构、汇编语言程序设计、操作系统和计算机通信。他还为开发电子器件及相关软件担任顾问。
在学术之外,伍德豪尔有不少兴趣,包括各种户外运动、业余无线电制作和读书。他还喜欢旅游和学习别国语言。他的Www主页就存放在一台运行MINIX的机器上,地址是:http://minixl.hampshire.edu/asw/。
目录
1.1 什么是操作系统
1.1.1 操作系统作为虚拟机
1.1.2 操作系统作为资源管理器
1.2 操作系统发展历史
1.2.1 第一代计算机(1945~1955):真空管和插板
1.2.2 第二代计算机(1955~1965):晶体管和批处理系统
1.2.3 第三代计算机(1965~1980):集成电路芯片和多道程序
1.2.4 第四代计算机(1980~现在):个人计算机
1.2.5 MINIX的历史
1.3 操作系统基本概念
1.3.1 进程
1.3.2 文件
1.3.3 命令解释器
1.4 系统调用
1.4.1 进程管理系统调用
1.4.2 信号管理系统调用
1.4.3 文件管理系统调用
1.4.4 目录管理系统调用
1.4.5 保护系统调用
译者序
操作系统是计算机系统中最核心和最底层的软件,对操作系统的深入学习关系到对整个系统运作机制的全面理解,因此一本好教材也显得愈发重要。本书的英文版出版于197年,其中涵盖了操作系统课程的所有内容,即传统上的进程管理、存储器管理、文件管理和设备管理。同时其中又包含了许多新内容,如线程、基于消息传递的系统构造模型、日志结构文件系统、安全和保护机制、RAM盘及CD—ROM设备等,而用作例子的CPU则为Intel Pentium。这使得读者一方面能够学习操作系统的经典内容,另一方面又能够了解和跟踪当前的最新技术和研究成果。
本书的另一个特点是基本原理与具体实例,即MINIX紧密结合。第2章到第5章的前半部分讲述原理,后半部分则详细地解释这些原理在MINIX的设计和实现中的应用。通过阅读这些部分能够把握MINIX源代码的组织方式,并理解那些很关键或者很难懂的代码这部分内容非常翔实,有时甚至逐行地解释附录中所列的源程序。通过对操作系统课程多年的授课经验以及相关的科研工作,我们认识到:详细地剖析一个像MINIX这样的操作系统对于掌握操作系统设计与实现的精髓是大有稗益的。
正因为上述原因,我们真切地感受到将这本书翻译、介绍给国内读者将是一件非常有意义的事,衷心希望我们付出的劳动能对国内的操作系统教学和实践有所帮助和促进。
本书的第1章、第2章和第3章由王鹏翻译,刘福岩和陆宁也参加了部分工作;第4章由朱鹏翻译;第5章由敖青云翻译。全书由尤晋元教授审校并统稿。
在整个翻译过程中,上海交通大学计算机系系统软件研究室的师生给予了许多帮助。并且在计算机系本科生的操作系统课程中进行了试用,许多学生提出了很好的建议,在此向他们表示衷心的感谢。
虽然在翻译过程中我们尽力格守“信,达,雅”的准则,但不当和疏漏之处在所难免,敬请读者提出宝贵建议。
译 者
前言
本书第一版在1987年出版时,曾引发了操作系统课程教学的一场小小的变革。在此之前多数课程都只讲理论。随着MINIX的出现9许多学校开始增加实验环节以使学生了解实际的操作系统是如何运作的。我们认为这种趋势是可取的3并希望通过本书第二版能进一年加强这种趋势。
MINIX在其出现以来的十年间发生了许多变化,最初的代码是为基于8088芯片、256K内存和两个软驱的IBM PC机型编写的,它基于UNIX版本7。随着时间的推移,MINIX在许多方面有所发展,比如当前版本可运行在众多机型上,从16位实模式的Pc机到配有大容量硬盘的奔腾机(32位保护模式),而且它不再基于UNIX版本7,而是基于国际上的POSIX标准(POSIX 1003.1和ISO 9945-1)。与此同时,有许多新特征被添加到MINIX中,在我们看来,所增加的特征可能已经太多了,但有些人则认为还不够,这最终导致了LINUX的诞生。 MINIX还被移植到许多其他平台上,包括Macintosh、Amiga、Atari和SPARC.本书只涉及M则说2.0,到目前为止,该版本只能运行于基于80x86的机器或者可模拟此类CPU的机器,或者运行于SPARC机器。
与第一版相比,第二版有许多变化,原理性部分基本都被修改过,同时增加了大量新内容。最主要的变化是新的基于POSIX的MINIX,以及对其源代码的剖析。另外,每本书都附带一张CD-ROM,它包含了全部MINIX源代码,以及在PC上安装MINIX(的说明(见CD—ROM主目录下的README.TXT文件).
在一台80x86的PC机上安装MINIX(很方便。它需要一个至少30MB的硬盘分区,然后按照CD-ROM上README.TXT文件中的步骤进行即可。在打印README.TXT文件之前,先启动MS-DOS(若运行WINDOWS,则双击MS-DOS图标),然后键入copy readme.txt prn即可。该文件也可以用edit、wodpad、notepad等任何可以处理ASCⅡ正文的编辑器进行浏览。
对于没有Pc机的学校和个人,有两种解决办法,即CD-ROM上提供的两个模拟程序。一个是由Paul Ashton为SPARC机器编写的,可作为用户程序在Solaris上运行,此时MINIX被编合成SPARC上的可执行文件。在这种模式下,MINIX不再是一个操作系统,而只是一个用户程序,所以必须对其底层做一些修改。
另一个模拟程序由Bochs软件公司的Kevin P.Lawton编写,它解释Intel 80386的指令集以及足以使M取搬运行所需的I/O指令。显然,在解释器层次上运行使性能有所下降,但这使得学生更容易进行调试。该模拟程序运行在所有支持M.I.T的x-Window的系统上,更详细的信息诸参看。CD-ROM上的有关文件。
MINIX仍在继续发展,本书和CD—ROM中的内容仅仅反映了本书出版时的情况,有关MI-NIX的最新动态请访问MINIX的主页:http://www.cs.vu.nl/~ast/minix.html。 MINIX也有自己的USENET新闻组:comp.os.minix,读者可以订阅该新闻组。对于仅有e—mdl的读者可通过以下步骤来加入MINIX的邮件用户通信组。给1istserv@listserv.nodak.edu发一封信,其中只需一行字:“subscribe minix-l<您的完整用户名>”,此后你便会通过e—mai1获得很多的信息。
讲授本课程的教师可以从Prentice Hall出版公司获得一份习题解答手册。从WWW地址httP://www.cs.W.nl/ast/沿着“Software and supplementary material”链接可以获得一些有用的PostScript文件,其中包含本书中所有的图表,可供需要时使用。
在MINIX(的开发项目中我们有幸得到了许多人的帮助。首先要感谢Kees Bot在MINIX标准化和软件发布中所做的大量工作,没有他的帮助,我们不可能完成这件工作。他自己编写了大量的代码(如POSIX终端I/O),并修正了一些数年来一直存在的错误,还整理了其他的代码。
这些年来,Bruce Evans、Philip Homburg、Will Rose和Michael Temari为MINIX的开发做了大量的工作。有几百人通过新闻组对MINIX做出了贡献,他们人数众多,所做出的贡献也各不相同,在此谨向他们一并表示感谢。
John Casey、Dale Grit、Frans Kaashoek等人阅读了本书的部分手稿并提出了宝贵建议,在此向他们表示谢意。
Vrije大学的许多学生测试了CD—ROM中MINIX的β版本,他们是:Ahmed Batou、Goran Dokic、Peter Gijzel、Thomer Gil、Dennis Grimbergen、Roderick Groesbeek、Wouter haring、Guido Kollerie、Mark Lassche、Raymond Ris、Frans ter Borg、Alex van Ballegooy、Ries van der Velden、Alexander Wels以及Thomas zeeman。我们对他们细致的工作和详尽的报告致以衷心的感谢。
阿尔伯特·S·伍德豪尔向他从前的几位学生表示感谢,特别是Hampshire学院的Peter W.Young,Nacional Autonma de Nicaragua大学的Maria Isabel Sanchez和Willam Puddy Vargas。
最后要向我们的家庭成员表示感谢。 Suzanne已是第十次在我埋头写作时给我支持,对Barbara是第九次,Marvin是第八次,甚至小Bram也是第四次了。他们的支持和爱心对我非常重要。(塔嫩鲍姆)
至于阿尔伯特的Barbara,这倒是第一次,假如没有她的支持、耐心和幽默,我们是不可能完成这一工作的;对我的儿子Gordon而言,在编写本书时,他大部分时间都不在家中,而是在大学学习,但是,他与我志趣相投,并能理解和关注我所从事的工作,这让我感到十分欣慰。(伍德豪尔)
安德鲁·S·塔嫩鲍姆
阿尔伯特·S·伍德豪尔