UNIX操作系統(tǒng)設(shè)計

出版時間:2012-3  出版社:機械工業(yè)出版社  作者:(美) Maurice J. Bach  譯者:陳葆鈺,王旭,柳純錄,馮雪山  
Tag標簽:無  

內(nèi)容概要

本書作者Maurice J.Bach多年來在AT&T公司貝爾實驗室工作,對UNIX系統(tǒng)的設(shè)計思想有深刻了解,又有講授UNIX系統(tǒng)的豐富經(jīng)驗。
本書是Linux之父Linux Torvalds曾捧讀的經(jīng)典著作。在本書中,作者描述了構(gòu)成UNIX操作系統(tǒng)基礎(chǔ)的內(nèi)部算法與結(jié)構(gòu),以及它們與程序接口之間的聯(lián)系。本書雖然以UNIX系統(tǒng)V為背景,但是介紹的算法、數(shù)據(jù)結(jié)構(gòu)卻并沒有專門針對任何一種特定的內(nèi)核,所以直到今日,本書仍然是世界上許多大學操作系統(tǒng)課程的必讀或推薦教材。讀者如果想學習UNIX,本書依然是最好的選擇之一。
本書內(nèi)容包括
?UNIX內(nèi)核體系結(jié)構(gòu)
?磁盤高速緩沖機制
?文件系統(tǒng)內(nèi)部數(shù)據(jù)結(jié)構(gòu)與算法
?控制進程上下文的系統(tǒng)調(diào)用與進程調(diào)度
?存儲管理,包括對換和請求調(diào)頁系統(tǒng)
?通用驅(qū)動程序接口,包括磁盤驅(qū)動程序和終端驅(qū)動程序
?進程間通信與網(wǎng)絡(luò),包括系統(tǒng)V消息、共享存儲和信號量
?緊密耦合的多處理機UNIX系統(tǒng)和松散耦合的分布式UNIX系統(tǒng)

書籍目錄

