Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1937132
  • 博文数量: 77
  • 博客积分: 2175
  • 博客等级: 大尉
  • 技术积分: 2491
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-20 20:49
个人简介

欢迎光临我的博客

文章分类

全部博文(77)

文章存档

2023年(1)

2018年(4)

2017年(1)

2016年(2)

2015年(2)

2013年(5)

2012年(29)

2010年(33)

分类: 系统运维

2010-06-20 14:52:29


自计算机诞生以来,产生了数以百计的操作系统,但这其中,无疑以UNIX最具有生命力,流派也最广。虽然在个人电脑上,Windows占据了绝大多数用户,但在服务器领域,UNIX依然是一枝独秀。Linux作为UNIX一个杰出的分支,已异军突起,不仅在服务器行业占有重要地位,而且在个人电脑上也越来越多地看到它的身影。

为什么UNIX具有如此强大的生命力?原因就在于它精妙的设计思想、小巧高效而又健壮的内核、丰富的功能、易扩展的架构和良好的开放性。UNIX所定义的很多接口(比如文件访问)已经成为行业标准,而它的分支也十分众多,如UnixwareAIXSolarisBSD UNIX等。

UNIX最早由贝尔实验室(Bell Labs)的Ken Thompson (肯汤姆森)和 Dennis Ritchie(丹尼斯里奇)开发,在此过程中,他们还发明了C语言。在1972年他们推出了UNIX版本6UNIX 6 Edition),这也是本书所要讲述的版本。

事实上,AIX、Solaris以及HP-UX所提供的很多shell命令在UNIX第6版就已经实现,。
   另外,一个明显的事实是,UNIX第6版已包含管道的实现,并在shell中提供对管道操作符"|"的支持,管道操作符"|"可以把多个命令连接起来实现更加灵活复杂的功能的。
   管道,这来自于UNIX的奠基人之一---Doug McIlroy的发明,是操作系统概念中最闪亮的部分之一,它把复杂功能分解成多个简单的单个程序实现,而给它们之间定义一个标准的输入输出接口---文本流。
  这样,程序员可以集中精力实现每个单个程序,而使用管道来连接这些单个程序实现更复杂的功能。
  此外,后台执行符"&"和连接执行符";"在UNIX第六版已经支持。
  在系统调用上,你可以看到几乎UNIX第6版的全部系统调用现在依然在使用,比如open, read, write, close, fork,execl, kill, signal。
  至于文件系统缓存的算法,更是一直在使用,它对文件系统乃至整个系统性能的提高是不言而喻的。

本书内容

本书节选了UNIX版本6的全部内核代码及少量用户部分代码,总计在10000行左右。之所以选择它是因为这是贝尔实验室所开放的最后一版UNIX,而且相对于前几版,它更贴近于现代操作系统,几乎具备了现代操作系统的所有概念:如中断和自陷管理、进程调度、内存管理、文件系统、I/O设备管理等。而且,很多现在的常用命令当时也已实现,比如mkdirlscd、ps、kill、execfindgrepcron等。另外,本版90%代码都使用C语言编写,代码量也不大,这就使得阅读更加方便,适合讲解。

作者在讲述代码时,不仅尽量忠于和体现原来的设计思想,而且对于某些可能不太完美的实现部分还相应指出并给出改进的意见。此外,对于UNIX版本6不具备的某些功能,比如进程间互斥、消息通信和线程功能,作者还在第13章和第14章给出了简单的示例实现。另外,作者在列举源代码时,都在之前指明其所在文件,个别地方未指明的,在最近一次所指明的文件中。

本书读者

本书适用于有志于操作系统研究或对操作系统实现感兴趣的软件工程师,也可作为本专科院校计算机及相关专业学生学习操作系统和C语言的参考书。而对于其他软件人员,本书也将是你提高编程水平的一个很好的选择,书中揭示了很多优秀的设计思想、数据结构和算法,相信它们能给你以不少启示,在此过程中你还能看到C语言所展示出的精练高效的强大魅力!书中的很多代码后来也成为C程序标本式的实现和风格。

本书光盘

本书附有光盘,光盘不仅包含书中所列代码(包括作者自己实现的部分),还包含其他很多代码,比如init进程、shell进程等的实现。此外,还包括shell所支持的各个命令的实现代码,甚至还包含了当时所用的编译器。

读者可以直接阅读本书,也可以打开光盘中的代码,对照本书阅读。另外,在阅读时,有些章节如果联系起来看效果会更好,比如第4章和第5章、第6章和第9章。

版权声明

13章和第14章中作者所实现部分的代码,由于环境限制,并未经过实际测试,对它们所造成任何可能的损坏性后果,作者在此声明并不对此负责,敬请谅解。另外,该部分代码只限于个人学习研究使用,作者保留对该部分代码的一切发布、发行、使用、修改及拷贝的权利,如有任何个人或组织要将其用于商业目的,请和作者联系并支付相应费用。

致谢

感谢网络搜索引擎,感谢很多网站,特别是 documents.html,它提供了PDP 11系列芯片的丰富文档,以及 UnixTree/V6/,它提供了UNIX V6完整的源代码。

联系方式

由于作者水平所限,书中难免存在不当甚至错误之处,敬请批评指正。同时,非常欢迎读者提问、评论、批评和建议,你可以通过qf.hao@hotmail.com和我联系。


IBM高级软件开发工程师 郝庆丰

20098月于北京



上一篇   序                       目录                      下一篇   概论  


本书在全国各大书店及网城均有销售:
                         
                       


阅读(10686) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

mayerlbp2010-07-05 15:59:43

没想到大牛每天上班就坐在我身后 :)

mayerlbp2010-07-05 15:57:30

ding ~~