UNIX操作系统设计

出版时间:2012-3  出版社:机械工业出版社  作者:(美) Maurice J. Bach  译者:陈葆钰,王旭,柳纯录,冯雪山  
Tag标签:无  

内容概要

本书作者Maurice J.Bach多年来在AT&T公司贝尔实验室工作,对UNIX系统的设计思想有深刻了解,又有讲授UNIX系统的丰富经验。
本书是Linux之父Linux Torvalds曾捧读的经典著作。在本书中,作者描述了构成UNIX操作系统基础的内部算法与结构,以及它们与程序接口之间的联系。本书虽然以UNIX系统V为背景,但是介绍的算法、数据结构却并没有专门针对任何一种特定的内核,所以直到今日,本书仍然是世界上许多大学操作系统课程的必读或推荐教材。读者如果想学习UNIX,本书依然是最好的选择之一。
本书内容包括
•UNIX内核体系结构
•磁盘高速缓冲机制
•文件系统内部数据结构与算法
•控制进程上下文的系统调用与进程调度
•存储管理,包括对换和请求调页系统
•通用驱动程序接口,包括磁盘驱动程序和终端驱动程序
•进程间通信与网络,包括系统V消息、共享存储和信号量
•紧密耦合的多处理机UNIX系统和松散耦合的分布式UNIX系统

书籍目录

译者序
前言
第1章  系统概貌
1.1  历史
1.2  系统结构
1.3  用户看法
1.3.1  文件系统
1.3.2  处理环境
1.3.3  构件原语
1.4  操作系统服务
1.5  关于硬件的假设
1.5.1  中断与例外
1.5.2  处理机执行级
1.5.3  存储管理
1.6  本章小结
第2章  内核导言
2.1  UNIX操作系统的体系结构
2.2  系统概念介绍
2.2.1  文件子系统概貌
2.2.2  进程
2.3  内核数据结构
2.4  系统管理
2.5  本章小结
2.6  习题
第3章  数据缓冲区高速缓冲
3.1  缓冲头部
3.2  缓冲池的结构
3.3  缓冲区的检索
3.4  读磁盘块与写磁盘块
3.5  高速缓冲的优点与缺点
3.6  本章小结
3.7  习题
第4章  文件的内部表示
4.1  索引节点
4.1.1  定义
4.1.2  对索引节点的存取
4.1.3  释放索引节点
4.2  正规文件的结构
4.3  目录
4.4  路径名到索引节点的转换
4.5  超级块
4.6  为新文件分配索引节点
4.7  磁盘块的分配
4.8  其他文件类型
4.9  本章小结
4.10  习题
第5章  文件系统的系统调用
5.1  系统调用open
5.2  系统调用read
5.3  系统调用write
5.4  文件和记录的上锁
5.5  文件的输入/输出位置的调整—lseek
5.6  系统调用close
5.7  文件的建立
5.8  特殊文件的建立
5.9  改变目录及根
5.10  改变所有者及许可权方式
5.11  系统调用stat和fstat
5.12  管道
5.12.1  系统调用pipe
5.12.2  有名管道的打开
5.12.3  管道的读和写
5.12.4  管道的关闭
5.12.5  例
5.13  系统调用dup
5.14  文件系统的安装和拆卸
5.14.1  在文件路径名中跨越安装点
5.14.2  文件系统的拆卸
5.15  系统调用link
5.16  系统调用unlink
5.16.1  文件系统的一致性
5.16.2  竞争条件
5.17  文件系统的抽象
5.18  文件系统维护
5.19  本章小结
5.20  习题
第6章  进程结构
6.1  进程的状态和状态的转换
6.2  系统存储方案
6.2.1  区
6.2.2  页和页表
6.2.3  内核的安排
6.2.4  u区
6.3  进程的上下文
6.4  进程上下文的保存
6.4.1  中断和例外
6.4.2  系统调用的接口
6.4.3  上下文切换
6.4.4  为废弃返回(abortive return)而保存上下文
6.4.5  在系统和用户地址空间之间拷贝数据
6.5  进程地址空间的管理
6.5.1  区的上锁和解锁
6.5.2  区的分配
6.5.3  区附接到进程
6.5.4  区大小的改变
6.5.5  区的装入
6.5.6  区的释放
6.5.7  区与进程的断接
6.5.8  区的复制
6.6  睡眠
6.6.1  睡眠事件及地址
6.6.2  算法sleep和wakeup
6.7  本章小结
6.8  习题
第7章  进程控制
7.1  进程的创建
7.2  软中断信号
7.2.1  软中断信号的处理
7.2.2  进程组
7.2.3 从进程发送软中断信号
7.3  进程的终止
7.4  等待进程的终止
7.5  对其他程序的引用
7.6  进程的用户标识号
7.7  改变进程的大小
7.8  shell程序
7.9  系统自举和进程init
7.10  本章小结
7.11  习题
第8章  进程调度和时间
8.1  进程调度
8.1.1  算法
8.1.2  调度参数
8.1.3  进程调度的例子
8.1.4  进程优先权的控制
8.1.5  公平共享调度
8.1.6  实时处理
8.2  有关时间的系统调用
8.3  时钟
8.3.1  重新启动时钟
8.3.2  系统的内部定时
8.3.3  直方图分析
8.3.4  记帐和统计
8.3.5 计时
8.4  本章小结
第9章  存储管理策略
9.1  对换
9.1.1  对换空间的分配
9.1.2  进程的换出
9.1.3  进程的换入
9.2  请求调页
9.2.1  请求调页的数据结构
9.2.2  偷页进程
9.2.3  页面错
9.2.4  在简单硬件支持下的请示调页系统
9.3  对换和请示调页的混合系统
9.4  本章小结
9.5  习题
第10章  输入/输出子系统
10.1  驱动程序接口
10.1.1  系统配置
10.1.2  系统调用与驱动程序接口
10.1.3  中断处理程序
10.2  磁盘驱动程序
10.3  终端驱动程序
10.3.1  字符表clist
10.3.2  标准方式下的终端驱动程序
10.3.3  原始方式下的终端驱动程序
10.3.4  终端拧询
10.3.5  建立控制终端
10.3.6  间接终端驱动程序
10.3.7  注册到系统
10.4  流
10.4.1  流的详细的示例
10.4.2  对流的分析
10.5  本章小结
10.6  习题
第11章进程间通信
11.1  进程跟踪
11.2  系统V IPC
11.2.1  消息
11.2.2  共享存储区
11.2.3  信号量
11.2.4  总的评价
11.3  网络通信
11.4  套接字
11.5  本章小结
11.6  习题
第12章  多处理机系统
12.1  多处理机系统的问题
12.2  主从处理机解决方法
12.3  信号量解决方法
12.3.1  信号量定义
12.3.2  信号量实现
12.3.3  几个算法
12.4  Tunis系统
12.5  性能局限性
12.6  习题
第13章  分布式UNIX系统
13.1  卫星处理机系统
13.2  纽卡斯尔连接
13.3  透明型分布式文件系统
13.4  无存根进程的透明分布式模型
13.5  本章小结
13.6  习题
附录A  系统调用
参考文献
索引