譯者序
前言
第1章  系統(tǒng)概貌
1.1  歷史
1.2  系統(tǒng)結(jié)構(gòu)
1.3  用戶看法
1.3.1  文件系統(tǒng)
1.3.2  處理環(huán)境
1.3.3  構(gòu)件原語
1.4  操作系統(tǒng)服務(wù)
1.5  關(guān)于硬件的假設(shè)
1.5.1  中斷與例外
1.5.2  處理機執(zhí)行級
1.5.3  存儲管理
1.6  本章小結(jié)
第2章  內(nèi)核導(dǎo)言
2.1  UNIX操作系統(tǒng)的體系結(jié)構(gòu)
2.2  系統(tǒng)概念介紹
2.2.1  文件子系統(tǒng)概貌
2.2.2  進程
2.3  內(nèi)核數(shù)據(jù)結(jié)構(gòu)
2.4  系統(tǒng)管理
2.5  本章小結(jié)
2.6  習題
第3章  數(shù)據(jù)緩沖區(qū)高速緩沖
3.1  緩沖頭部
3.2  緩沖池的結(jié)構(gòu)
3.3  緩沖區(qū)的檢索
3.4  讀磁盤塊與寫磁盤塊
3.5  高速緩沖的優(yōu)點與缺點
3.6  本章小結(jié)
3.7  習題
第4章  文件的內(nèi)部表示
4.1  索引節(jié)點
4.1.1  定義
4.1.2  對索引節(jié)點的存取
4.1.3  釋放索引節(jié)點
4.2  正規(guī)文件的結(jié)構(gòu)
4.3  目錄
4.4  路徑名到索引節(jié)點的轉(zhuǎn)換
4.5  超級塊
4.6  為新文件分配索引節(jié)點
4.7  磁盤塊的分配
4.8  其他文件類型
4.9  本章小結(jié)
4.10  習題
第5章  文件系統(tǒng)的系統(tǒng)調(diào)用
5.1  系統(tǒng)調(diào)用open
5.2  系統(tǒng)調(diào)用read
5.3  系統(tǒng)調(diào)用write
5.4  文件和記錄的上鎖
5.5  文件的輸入/輸出位置的調(diào)整—lseek
5.6  系統(tǒng)調(diào)用close
5.7  文件的建立
5.8  特殊文件的建立
5.9  改變目錄及根
5.10  改變所有者及許可權(quán)方式
5.11  系統(tǒng)調(diào)用stat和fstat
5.12  管道
5.12.1  系統(tǒng)調(diào)用pipe
5.12.2  有名管道的打開
5.12.3  管道的讀和寫
5.12.4  管道的關(guān)閉
5.12.5  例
5.13  系統(tǒng)調(diào)用dup
5.14  文件系統(tǒng)的安裝和拆卸
5.14.1  在文件路徑名中跨越安裝點
5.14.2  文件系統(tǒng)的拆卸
5.15  系統(tǒng)調(diào)用link
5.16  系統(tǒng)調(diào)用unlink
5.16.1  文件系統(tǒng)的一致性
5.16.2  競爭條件
5.17  文件系統(tǒng)的抽象
5.18  文件系統(tǒng)維護
5.19  本章小結(jié)
5.20  習題
第6章  進程結(jié)構(gòu)
6.1  進程的狀態(tài)和狀態(tài)的轉(zhuǎn)換
6.2  系統(tǒng)存儲方案
6.2.1  區(qū)
6.2.2  頁和頁表
6.2.3  內(nèi)核的安排
6.2.4  u區(qū)
6.3  進程的上下文
6.4  進程上下文的保存
6.4.1  中斷和例外
6.4.2  系統(tǒng)調(diào)用的接口
6.4.3  上下文切換
6.4.4  為廢棄返回(abortive return)而保存上下文
6.4.5  在系統(tǒng)和用戶地址空間之間拷貝數(shù)據(jù)
6.5  進程地址空間的管理
6.5.1  區(qū)的上鎖和解鎖
6.5.2  區(qū)的分配
6.5.3  區(qū)附接到進程
6.5.4  區(qū)大小的改變
6.5.5  區(qū)的裝入
6.5.6  區(qū)的釋放
6.5.7  區(qū)與進程的斷接
6.5.8  區(qū)的復(fù)制
6.6  睡眠
6.6.1  睡眠事件及地址
6.6.2  算法sleep和wakeup
6.7  本章小結(jié)
6.8  習題
第7章  進程控制
7.1  進程的創(chuàng)建
7.2  軟中斷信號
7.2.1  軟中斷信號的處理
7.2.2  進程組
7.2.3 從進程發(fā)送軟中斷信號
7.3  進程的終止
7.4  等待進程的終止
7.5  對其他程序的引用
7.6  進程的用戶標識號
7.7  改變進程的大小
7.8  shell程序
7.9  系統(tǒng)自舉和進程init
7.10  本章小結(jié)
7.11  習題
第8章  進程調(diào)度和時間
8.1  進程調(diào)度
8.1.1  算法
8.1.2  調(diào)度參數(shù)
8.1.3  進程調(diào)度的例子
8.1.4  進程優(yōu)先權(quán)的控制
8.1.5  公平共享調(diào)度
8.1.6  實時處理
8.2  有關(guān)時間的系統(tǒng)調(diào)用
8.3  時鐘
8.3.1  重新啟動時鐘
8.3.2  系統(tǒng)的內(nèi)部定時
8.3.3  直方圖分析
8.3.4  記帳和統(tǒng)計
8.3.5 計時
8.4  本章小結(jié)
第9章  存儲管理策略
9.1  對換
9.1.1  對換空間的分配
9.1.2  進程的換出
9.1.3  進程的換入
9.2  請求調(diào)頁
9.2.1  請求調(diào)頁的數(shù)據(jù)結(jié)構(gòu)
9.2.2  偷頁進程
9.2.3  頁面錯
9.2.4  在簡單硬件支持下的請示調(diào)頁系統(tǒng)
9.3  對換和請示調(diào)頁的混合系統(tǒng)
9.4  本章小結(jié)
9.5  習題
第10章  輸入/輸出子系統(tǒng)
10.1  驅(qū)動程序接口
10.1.1  系統(tǒng)配置
10.1.2  系統(tǒng)調(diào)用與驅(qū)動程序接口
10.1.3  中斷處理程序
10.2  磁盤驅(qū)動程序
10.3  終端驅(qū)動程序
10.3.1  字符表clist
10.3.2  標準方式下的終端驅(qū)動程序
10.3.3  原始方式下的終端驅(qū)動程序
10.3.4  終端擰詢
10.3.5  建立控制終端
10.3.6  間接終端驅(qū)動程序
10.3.7  注冊到系統(tǒng)
10.4  流
10.4.1  流的詳細的示例
10.4.2  對流的分析
10.5  本章小結(jié)
10.6  習題
第11章進程間通信
11.1  進程跟蹤
11.2  系統(tǒng)V IPC
11.2.1  消息
11.2.2  共享存儲區(qū)
11.2.3  信號量
11.2.4  總的評價
11.3  網(wǎng)絡(luò)通信
11.4  套接字
11.5  本章小結(jié)
11.6  習題
第12章  多處理機系統(tǒng)
12.1  多處理機系統(tǒng)的問題
12.2  主從處理機解決方法
12.3  信號量解決方法
12.3.1  信號量定義
12.3.2  信號量實現(xiàn)
12.3.3  幾個算法
12.4  Tunis系統(tǒng)
12.5  性能局限性
12.6  習題
第13章  分布式UNIX系統(tǒng)
13.1  衛(wèi)星處理機系統(tǒng)
13.2  紐卡斯爾連接
13.3  透明型分布式文件系統(tǒng)
13.4  無存根進程的透明分布式模型
13.5  本章小結(jié)
13.6  習題
附錄A  系統(tǒng)調(diào)用
參考文獻
索引

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    UNIX操作系統(tǒng)設(shè)計 PDF格式下載


