返璞歸真:UNIX技術內幕

8.5.1概述 9.4.1並口 9.5.1記憶體

圖書信息

出版社: 電子工業出版社; 第1版 (2010年6月1日)
平裝: 751頁
正文語種: 簡體中文
開本: 16
ISBN: 7121108712, 9787121108716
條形碼: 9787121108716
尺寸: 26.8 x 18.8 x 3.6 cm
重量: 1.7 Kg

作者簡介

郝慶豐,畢業於清華大學電機系,曾在朗訊、愛立信等知名外企從事多年的軟體開發工作,有著多個UNIX和Linux平台下大型伺服器、網關項目的開發經驗,並且參與過其中大部分項目的架構設計。結合所開發項目,作者深入研究了UNIX作業系統核心,並付諸於產品性能最佳化之類的實際套用,現在IBMCDL部門擔任高級軟體開發工程師。

內容簡介

《返璞歸真:UNIX技術內幕》詳細闡述作業系統的核心(也包括少量用戶態部分),選擇UNIX第6版的全部核心代碼及少量用戶部分代碼、總計10000行作為講解對象,由框架到細節、由基礎到高級地進行講述;在此過程中貫穿了作業系統中的各種知識和概念,比如記憶體管理、進程調度、中斷和設備管理以及檔案系統等,使得內容非常易於讀者理解。選擇UNIX作為講解對象是因為它強大的生命力和套用的廣泛性。在精妙的設計思想下,它具有小巧高效而健壯的核心、豐富的功能、易擴展的架構和良好的開放性。UNIX所定義的很多接口(比如檔案訪問接口)已經成為行業標準。《返璞歸真:UNIX技術內幕》在講解時,作者把這10000行代碼按照不同的功能模組分成不同的章節。每章一般最小以函式為單位,但在講解某個功能或接口時,又會牽涉到很多相關的函式,並其中揭示了很多優秀的設計思想、數據結構和算法。《返璞歸真:UNIX技術內幕》適用於具有豐富開發經驗的高級軟體工程師,尤其是有志於進行作業系統研究或對作業系統實現感興趣的軟體工程師,也可作為本專科院校計算機及相關專業學生學習作業系統和C語言的參考書。初級軟體開發人員在閱讀《返璞歸真:UNIX技術內幕》時可能會碰到一些困難,但如能堅持研究,它也會是你提高編程水平的一個很好的選擇。

目錄

