Flier's Sky

天空,蓝色的天空,眼睛看不到的东西,眼睛看得到的东西

导航

《4.4 BSD 操作系统设计与实现》

Posted on 2004-07-08 10:11  Flier Lu  阅读(4013)  评论(0编辑  收藏  举报
《4.4 BSD 操作系统设计与实现》

http://www.blogcn.com/user8/flier_lu/index.html?id=1215094&run=.0999083

    如果说有一本原文著作能够让我以读侦探小说的心情去阅读的话,那一定是这本《The Design and Implementation of the 4.4 BSD Operating System》了。由"Gods of BSD"执笔,与《Design of the UNIX Operating System》等经典著作齐名的此书,是当之无愧的BSD bible。
     以前也看过几本分析操作系统原理和实现的著作,但要么过于学术气(如机工出的几本操作系统原理书籍),要么过于拘泥于细节实现代码之上(现在如过江之鲫的XXX源码分析)。而此书则能够做到在设计理论上高屋建瓴却不脱离实际;在实现方法上娓娓道來但不拘泥于实现;时而给出一幅结构关系图,让人对设计思路一目了然。能做到如此举重若轻者,大师也。:D

     非常感谢人民邮电出版社引进了此书的英文影印版,价格公道量又足。虽是原文,但文字并不深奥难读,一段时间来每天早上读几节已成为我的一点爱好,呵呵。中国电力出版社则找浙大的学生翻译出版了中文版。不过十几个学生译者齐头并进,估计翻译质量够呛,如果不是实在没时间的话,强烈建议还是购买影印版阅读原文。阅读时可以配合 FreeBSD 源代码相互应证,作为BSD的重要发展的FreeBSD虽然改进不少,但底层实现思路还是沿用4.4BSD的,基本上没有什么障碍。
         
     
     
 4.4BSD操作系统设计与实现(英文影印版)


 
 4.4BSD操作系统设计与实现(中文版)

     希望以后还能有机会仔细重新研读此书。:P

 BSD精神的延继
     ——评《4.4BSD操作系统的设计与实现》
 

以下为引用:

 经典著作的新版  BSD精神的延继

            ——评《4.4BSD操作系统的设计与实现》

  

 清华大学网络中心   张  辉

  

 《The Design and Implementation of 4.4BSD Operating System》是介绍BSD最为知名和权威的经典著作的最新一版。该书的几位作者在BSD开发圈中被推崇为“Gods of BSD”,他们以曾在4.3/4.4BSD的开发过程中起到的重要推动作用而闻名于世,而他们在1989年撰写的该书上一版——《The Design and Implementation of 4.3BSD Operating System》几乎是全美各所大学计算机科学系操作系统课程的指定参考书,同时该书也是所有BSD爱好者案头必备的Bible。

  

 由于BSD长期以来一直在美国的大学和研究所中流行,没有像UNIX的另一风格System V那样为商业公司所把持。在国内除学术界之外的其他领域,长期以来对于BSD的了解都远不及System V广泛。因此,我们有必要回顾一下BSD的过去。

  

 自从1969年UNIX由Ken Thompson和同在贝尔实验室计算机研究小组(AT&T Bell Laboratories, Computer Research Group)的同事们一起公开发表以来,UNIX系统发展出诸多各具特色、后来又再度会聚的流派,其中占主导地位的有两大流派。一是AT&T所开发的UNIX System V,另一是加州大学伯克利分校(University of California at Berkeley,UC Berkeley)的计算机系统研究组(Computer System Research Group,CSRG)开发的伯克利软件发行版本(Berkeley Software Distribution,BSD)。

  

 同富有商业背景和气息的AT&T UNIX相比,源于美国国防部(DoD)高级研究规划署(Advanced Research Plan Agency,ARPA。ARPA也支持Internet前身ARPAnet的开发和建立)设立的科研项目,诞生于世界顶级学府(UC Berkeley)的BSD UNIX在操作系统概念和实现技术上更体现出了锐意进取和敢于创新的精神。Berkeley 是所有BSD UNIX的发源地。从1977年起,它免费发布了数千份1BSD和2BSD(PDP-11使用),以及4BSD(VAX使用)。BSD吸引并激发了Berkeley的研究机构内众多师生的极大创造热情,即使是在Berkeley以外的地方,BSD仍然牢牢地占据了UNIX在研究领域的应用。在UNIX蓬勃发展和不断进步的整个20世纪七八十年代,UNIX界内的人士无一不对BSD UNIX报以崇敬的目光,因为BSD就是创新、突破的代名词。与此同时,众多的商业公司也纷纷采用或者吸收BSD的思想和实现,以增强各自的产品。为国内早期UNIX用户熟悉的SunOS(Solaris的前一版本)就是其中的代表,而在美国,Sun的用户则主要是理论、工程学术界。今天Linux的情况与之是如此相似。

  

 然而,时光进入20世纪90年代,一方面AT&T起诉BSD造成了法律纠纷,商业公司Sun、HP等纷纷转向AT&T的Unix System V。直到1994年,不含任何AT&T Unix代码的4.4BSD-Lite发布,法律问题才完全结束,然而长达数年的法律纠纷已经给BSD带来了巨大的影响;另一方面BSD的研究背景使得BSD的发布一直是由学术机构来完成的,这赋予了BSD在技术上太多的变化,但它们却往往不兼容。虽然这是程序员们所热衷和推崇的情况,可是商业公司却并不喜欢,BSD的产业化受到了限制。结果,BSD的开发人员相继离开,而DoD也在1993年最终结束了这一研究项目。

  

 伴随最近几年GNU和Linux的兴起,很多Linux/Unix的使用者,都知道了一个名为FreeBSD的操作系统,但大部分人对BSD的了解却愈来愈少,甚至把它同FreeBSD等混为一谈。其实,FreeBSD只是CSRG在1992年终止开发之前发行的最后一个BSD版本——4.4BSD的一个著名分支。BSD的著名后继有OpenBSD、NetBSD、FreeBSD和BSDI等,这些BSD版本支持包括StrongARM、M68k、MIPS、x86、Alpha、SPARC、VAX、PA-RISC、PowerPC,直至嵌入式系统在内的几乎所有目前使用的体系结构。而众多商业版本的UNIX变体以及免费的Linux发布版本,都无一例外地吸收了BSD中丰富的新思想和新技术。

  

 学院气息浓厚的BSD为UNIX乃至Internet起到了巨大的支持和推动作用。从1977年的1BSD开始,到1992年的4.4BSD,历史上的每一个BSD版本都引入了重大的创新。让我们看看BSD的辉煌历史吧。

 1978年:2.xBSD首次引入了csh;

 1978年:3BSD,引入虚拟存储(virtual memory)的概念;

 1980年:4BSD,引入termcap、curses、vi;

 1981年:4.1BSD,引入作业控制(job control)、vfork()、自动内核配置;

 1983年:4.2BSD,率先实现TCP/IP协议栈、提供网络编程接口socket,引入UFS文件系统,支持长文件名和符号链接,改进了System V差强人意的信号处理机制(signal handling),引入进程间通信机制(Inter-process communication,IPC);

 1986-1988年:4.3BSD,引入文件系统Fat FFS,重新编写了TCP算法;

 1989年:4.3BSD,实现大部分P1003.1标准,实现了网络文件系统(NFS)、内存文件系统(memory file system ,MFS)、Kerberos。

 1992年6月:4.4BSD,引入虚拟存储系统(virtual memory system,VMS)、虚拟文件接口(virtual filesystem interface)、在UDP或者TCP上的NFS系统以及其他多种改进。

  

 BSD最杰出的贡献就是其发布了世界上第一个TCP/IP协议栈的实现,如今在各种操作系统上从事网络编程的人员所熟悉的socket接口,都来自于BSD。目前FreeBSD的用户大多是网络服务提供商ISP和网络内容提供商ICP。著名的yahoo就是由多台运行FreeBSD的PC组成的机群。而Internet上最繁忙的ftp服务器ftp.cdrom.com(目前为ftp.freesoftware.com),单台服务器支持的每天传输量都在700GB以上,也是由FreeBSD构成的。具有讽刺意味的是,属于微软的hotmail,其大部分的服务器原本也是运行FreeBSD的,微软收购hotmail后曾多次想将它们迁移到NT平台上,但均告失败。这正好折射出BSD在网络应用上功能的强大。

  

 BSD的各个后继版本稳定性好、安全性高、网络功能强的突出特色使之更成为计算机网络、安全方面应用的首选平台。而包括Linux在内的所有UNIX系统变体,也都或多或少地吸收和融入了BSD思想和技术。因此,掌握BSD内核的精髓、了解其作为操作系统具备的独到之处,以及被其他OS广泛借鉴、移植的各种设计原理和思路,都极具研究和实用价值。

  

 《The Design and Implementation of 4.4BSD Operating System》由于作者是4.3/4.4BSD开发过程中的重要组织者和开发人员,所以对BSD的理解和介绍极为深入全面,本书也继承了前一版本的特色,继续成为介绍BSD操作系统的经典。其内容丰富,覆盖了BSD内核的核心设计思想和技术亮点。这包括:系统调用、存储管理、进程管理、文件系统、I/O、进程通信、网络通信等操作系统涉及到的所有方面。书中还介绍了4.4BSD的内部结构和实现4.4BSD系统功能中所采用到的概念、数据结构和算法。同时也指出了BSD与AT&T UNIX的不同之处,并对其设计思想和背景作了精准的阐述。该书对于采用UNIX,特别是BSD中的新技术、新特点来进行的研究、开发工作极具参考价值。

  

 此外,本书的每一章都提供了若干参考文献,给读者指出了各章相关内容的更多资料,而且还附带了习题,这种教科书式的体例更适合读者学习巩固。

  

 我们完全可以相信,《The Design and Implementation of 4.4BSD Operating System》会让UNIX内核研发人员、UNIX应用研发人员、UNIX系统管理员以及UNIX的众多爱好者们受益匪浅。

  

 需要指出的是,在阅读本书以前应该具备操作系统的基础知识,比如学过操作系统课程,否则难度较大。另外,如果能够和《The Design and Implementation of UNIX Operating System》(介绍AT&T UNIX的经典)、《Advanced Programming UNIX Environment》(引用了BSD例子的UNIX编程经典)、《UNIX Network Programming》(UNIX BSD socket编程经典)配合比照起来一起阅读本书,并在阅读同时动手进行一些编程和验证工作,则效果更好。