編輯推薦
《深入理解UNIX係統內核》是UNIX領域的一部經典著作,已被翻譯為4種語言,並被世界眾多名校選定為操作係統課程的教材或參考書。書中從係統設計的角度深入剖析UNIX內核,介紹瞭一些主流的商業性和研究性的UNIX變種,對每一個核心部件,探究其結構和設計,然後講述大部分係統是如何實現這些部件的,以及各種實現方案的優缺點。
作者不僅介紹瞭UNIX內核的若乾重要組件,而且對不同UNIX版本的功能設計進行比較,探討瞭在設計上的權衡思考,還介紹已經得到廣泛應用的功能實現。本書講解巨細靡遺,實現細節展示清晰,包含瞭作者豐富的實踐經驗,非常實用。相信沒有一個UNIX愛好者會錯過本書。
內容簡介
《深入理解UNIX係統內核》由國際資深UNIX專傢撰寫,深入剖析UNIX操作係統的內核技術,包含豐富的圖示與細節展示。作者從操作係統設計的角度來審視UNIX係統內核,針對內核中的每個模塊,深入探討其結構和設計,詳細闡釋主流UNIX係統如何選擇具體模塊的實現方法,以及每種方法的優缺點,為讀者更好地理解操作係統內核知識、提升操作係統開發能力提供翔實指導。
《深入理解UNIX係統內核》共17章:第1章追溯UNIX係統的演變並分析影響係統主要變化的因素;第2~7章介紹進程子係統,包括綫程及其在內核和用戶庫中的實現,信號、作業控製及登錄會話管理,UNIX調度器和對實時應用程序的支持,進程間通信的技術(IPC),Mach係統架構,以及在現代單處理器和多處理器係統中應用的同步框架;第8~11章介紹文件係統,內容涵蓋用戶可見的文件係統接口、定義內核和文件係統交互的vnode/vfs接口,原始的System V文件係統(s5fs)和伯剋利快速文件係統(FFS)等一些具體文件係統的實現細節,還包括太陽微係統的網絡文件係統(NFS)、AT&T;的遠程文件共享(RFS)和Transarc公司的分布式文件係統(DFS)等分布式文件係統,以及一些使用日誌提供更高可靠性和性能的高級文件係統,同時介紹一種基於堆棧式vnode層的新文件係統框架;第12~15章介紹內存管理,涉及內核內存分配、虛擬內存的概念、SVR4和Solaris的虛擬內存架構、Mach和4.4BSD內存模型,以及旁路轉換緩衝和虛擬地址緩存;第16~17章主要介紹I/O子係統,內容包括設備驅動程序框架、內核與I/O子係統的交互、SVR4設備驅動程序接口、內核與驅動程序交互接口規範,以及STREAMS框架。
作者簡介
Uresh Vahalia,EMC公司副總裁,主管企業存儲部門,領導美國和印度團隊構建EMC下一代存儲産品。Uresh專注於操作係統和存儲技術的研發,在存儲和操作係統領域擁有30餘項專利和科研著作,並多次代錶EMC參加SNIA、IEEE、CIFS和NFSv4工作組的行業論壇及專傢座談。
李雨,阿裏巴巴(中國)有限公司資深內核開發工程師,參與Linux內核的開發與維護,涉及內存管理、設備驅動等多個子係統,主要負責Linux內核的網絡協議棧。他的研究興趣是Linux內核和網絡技術。
薛磊,現就職甲骨文係統研發中心,負責Solaris內核中網絡協議的開發。他是開源的擁躉,開發並維護瞭一些開源工具軟件,還負責Solaris內核中iSCSI協議、iSER協議的開發和維護。
黃慶新,畢業於廈門大學,曾是華為程序員,參與瞭標準協議棧(TCP/IP)和電信業務網關的開發。現就職於福建某網絡公司,從事底層開發工作。
精彩書評
★“本書對UNIX各類版本進行瞭剖析與對比,這絕對是第一手的完整資料。”
—— Peter Salus 《Computer Systems》雜誌主編 ★“要理解各種UNIX操作係統變種之間的差異,本書是必備讀物。”
—— Margo Seltzer,哈佛大學教授,BerkeleyDB 的作者 目錄
齣版者的話
譯者序
序言
前言
第1章 從頭說起
1.1簡介
1.1.1 UNIX簡史
1.1.2 起源
1.1.3 擴散
1.1.4 BSD
1.1.5 System V
1.1.6 商業化
1.1.7 Mach
1.1.8 標準
1.1.9 OSF和UI
1.1.10 SVR4及其之後
1.2 變革使命
1.2.1 功能
1.2.2 網絡
1.2.3 性能
1.2.4 硬件變化
1.2.5 質量提升
1.2.6 變革
1.2.7 其他應用程序領域
1.2.8 小即是美
1.2.9 靈活性
1.3 迴顧過去,展望未來
1.3.1 UNIX係統的優點是什麼
1.3.2 UNIX係統的缺點是什麼
1.4 本書內容說明
參考文獻
第2章 進程與內核
2.1 簡介
2.2 模式、空間和上下文
2.3 進程抽象
2.3.1進程狀態
2.3.2 進程上下文
2.3.3 用戶憑據
2.3.4 u區和proc結構
2.4 執行在內核態中
2.4.1 係統調用接口
2.4.2 中斷處理
2.5 同步
2.5.1 阻塞操作
2.5.2 中斷
2.5.3 多處理器
2.6 進程調度
2.7 信號
2.8 新的進程和程序
2.8.1 fork和exec
2.8.2 進程的創建
2.8.3 fork的優化
2.8.4 調用新的程序
2.8.5 進程終止
2.8.6 等待進程終止
2.8.7 僵死進程
2.9 小結
2.10 練習題
參考文獻
第3章 綫程和輕量級進程
3.1 簡介
3.1.1 動機
3.1.2 多綫程和多處理器
3.1.3 並發和並行
3.2 基本抽象
3.2.1 內核綫程
3.2.2 輕量級進程
3.2.3 用戶綫程
3.3 輕量級綫程設計時要考慮的問題
3.3.1 fork的語義
3.3.2 其他係統調用
3.3.3 信號傳遞和處理
3.3.4 可見性
3.3.5 棧增長
3.4 用戶級彆的綫程庫
3.4.1 編程接口
3.4.2 綫程庫的實現
3.5 調度器激活
3.6 Solaris和SVR4上的多綫程
3.6.1 內核綫程
3.6.2 輕量級進程的實現
3.6.3 用戶綫程
3.6.4 用戶綫程的實現
3.6.5 中斷處理
3.6.6 係統調用處理
3.7 Mach的綫程
3.7.1 Mach抽象:任務和綫程
3.7.2 Mach的C-threads
3.8 Digital UNIX
3.8.1 UNIX接口
3.8.2 係統調用和信號
3.8.3 pthreads庫
3.9 Mach 3.0的continuation
3.9.1 編程模型
3.9.2 使用continuation
3.9.3 優化
3.9.4 分析
3.10 小結
3.11 練習題
參考文獻
第4章 信號和會話管理
4.1 簡介
4.2 信號生成和處理
4.2.1 信號處理
4.2.2 信號的生成
4.2.3 典型場景
4.2.4 睡眠與信號
4.3 不可靠的信號
4.4 可靠的信號
4.4.1 主要特性
4.4.2 SVR3實現
4.4.3 BSD信號管理
4.5 SVR4上的信號
4.6 信號的實現
4.6.1 信號生成
4.6.2 交付和處理
4.7 異常
4.8 Mach的異常處理
4.8.1 異常端口
4.8.2 錯誤處理
4.8.3 調試器交互
4.8.4 分析
4.9 進程組和終端管理
4.9.1 基本概念
4.9.2 SVR3模型
4.9.3 限製
4.9.4 4.3BSD的進程組和終端
4.9.5 缺點
4.10 SVR4的會話體係結構
4.10.1 動機
4.10.2 會話和進程組
4.10.3 數據結構
4.10.4 控製終端
4.10.5 4.4BSD的會話實現機製
4.11 小結
4.12 練習題
參考文獻
第5章 進程調度
5.1 簡介
5.2 時鍾中斷處理
5.2.1 callout
5.2.2 告警
5.3 調度器目標
5.4 傳統的UNIX調度
5.4.1 進程優先級
5.4.2 調度器的實現
5.4.3 運行隊列的操作
5.4.4 分析
5.5 SVR4調度器
5.5.1 類無關層
5.5.2 調度類的接口
5.5.3 分時類
5.5.4 實時類
5.5.5 priocntl係統調用
5.5.6 分析
5.6 Solaris 2.x調度的改善
5.6.1 可搶占的內核
5.6.2 多處理器的支持
5.6.3 隱式調度
5.6.4 優先級反轉
5.6.5 優先級繼承的實現
5.6.6 優先級繼承的局限性
5.6.7 turnstile
5.6.8 分析
5.7 Mach上的調度
多處理器支持
5.8 Digital UNIX的實時調度
多處理器支持
5.9 其他調度實現
5.9.1 公平調度方法
5.9.2 最終期限驅動調度方法
5.9.3 三級調度器
5.10 小結
5.11 練習題
參考文獻
第6章 進程間通信
6.1 簡介
6.2 通用的IPC方法
6.2.1 信號
6.2.2 管道
6.2.3 SVR4管道
6.2.4 進程跟蹤
6.3 System V IPC
6.3.1 公共元素
6.3.2 信號量
6.3.3 消息隊列
6.3.4 共享內存
6.3.5 討論
6.4 Mach IPC
基本概念
6.5 消息
6.5.1 消息數據結構
6.5.2 消息傳遞接口
6.6 端口
6.6.1 端口命名空間
6.6.2 端口數據結構
6.6.3 端口轉換
6.7 消息傳遞
6.7.1 轉換端口權利
6.7.2 out-of-line內存
6.7.3 控製流
6.7.4 通知
6.8 端口操作
6.8.1 銷毀端口
6.8.2 備份端口
6.8.3 端口集閤
6.8.4 端口插補
6.9 擴展性
6.10 Mach 3.0的增強
6.10.1 一次性的發送權利
6.10.2 Mach 3.0的通知
6.10.3 發送權利的用戶引用計數
6.11 討論
6.12 小結
6.13 練習題
參考文獻
第7章 同步和多處理器
7.1 簡介
7.2 傳統UNIX內核裏的同步機製
7.2.1 中斷屏蔽
7.2.2 睡眠和喚醒
7.2.3 傳統方法的局限性
7.3 多處理器係統
7.3.1 內存模型
7.3.2 同步支持
7.3.3 軟件體係架構
7.4 多處理器的同步問題
7.4.1 喚醒丟失問題
7.4.2 驚群問題
7.5 信號量
7.5.1 信號量提供互斥操作
7.5.2 使用信號量提供事件等待
7.5.3 使用信號量來控製可計數的資源
7.5.4 信號量的缺點
7.5.5 Convoy
7.6 自鏇鎖
7.7 條件變量
7.7.1 實現問題
7.7.2 事件
7.7.3 阻塞鎖
7.8 讀寫鎖
7.8.1 設計考慮
7.8.2 實現
7.9 引用計數
7.10 其他考慮
7.10.1 死鎖避免
7.10.2 遞歸鎖
7.10.3 阻塞還是自鏇
7.10.4 鎖什麼
7.10.5 粒度和持續時間
7.11 案例研究
7.11.1 SVR4.2/MP
7.11.2 Digital UNIX
7.11.3 其他實現
7.12 小結
7.13 練習題
參考文獻
第8章 文件係統接口和框架
8.1 簡介
8.2 文件的用戶接口
8.2.1 文件和目錄
8.2.2 文件屬性
8.2.3 文件描述符
8.2.4 文件I/O
8.2.5 分散-聚集I/O
8.2.6 文件鎖機製
8.3 文件係統
8.4 特殊文件
8.4.1 符號鏈接
8.4.2 管道和FIFO
8.5文件係統框架
8.6Vnode/Vfs架構
8.6.1目標
8.6.2 從設備I/O得到的注解
8.6.3 vnode/vfs接口概覽
8.7 實現概覽
8.7.1 目標
8.7.2 Vnodes以及打開文件
8.7.3 Vnode
8.7.4 Vnode引用計數
8.7.5 Vfs對象
8.8 文件係統相關對象
8.8.1 每個文件的私有數據
8.8.2 vnodeops結構
8.8.3 vfs層中文件係統相關部分
8.9 掛載文件係統
8.9.1 虛擬文件係統轉換錶
8.9.2 mount函數實現
8.9.3 VFS_MOUNT過程
8.10 文件操作
8.10.1 路徑遍曆
8.10.2 目錄名查找緩存
8.10.3 VOP_LOOKUP操作
8.10.4 打開文件
8.10.5 文件I/O
8.10.6 文件屬性
8.10.7 用戶憑據
8.11 分析
8.11.1 SVR4係統實現的缺點
8.11.2 4.4BSD模型
8.11.3 OSF/1方法
8.12 小結
8.13 練習題
參考文獻
第9章 文件係統的實現
9.1 簡介
9.2 System V文件係統(s5fs)
9.2.1 目錄
9.2.2 inode
9.2.3 超級塊
9.3 s5fs內核組織
9.3.1 內存inode
9.3.2 inode查找
9.3.3 文件I/O
9.3.4 inode的分配和迴收
9.4 s5fs的分析
9.5 伯剋利快速文件係統(FFS)
9.6 硬盤結構
9.7 磁盤組織
9.7.1 塊和片段
9.7.2 分配策略
9.8 FFS的增強功能
9.9 分析
9.10 臨時文件係統
9.10.1 內存文件係統
9.10.2 tmpfs文件係統
9.11 特殊用途文件係統
9.11.1 specfs文件係統
9.11.2 /proc文件係統
9.11.3 處理器文件係統
9.11.4 Trans lucent文件係統
9.12 舊的緩衝區緩存
9.12.1 基本操作
9.12.2 緩衝區頭結構
9.12.3 優點
9.12.4 缺點
9.12.5 保證文件係統的一緻性
9.13 小結
9.14 練習題
參考文獻
第10章 分布式文件係統
10.1 簡介
10.2 分布式文件係統的一般特徵
10.3 網絡文件係統
10.3.1 用戶視角
10.3.2 設計目標
10.3.3 NFS的組件
10.3.4 無狀態設計
10.4 NFS協議集
10.4.1 外部數據錶示
10.4.2 遠程過程調用
10.5 NFS實現
10.5.1 控製流
10.5.2 文件句柄
10.5.3 掛載操作
10.5.4 路徑名的查找
10.6 UNIX語義
10.6.1 打開文件許可
10.6.2 已打開文件的刪除
10.6.3 讀寫操作
10.7 NFS性能
10.7.1 性能瓶頸
10.7.2 客戶端緩存
10.7.3 延遲寫
10.7.4 重傳緩存
10.8 專用NFS服務器
10.8.1 Auspex的Functional Multiprocessor 架構
10.8.2 IBM的HA-NFS服務器
10.9 NFS安全
10.9.1 NFS訪問控製
10.9.2 UID重映射
10.9.3 根用戶重映射
10.10 NFS版本
10.11 遠程文件共享
10.12 RFS架構
10.12.1 遠程消息協議
10.12.2 有狀態操作
10.13 RFS實現
10.13.1 遠程掛載
10.13.2 RFS客戶端和服務器
10.13.3 崩潰恢復
10.13.4 其他問題
10.14 客戶端緩存
10.15 Andrew文件係統
10.15.1 可伸縮架構
10.15.2 存儲和命名空間的組織
10.15.3 會話級語義
10.16 AFS實現
10.16.1 緩存與一緻性
10.16.2 路徑名查找
10.16.3 安全性
10.17 AFS的不足
10.18 DCE的分布式文件係統
10.18.1 DFS架構
10.18.2 緩存一緻性
10.18.3 令牌管理器
10.18.4 DFS的其他服務
10.18.5 分析
10.19 小結
10.20 練習題
參考文獻
第11章 高級文件係統
11.1 簡介
11.2 傳統文件係統的局限
11.3 文件係統簇(SUN-FFS)
11.4 日誌方法
11.5 日誌結構文件係統
11.6 4.4BSD日誌結構文件係統
11.7 元數據日誌
11.8 Episode文件係統
11.9 "看門狗"監視器
11.10 4.4BSD的portal文件係統
11.11 可堆疊文件係統層次
11.12 4.4BSD文件係統接口
11.13 小結
11.14 練習題
參考文獻
第12章 內核內存分配
12.1 簡介
12.2 功能需求
12.3 資源映射分配器
12.4 簡單的冪空閑鏈錶分配器
12.5 McKusick-Karels分配器
12.6 夥伴係統
12.7 SVR4的惰性夥伴算法
12.8 Mach和OSF/1的區塊分配器
12.9 一種針對多處理器係統的分層式分配器
12.10 Solaris 2.4的Slab分配器
12.11 小結
12.12 練習題
參考文獻
第13章 虛擬內存
13.1 簡介
13.2 按需分頁
13.3 對硬件的需求
13
深入理解UNIX係統內核 [UNIX Internals: The New Frontiers] 下載 mobi epub pdf txt 電子書 格式
深入理解UNIX係統內核 [UNIX Internals: The New Frontiers] 下載 mobi pdf epub txt 電子書 格式 2024
深入理解UNIX係統內核 [UNIX Internals: The New Frontiers] 下載 mobi epub pdf 電子書
評分
☆☆☆☆☆
商品一如既往的好!!值得擁有。
評分
☆☆☆☆☆
很好,學習操作係統必備
評分
☆☆☆☆☆
物流比較快 在6.1買的 好劃算
評分
☆☆☆☆☆
衝著書名買的,這本書主要講的是unix的基礎理論,沒有代碼分析。
評分
☆☆☆☆☆
經典專業書,機械社質量好。適閤計算機專業學習
評分
☆☆☆☆☆
非常好用,非常喜歡這個齣版社,非常喜歡這個係列的書
評分
☆☆☆☆☆
很好的一本書,內容實用包裝精緻
評分
☆☆☆☆☆
460多頁乾貨,詳細分析瞭UNIX內核架構實現,並分析其方案的優缺點。
評分
☆☆☆☆☆
不錯,寫的很好,很不錯!
深入理解UNIX係統內核 [UNIX Internals: The New Frontiers] mobi epub pdf txt 電子書 格式下載 2024