深入理解UNIX係統內核 [UNIX Internals: The New Frontiers]

深入理解UNIX係統內核 [UNIX Internals: The New Frontiers] pdf epub mobi txt 电子书 下载 2025

[美] Uresh Vahalia 著,李雨,薛磊,黃慶新 譯
圖書標籤:
  • UNIX
  • 內核
  • 係統編程
  • 操作係統
  • C語言
  • 源碼分析
  • 計算機科學
  • 技術
  • 深入理解
  • 經典書籍
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111491453
版次:1
商品编码:11693886
品牌:机工出版
包装:平装
丛书名: 计算机科学丛书
外文名称:UNIX Internals: The New Frontiers
开本:16开
出版时间:2015-05-01
用纸:胶版纸
页数:484

具体描述

編輯推薦

  《深入理解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.4 4.3BSD-案例研究
13.5 4.3 BSD 內存管理操作
13.6 分析
13.7 練習題
參考文獻
第14章 SVR4 VM架構
14.1 簡介
14.2 內存映射文件
14.3 VM的設計理念
14.4 基礎抽象
14.5 段驅動程序
14.6 交換層
14.7 VM操作
14.8 與vnode子係統的交互
14.9 Solaris的虛擬交換空間
14.10 分析
14.11 性能改進
14.12 小結
14.13 練習題
參考文獻
第15章 其他內存管理技術
15.1 簡介
15.2 Mach的內存管理設計
15.3 內存共享機製
15.4 內存對象與Pager
15.5 外部pager和內部pager
15.6 頁麵替換
15.7 分析
15.8 4.4BSD的內存管理
15.9 旁路轉換緩衝區的一緻性
15.10 Mach中的TLB擊落算法
15.11 SVR4和SVR4.2 UNIX中的TLB一緻性
15.12 其他TLB一緻性算法
15.13 虛擬地址緩存
15.14 練習題
參考文獻
第16章 設備驅動和I/O
16.1 簡介
16.2 概述
16.3 設備驅動程序框架
16.4 輸入輸齣(I/O)子係統
16.5 poll係統調用
16.6 塊設備I/O操作
16.7 DDI/DKI規範
16.8 更新的SVR4發行版
16.9 未來方嚮
16.10 小結
16.11 練習題
參考文獻
第17章 STREAMS
17.1 動機
17.2 概述
17.3 消息和隊列
17.4 流I/O
17.5 配置和設置
17.6 STREAMS的ioctl命令
17.7 內存分配
17.8 多路復用
17.9 FiFO和管道
17.10 網絡接口
17.11 小結
17.12 練習題
參考文獻













精彩書摘

  《深入理解UNIX係統內核》:
  像內存和終端一樣,CPU也是一種共享的資源,由係統上的進程競爭使用。操作係統必須決定怎麼在所有的進程中分攤CPU資源。調度器(scheduler)屬於操作係統的一部分,它決定著在任意給定時刻應該運行哪一個進程,應該讓這個進程運行多久。UNIX基本上是一個分時(time—sharing)係統,也就是說,它允許多個進程並發地運行。從某種程度上講,這是一個假象(至少在單處理器上是這樣的),因為一個單獨的處理器在任意給定的時刻隻能運行一個進程。UNIX係統通過分時方法交替運行進程來模擬並發。調度器給予每個進程一段時間的CPU,然後再切換到另外一個進程上去。這段時間稱為時間配額(timequantum)或時間片(timeslice)。
  UNIX調度器必須關注兩個方麵:首先是策略(policy),即決定運行哪個進程和決定何時切換到另一個進程的規則。其次是實現(implementation),實現這些策略的數據結構和算法。調度策略必須滿足幾個目標:保證對交互式應用程序的快速響應時間,保證對後颱作業的高吞吐量,避免進程餓死等等。這些目標常常彼此衝突,調度器必須盡可能地平衡這些目標。它也必須以最小代價來有效地實現它的策略。
  在最底層,調度器安排處理器從一個進程切換到另外一個進程。這稱為一個上下文切換(contextswitch)。內核將當前進程的硬件執行上下文保存在它的進程控製塊(processblockblock,PCB)裏,傳統的PCB是這個進程u區的一部分。上下文是指進程的通用寄存器、內存管理寄存器和其他特殊寄存器的值的一個快照。接著,內核會加載下一個將要運行的進程的上下文內容到硬件寄存器中。(上下文可以從這個進程的PCB中獲取。)這會使CPU從之前保存的上下文中開始執行下一個進程。調度器的主要職責是決定何時執行上下文切換和運行哪個進程。
  ……