图书封面

图书标签Tags

评论、评分、阅读与下载


    UNIX操作系统设计 PDF格式下载


用户评论 (总计12条)

 
 

  •     这本书很老,但是不可错过——至少现在2013年还没有过时。它向读者展示了UNIX最开始的设计和实现,今天的各种*nix,包括但不限于各种BSD,Solaris以及Linux的结构都源自这里。另外,对于学习OS设计的同学来说,了解UNIX这样一个流行了几十年的OS的最初设计,或许能够得到一些启发。
  •     要是没有上过os课的人看这个中译本估计要累死。
      翻译科技作品其实要考虑读者阅读习惯,最好是一目十行就算不能看懂,但最起码要能一眼看明白主谓宾,要能快速晓得你是要说一个什么现象,然后哪一段文字在描述其内在机理,这样才能快速获取知识,最起码能搭一个知识体系的架构。英语由于有各种从句,而且从句标识词很明确,所以逻辑很容易快速搞清,此外主动被动,插入语皆是如此。中文就不同,你如果完全按照原文翻,又不细究“的”,“了”,“过”,“被”这些词的用法(甚至应当保持一致性用法),遇上再对专有名词缺乏一致性描述,那读者就死定了,必须要想看小说一样,瞪大眼睛,一个字都不能缺失的精读才能把握其意思。楼上人说看书不浮躁固然行,但你一个专业的人员,要读多少书啊,这不是文学著作,字里行间甚至一个词都能折射作者刻画的内心涟漪,我们需要的是快速构建知识体系。甚至,你可以花时间读完了再回味,再重新实验书中原理,但绝非花时间斟酌其字面意思。
      这本书的中译,我手头的是00年4月版,就是我说的后者这般翻译。试看图6-8,什么叫第1层的保存的寄存器上下文,中文都不通,如果按高考语文改错标准看。ok,要细读不是?前页描述其为“其中每个栈中有保存的前一层寄存器上下文以及当内核在该层执行时的核心栈。”
  •     Bach的巨著,precisely 我的口味,朴实厚重务实。适合学完c,知道OS是什么的人读,也适合内核高手。
      不过不知道国内神马套路,这么好的书没个好的版本。前年开学那天去中关村图书大厦那边跑个遍,才在角落里找到仅有的两本影印版,而且那印刷的质量,。。机械工业出版社的。但是读了几张之后,就完全忘了这歪歪的字体,沉浸在它简洁直接的内容中了。
      关于中文版么,还是觉得英文功底要好点才好,看看咱的人写书的态度,还能对翻译的态度有期望么。。。即使态度有了,功底有了,但是翻译过的总是有那么点。。。不说别的,就书名design翻译成“设计”我个人就觉得不合适,传不了那神,还容易让初学者吓着。
      
      还有就是K & R的 The C Programming Language ,这两本书目前是我心目中位置最高的两本基础书了。希望有一天国内的大师也能安静下来为我们菜鸟写出一些经典来,更希望出版机构能有专业的编辑帮助有功底的大师们写出reader-friendly的书来,真缺啊。
      
      
  •     多说无益,请看实例:
      本书章节 1.5
      中译本:即使用户对操作系统有显示的没提出什么服务请求
      英文版:Even if the user makes no explicit request for operating system services
      
      书中还有不少类似的翻译,上例比较极端。
      建议还是尽量去读英文版的吧。看中文版,或许需要读者有相当的计算机知识,才有足够的辩别能力。
  •   没你说的那么不堪,很好的一本书
  •   英文版毋庸置疑,一翻译就不行了。
    第一章小结:“系统调用使得进程能做要是没有系统调用就做不成的事”,这个咋这么别扭呢?明显是赶着翻译完嘛。实在是看不下去了,去china-pub上搜了搜居然有人说1,2,3,4章翻译的不错?!
    有志于做计算机研究的人士还是加强自己的英文阅读水平吧。这个世界就是不靠谱的人做靠谱的事,简直就是悲剧阿。
  •   经典翻译后就变垃圾了。
  •   翻译得太垃圾,一班傻比
  •   感觉不是翻译的问题,是没有耐心下来读的问题。楼主说的那段话,我在04年10月第1版第7次印刷P12找到的原话是“即使用户对操作系统没有显示的提出什么服务请求”,感觉很好理解。@snail提出的那段话,感觉中文也不是很难理解。
  •   要是没有上过os课的人看这个中译本估计要累死。
    翻译科技作品其实要考虑读者阅读习惯,最好是一目十行就算不能看懂,但最起码要能一眼看明白主谓宾,要能快速晓得你是要说一个什么现象,然后哪一段文字在描述其内在机理,这样才能快速获取知识,最起码能搭一个知识体系的架构。英语由于有各种从句,而且从句标识词很明确,所以逻辑很容易快速搞清,此外主动被动,插入语皆是如此。中文就不同,你如果完全按照原文翻,又不细究“的”,“了”,“过”,“被”这些词的用法(甚至应当保持一致性用法),遇上再对专有名词缺乏一致性描述,那读者就死定了,必须要想看小说一样,瞪大眼睛,一个字都不能缺失的精读才能把握其意思。楼上人说看书不浮躁固然行,但你一个专业的人员,要读多少书啊,这不是文学著作,字里行间甚至一个词都能折射作者刻画的内心涟漪,我们需要的是快速构建知识体系。甚至,你可以花时间读完了再回味,再重新实验书中原理,但绝非花时间斟酌其字面意思。
    这本书的中译,我手头的是00年4月版,就是我说的后者这般翻译。试看图6-8,什么叫第1层的保存的寄存器上下文,中文都不通,如果按高考语文改错标准看。ok,要细读不是?前页描述其为“其中每个栈中有保存的前一层寄存器上下文以及当内核在该层执行时的核心栈。”
  •   这个的问题不是赶着翻译完,而是说法有点别扭。这书第一版中文版是1989年出的。
    1989年版里面那句话是“即使用户对操作系统没提出什么明确的服务请求”。我觉得这个和2000年版里面的都没问题,能看明白
  •   经典的东西多是作者花了毕生的时间做的自我思想体系的总结,其思考和酝酿的时间往往远长于内地一些人氏用于翻译的时间,若不是想走马观花般的了解其内容,多花些时间看看本源,我觉得这是一件有益的事情。争议多源于不同的目的,有些人只是为了能快速的了解其大概,有些则会时不时翻开细细品位句中珠玑。对于立志此行的人氏,既然术有本源为何舍本而求末呢?
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7