用戶評論 (總計12條)

 
 

  •     這本書很老,但是不可錯過——至少現(xiàn)在2013年還沒有過時。它向讀者展示了UNIX最開始的設(shè)計和實現(xiàn),今天的各種*nix,包括但不限于各種BSD,Solaris以及Linux的結(jié)構(gòu)都源自這里。另外,對于學習OS設(shè)計的同學來說,了解UNIX這樣一個流行了幾十年的OS的最初設(shè)計,或許能夠得到一些啟發(fā)。
  •     要是沒有上過os課的人看這個中譯本估計要累死。
      翻譯科技作品其實要考慮讀者閱讀習慣,最好是一目十行就算不能看懂,但最起碼要能一眼看明白主謂賓,要能快速曉得你是要說一個什么現(xiàn)象,然后哪一段文字在描述其內(nèi)在機理,這樣才能快速獲取知識,最起碼能搭一個知識體系的架構(gòu)。英語由于有各種從句,而且從句標識詞很明確,所以邏輯很容易快速搞清,此外主動被動,插入語皆是如此。中文就不同,你如果完全按照原文翻,又不細究“的”,“了”,“過”,“被”這些詞的用法(甚至應(yīng)當保持一致性用法),遇上再對專有名詞缺乏一致性描述,那讀者就死定了,必須要想看小說一樣,瞪大眼睛,一個字都不能缺失的精讀才能把握其意思。樓上人說看書不浮躁固然行,但你一個專業(yè)的人員,要讀多少書啊,這不是文學著作,字里行間甚至一個詞都能折射作者刻畫的內(nèi)心漣漪,我們需要的是快速構(gòu)建知識體系。甚至,你可以花時間讀完了再回味,再重新實驗書中原理,但絕非花時間斟酌其字面意思。
      這本書的中譯,我手頭的是00年4月版,就是我說的后者這般翻譯。試看圖6-8,什么叫第1層的保存的寄存器上下文,中文都不通,如果按高考語文改錯標準看。ok,要細讀不是?前頁描述其為“其中每個棧中有保存的前一層寄存器上下文以及當內(nèi)核在該層執(zhí)行時的核心棧?!?/li>
  •     Bach的巨著,precisely 我的口味,樸實厚重務(wù)實。適合學完c,知道OS是什么的人讀,也適合內(nèi)核高手。
      不過不知道國內(nèi)神馬套路,這么好的書沒個好的版本。前年開學那天去中關(guān)村圖書大廈那邊跑個遍,才在角落里找到僅有的兩本影印版,而且那印刷的質(zhì)量,。。機械工業(yè)出版社的。但是讀了幾張之后,就完全忘了這歪歪的字體,沉浸在它簡潔直接的內(nèi)容中了。
      關(guān)于中文版么,還是覺得英文功底要好點才好,看看咱的人寫書的態(tài)度,還能對翻譯的態(tài)度有期望么。。。即使態(tài)度有了,功底有了,但是翻譯過的總是有那么點。。。不說別的,就書名design翻譯成“設(shè)計”我個人就覺得不合適,傳不了那神,還容易讓初學者嚇著。
      
      還有就是K & R的 The C Programming Language ,這兩本書目前是我心目中位置最高的兩本基礎(chǔ)書了。希望有一天國內(nèi)的大師也能安靜下來為我們菜鳥寫出一些經(jīng)典來,更希望出版機構(gòu)能有專業(yè)的編輯幫助有功底的大師們寫出reader-friendly的書來,真缺啊。
      
      
  •     多說無益,請看實例:
      本書章節(jié) 1.5
      中譯本:即使用戶對操作系統(tǒng)有顯示的沒提出什么服務(wù)請求
      英文版:Even if the user makes no explicit request for operating system services
      
      書中還有不少類似的翻譯,上例比較極端。
      建議還是盡量去讀英文版的吧??粗形陌?,或許需要讀者有相當?shù)挠嬎銠C知識,才有足夠的辯別能力。
  •   沒你說的那么不堪,很好的一本書
  •   英文版毋庸置疑,一翻譯就不行了。
    第一章小結(jié):“系統(tǒng)調(diào)用使得進程能做要是沒有系統(tǒng)調(diào)用就做不成的事”,這個咋這么別扭呢?明顯是趕著翻譯完嘛。實在是看不下去了,去china-pub上搜了搜居然有人說1,2,3,4章翻譯的不錯?!
    有志于做計算機研究的人士還是加強自己的英文閱讀水平吧。這個世界就是不靠譜的人做靠譜的事,簡直就是悲劇阿。
  •   經(jīng)典翻譯后就變垃圾了。
  •   翻譯得太垃圾,一班傻比
  •   感覺不是翻譯的問題,是沒有耐心下來讀的問題。樓主說的那段話,我在04年10月第1版第7次印刷P12找到的原話是“即使用戶對操作系統(tǒng)沒有顯示的提出什么服務(wù)請求”,感覺很好理解。@snail提出的那段話,感覺中文也不是很難理解。
  •   要是沒有上過os課的人看這個中譯本估計要累死。
    翻譯科技作品其實要考慮讀者閱讀習慣,最好是一目十行就算不能看懂,但最起碼要能一眼看明白主謂賓,要能快速曉得你是要說一個什么現(xiàn)象,然后哪一段文字在描述其內(nèi)在機理,這樣才能快速獲取知識,最起碼能搭一個知識體系的架構(gòu)。英語由于有各種從句,而且從句標識詞很明確,所以邏輯很容易快速搞清,此外主動被動,插入語皆是如此。中文就不同,你如果完全按照原文翻,又不細究“的”,“了”,“過”,“被”這些詞的用法(甚至應(yīng)當保持一致性用法),遇上再對專有名詞缺乏一致性描述,那讀者就死定了,必須要想看小說一樣,瞪大眼睛,一個字都不能缺失的精讀才能把握其意思。樓上人說看書不浮躁固然行,但你一個專業(yè)的人員,要讀多少書啊,這不是文學著作,字里行間甚至一個詞都能折射作者刻畫的內(nèi)心漣漪,我們需要的是快速構(gòu)建知識體系。甚至,你可以花時間讀完了再回味,再重新實驗書中原理,但絕非花時間斟酌其字面意思。
    這本書的中譯,我手頭的是00年4月版,就是我說的后者這般翻譯。試看圖6-8,什么叫第1層的保存的寄存器上下文,中文都不通,如果按高考語文改錯標準看。ok,要細讀不是?前頁描述其為“其中每個棧中有保存的前一層寄存器上下文以及當內(nèi)核在該層執(zhí)行時的核心棧?!?/li>
  •   這個的問題不是趕著翻譯完,而是說法有點別扭。這書第一版中文版是1989年出的。
    1989年版里面那句話是“即使用戶對操作系統(tǒng)沒提出什么明確的服務(wù)請求”。我覺得這個和2000年版里面的都沒問題,能看明白
  •   經(jīng)典的東西多是作者花了畢生的時間做的自我思想體系的總結(jié),其思考和醞釀的時間往往遠長于內(nèi)地一些人氏用于翻譯的時間,若不是想走馬觀花般的了解其內(nèi)容,多花些時間看看本源,我覺得這是一件有益的事情。爭議多源于不同的目的,有些人只是為了能快速的了解其大概,有些則會時不時翻開細細品位句中珠璣。對于立志此行的人氏,既然術(shù)有本源為何舍本而求末呢?
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7