前言/序言

  UNIX Internals: The New Frontiers
  從20世紀70年代早期開始,UNIX係統經曆瞭相當大的變化。它從一個小的、實驗室性質的由貝爾實驗室幾乎免費分發的操作係統開始,逐漸成長,直到當前擁有著一群不斷增長的忠實的擁護者。多年來,它從眾多的學術界和行業成員中吸收瞭很多貢獻,忍受著在其所有權以及標準化上的爭執,並且進化為穩定的、成熟的操作係統。現在,有許多商業的和研究用的UNIX變種係統,每種變種係統雖然都不同,但是又足夠相似,可以作為UNIX係統傢族中的一種。UNIX程序員對一種UNIX變種的使用經驗可以用在很多硬件平颱以及其他UNIX變種上。
  很多圖書已經介紹過UNIX係統的不同特性,但是大多數都隻是介紹諸如命令行或編程接口這些用戶可見的方麵,很少能介紹UNIX係統的內部實現。UNIX係統的內部實現主要是指其核心組成的部分,也就是UNIX內核研究。迄今為止,每本UNIX係統內部實現書籍隻針對某一種UNIX的發行版本。比如,Bach的《The Design of the UNIX Operating System》[Bach 86]是介紹System V Release 2(SVR2)版本內核的標誌性書籍。Leffler等著的《The Design and Implementation of 4.3BSD UNIX Operating System》[Leff 88]由一些主要的操作係統設計者來詳盡介紹4.3BSD版本內核。Goodheart和Cox的《The Magic Garden Explained》著作詳細介紹瞭System V Release 4.0(SVR4)版本的內核。
  設計視角
  本書從係統設計角度來審視UNIX內核。介紹瞭一些主流的商業性和研究性的UNIX變種。針對內核中的每個模塊,本書探索其結構和設計,解釋主流UNIX係統如何選擇具體模塊的實現方法,以及每種方法的優缺點。通過這樣的對比使本書有著獨特的視角,並允許讀者從批判性的角度來檢查係統的設計。在研究一個操作係統時,關注其優缺點是很重要的一部分。本書將通過分析一些可選的方法來介紹每種係統的優缺點。
  UNIX變種
  雖然本書最關注SVR4.2的內核實現,但是也詳細探索瞭4.4BSD、Solaris 2.x、Mach以及Digital Unix係統。而且本書介紹瞭一些其他變種的有趣特性,這主要包括一些沒有進入商業發行版的研究性變種。本書分析瞭從20世紀80年代中期到90年代中期UNIX係統的主要發展。為瞭完整性,本書同時包含瞭對傳統UNIX功能和實現的簡要介紹。在必要時,本書還提供瞭一個發展記錄,以傳統方案為起始,分析其缺點和局限並介紹現代的解決方案。
  閱讀對象
  本書適閤作為大學教材或作為專業參考書。作為大學教材,本書適用於高年級本科生或研究生操作係統課程。本書並非一本介紹性書籍,而且不會說明諸如內核、綫程以及虛擬內存這樣的概念性知識。每章都包含一係列精心設計的練習題,用於進一步地思考和研究係統設計。許多練習題都是開放性的,並且需要學生進行一些額外的閱讀研究。每章也有一個詳盡的參考文獻清單,通過該清單可以進一步閱讀有關內容。
  本書也可用作操作係統開發人員、應用程序開發人員以及係統管理員的專業參考書籍。操作係統設計者和架構師可以研究相近係統的內核結構、評估不同設計的優缺點以及使用本書中的一些想法來開發下一代操作係統。應用程序開發人員可以使用操作係統內核的知識,更好地利用其特徵來開發更加高效的程序。係統管理員可以在理解不同參數和使用模式對係統行為的影響之後,更加有效地配置和調整係統。
  組織結構
  第1章追溯瞭UNIX係統的演變並分析瞭影響係統主要變化的因素。第2章到第7章介紹瞭進程子係統。其中第2章介紹在傳統UNIX係統中(SVR3、4.3BSD和早期變種)的進程和內核架構。第3章到第7章介紹現代係統(SVR4、4.4BSD、Solaris 2.x以及Digital Unix)的特性。第3章討論綫程及其在內核和用戶庫中如何實現。第4章介紹信號、作業控製以及登錄會話管理。第5章介紹UNIX調度器和對實時應用程序的支持。第6章研究進程間通信的技術(IPC),包括System V IPS的特性集。其中還介紹瞭Mach係統架構,該係統使用IPC作為最基本的原語來構造內核。第7章討論在現代單處理器和多處理器係統中應用的同步框架。
  接下來的四章介紹瞭文件係統。第8章介紹用戶可見的文件係統接口,以及定義瞭內核和文件係統交互的vnode/vfs接口。第9章提供一些具體的文件係統實現細節,包含原始的System V文件係統(s5fs)、伯剋利快速文件係統(FFS)以及一些小的、利用vnode/vfs接口提供服務的特殊用途的文件係統。第10章介紹一些分布式文件係統,比如太陽微係統公司的網絡文件係統(NFS)、AT&T;的遠程文件共享(RFS)、卡內基梅隆大學的Andrew文件係統(AFS)以及Transarc公司的分布式文件係統(DFS)。第11章介紹一些使用日誌提供更高可靠性和性能的高級文件係統,同時介紹一種基於可堆疊vnode層的新文件係統框架。
  第12章~第15章介紹內存管理。第12章討論內核內存分配並介紹一些有趣的分配算法。第13章介紹虛擬內存的概念並使用4.3BSD的實現來說明一些問題。第14章介紹SVR4和Solaris的虛擬內存架構。第15章介紹Mach和4.4BSD內存模型,同時分析諸如旁路轉換緩衝區和虛擬地址緩存等硬件特性的影響。
  最後兩章主要介紹I/O子係統。第16章介紹設備驅動程序框架、內核與I/O子係統的交互、SVR4設備驅動程序接口以及內核與驅動程序交互接口規範。第17章討論STREAMS框架,用於開發網絡協議、網絡驅動程序和終端驅動程序。
  排版約定
  我在本書中遵循瞭一些印刷規範。首次齣現的術語或概念用楷體。內部內核函數和變量名字以及代碼示例都是等寬字體,比如ufs_lookup()。當指定調用語法時,係統調用名是斜體,而參數是等寬字體。在圖中,實綫箭頭代錶直接指針,虛綫箭頭錶明箭頭的源和目標對象是間接推論的。
  盡管我做瞭最大的努力,但錯誤和疏忽仍然在所難免。如果你發現有什麼錯誤,或者有任何建議,請通過電子郵件(vahalia@acm.org)發送給我。
  緻謝
  許多人為本書的齣版做齣瞭貢獻。首先,我想感謝我的兒子Rohan以及我的妻子Archana,他們的耐心、愛以及無私的奉獻使我得以完成本書。我利用瞭本屬於他們的周末和夜晚時間來進行寫作,而他們給予我的一嚮都是微笑並一直鼓勵我。我也要感謝父母對我的愛和支持。
  接下來,我要感謝我的朋友Subodh Bapat,他鼓勵我承擔這本書的寫作工作,並花費大量時間給齣瞭專業性建議和持續性激勵,非常感謝他允許我使用他的書(《Object-Oriented Networks》[Bapa 94])中提到的工具、模塊和宏,還要感謝他對我的草稿一絲不苟的審核以及對我在寫作風格上清晰的指導。
  許多審稿人貢獻瞭非常多的時間和專業知識並多次審稿,提供瞭非常有價值的意見和建議,使得本書的質量有瞭提升。非常感謝Peter Salus的鼓勵和支持以及Benson Marguiles、Terry Lambert、Mark Ellis和William Bully有深度的反饋意見。最後也要感謝Keith Bostic、Evi Nemeth、Pat Parseghian、Steven Rago、Margo Seltzer、Richard Stevens以及Lev Vaitzblit審核瞭本書的部分章節。
  我還要感謝我的經理Percy Tzelnic對我在寫作本書過程中的支持和理解。最後,我要感謝齣版人Alan Apt,是他促成瞭本書,並在每個階段都提供瞭幫助。還要感謝Prentice-Hall和Spectrum Publisher Services齣版社的團隊成員,特彆感謝Shirlery McGuire、Sondra Chavez和Kelly Ricci的支持和幫助。
  參考文獻





用户评价

评分

不错,打折买,京东打折太给力了。期待多来几次折扣活动。京东配送员小哥态度超好,书很重,小哥帮忙把书搬到他能到的最远距离后,说书太重了让我一次少拿点书,他多等一会,很暖,点赞。

评分

…!?。,…!?。,

评分

《深入理解UNIX系统内核》由国际资深UNIX专家撰写,深入剖析UNIX操作系统的内核技术,包含丰富的图示与细节展示。作者从操作系统设计的角度来审视UNIX系统内核,针对内核中的每个模块,深入探讨其结构和设计,详细阐释主流UNIX系统如何选择具体模块的实现方法,以及每种方法的优缺点,为读者更好地理解操作系统内核知识、提升操作系统开发能力提供翔实指导。

评分

哈哈哈哈哈哈哈哈哈哈哈

评分

不错(*?´╰╯`?)?,很满意,

评分

坎坎坷坷坎坎坷坷坎坎坷坷

评分

200-100购买,专业好书

评分

66666666666

评分

不错

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有