第1章概論
1.1歷史背景
1.2UNIX誕生的經過
1.3UNIX版本6
1.4各流派一覽
1.5為什麼取得成功
1.5.1簡潔高效
1.5.2健壯性
1.5.3功能豐富
1.5.4移植性
1.5.5開放性
1.6縮寫及術語說明
第2章UNIX綜述
2.1硬體平台
2.1.1中斷和自陷(Trap)
2.1.2兩種處理器模式
2.1.3通用暫存器
2.1.4I/0設備管理
2.1.5棧(Stack)
2.1.6常用指令
2.1.7備註
2.2UNIX核心綜述
2.2.1模組分類
2.2.2各模組間的通信
2.2.3源檔案
2.2.4語法規則和編碼風格說明
2.3思考題
第3章虛擬記憶體
3.1簡介
3.2虛擬記憶體的優點
3.2.1安全性
3.2.2提高空間利用率
3.2.3多進程的支持
3.3PDP11/40的虛擬記憶體機制
3.3.1頁地址暫存器(PAR)
3.3.2頁描述暫存器(PDR)
3.3.3活動頁暫存器地址
3.3.4虛擬地址向物理地址的映射過程
3.3.5異常處理
3.3.6和現代頁式虛存的比較
3.4UNIX的虛存實現
3.4.1進程空間分布
3.4.2用戶活動頁暫存器設定函式estabur
3.4.3用戶空間映射函式sureg
3.5記憶體管理
3.5.1核心記憶體管理
3.5.2用戶記憶體管理
3.6思考題
第4章啟動模組
4.1操作流程
4.2中斷向量
4.3啟動函式start
4.4備註
4.4.1為什麼需要引導程式和裝入程式
4.4.20地址處指令分析
4.4.3為什麼要使用彙編語言
4.4.4Windows啟動過程淺析
4.5思考題
第5章進程管理和調度
5.1程式設計師眼中的虛擬機
5.2系統資源
5.3進程上下文
5.4進程調度
5.5UNIX實現
5.5.1進程上下文
5.5.2進程的兩種狀態
5.5.3調度過程
5.5.4備註
5.6思考題
第6章中斷處理過程
6.1PSW暫存器
6.2中斷處理流程
6.3中斷向量
6.4PDP/40的中斷類型
6.4.1電傳終端接口輸入中斷
6.4.2電傳終端接口輸出中斷
6.4.3紙帶打孔機輸入中斷
6.4.4紙帶打孔機輸出中斷
6.4.5時鐘中斷
6.4.6行印表機中斷
6.4.7磁碟讀寫中斷
6.5一些常用函式
6.5.1特殊指令
6.5.2fubyte(fuibyte)
6.5.3fuword(fuiword)
6.5.4subyte(suibyte)
6.5.5suword(suiword)
6.5.6c1earseg
6.5.7copyseg
6.5.8copyin/copyout
6.5.9dpadd
6.5.101div/1rem/1shift
6.6ca11函式
6.7時鐘中斷
6.7.1基本概念
6.7.2處理過程
6.8ca11函式調用分派切換器的理由
6.9核心定時器
6.9.1數據結構
6.9.2定時器的創建
6.9.3定時器的觸發
6.10一些例子
6.10.1進程優先權的調整
6.10.2進程分派切換實例
6.11備註
6.11.1中斷服務函式中為什麼不使用互斥鎖
6.11.2中斷服務函式中為什麼不訪問u變數
6.11.3關於記憶體管理違例自陷的處理過程
6.11.4調度標誌runrun和runin
6.12思考題
第7章自陷
7.1自陷原理
7.2自陷向量
7.3PDP11/40的自陷類型
7.3.1系統出錯自陷
7.3.2系統調用自陷
7.3.3調試自陷
7.3.4自陷優先權
7.4自陷處理過程
7.4.1彙編函式_trap
7.4.2C函式trap
7.4.3backup函式
第8章檔案系統
8.1概述
8.2框架
8.2.1檔案存儲的實現
8.2.2UNIX檔案系統
8.2.3UNIX檔案系統的詳細實現
8.3檔案訪問接口
8.3.1檔案創建接口creat
8.3.2檔案打開接口open
8.3.3檔案關閉接口c1ose
8.3.4檔案讀接口read
8.3.5檔案寫接口write
8.3.6檔案定位接口seek
8.3.7特殊檔案創建接口mknod
8.3.8檔案連結接口1ink
8.3.9取消檔案連結接口un1ink
8.3.10設備載入接口smount
8.3.11設備卸載接口sumount
8.4節點和塊管理
8.4.1節點快取
8.4.2塊快取
8.4.3塊訪問接口
8.4.4節點訪問接口
8.5塊設備驅動
8.5.1概述
8.5.2根設備——rk11磁碟
8.6備註
8.6.1FAT16檔案系統
8.6.2多進程訪問檔案的問題
8.6.3進程間同步
8.6.4檔案的刪除
8.6.5設備驅動的擴展
8.7總結
8.8思考題
第9章字元設備驅動
9.1互動終端——電傳打字機(te1etypewriter)
9.1.1設備特性
9.1.2操作暫存器
9.1.3驅動框架
9.1.4驅動函式
9.1.5she11套用舉例
9.1.6核心列印接口
9.2PC-11紙帶打孔機
9.2.1設備特性
9.2.2操作暫存器
9.2.3驅動框架
9.2.4驅動函式
9.2.5讀取器狀態轉換圖
9.3LP-11行印表機
9.3.1設備特性
9.3.2操作暫存器
9.3.3驅動框架
9.3.4驅動函式
9.4現代印表機
9.4.1並口
9.4.2和核心掛接
9.4.3簡單的列印程式
9.4.4CUPS
9.5其他字元設備
9.5.1記憶體
9.5.2磁碟
9.6網路驅動程式
9.7綜合示例
9.8總結
9.9思考題
第10章進程交換過程
10.1概述
10.2具體實現
10.2.1進程換出函式xswap
10.2.2程式段記憶體釋放函式xccdec
10.2.3交換函式swap
10.2.4調用實例
10.3綜合示例
10.4思考題
第11章UNIX執行檔
11.1.out檔案
11.1.1可執行頭
11.1.2程式段
11.1.3數據段
11.1.4程式和數據重定向表
11.1.5符號表
11.1.6示例
11.2動態連結過程*
11.2.1靜態共享
11.2.2動態共享
11.2.3GOT/PLT表和位置無關代碼(PIC)
11.2.4動態載入過程分析
第12章系統調用
12.1概述
12.2系統調用的實現
12.2.1用戶實現
12.2.2系統調用表和trap自陷
12.2.3核心實現
12.3各系統調用的實現
12.3.1檔案相關調用
12.3.2進程相關調用
12.3.3信號相關調用
12.3.4調試功能調用
12.3.5用戶/組ID調用
12.3.6時間相關調用
12.3.7終端相關調用
第13章進程間通信
13.1概述
13.2管道
13.2.1相關係統調用
13.2.2管道實現過程分析
13.2.3套用示例
13.2.4採用記憶體檔案實現管道
13.2.5思考題
13.3檔案
13.4有名管道
13.5進程間同步
13.5.1信號量
13.5.2互斥體
13.5.3事件
13.6死鎖
13.7其他進程間數據傳輸方式
13.7.1訊息(message)
13.7.2信箱(mai1box)
13.7.3共享記憶體
第14章多執行緒的實現
14.1概述
14.2執行緒和經典進程的比較
14.3執行緒的示例實現
14.3.1相關數據結構
14.3.2實現方案
14.3.3執行緒創建調用CreateThread
14.3.4核心改動
14.3.5執行緒退出調用ExitThread
14.3.6執行緒id獲得調用gettid
14.3.7執行緒掛起調用SuspendThread
14.3.8執行緒恢復調用ResumeThread
14.3.9執行緒終止調用TerminateThread
14.3.10執行緒ID查詢調用GetThreadID
14.3.11執行緒名查詢調用GetThreadName
14.3.12使用示例
14.3.13思考題
第15章網路多用戶
15.1系統初始化過程
15.1.1init進程
15.1.2getty程式
15.1.31ogin程式
15.2te1net程式
15.2.1工作原理
15.2.2常用配置
15.3NFS(網路檔案系統
15.3.1基本原理
15.3.2RPC(遠程過程調用
15.3.3各過程的實現
15.3.4簡單示例
附錄A參考書目及資源
附錄B思考題答案

相關詞條

熱門詞條

聯絡我們