预购商品
书目分类
特别推荐
第一部分 概述 第1章 BSD系統的歷史和目標 2 1.1 UNIX系統的歷史 2 1.1.1 UNIX系統的起源 2 1.1.2 Research小組的UNIX系統 3 1.1.3 AT&T UNIX System Ⅲ和System V 4 1.1.4 伯克利軟體發佈 5 1.1.5 UNIX無處不在 6 1.2 BSD和其他系統 6 1.3 BSD向開放原始程式碼的轉變 8 1.3.1 Networking Release 28 1.3.2 法律訴訟 10 1.3.3 4.4BSD 11 1.3.4 4.4BSD-Lite Release 211 1.4 FreeBSD的開發模式 12 第2章 FreeBSD設計概述 16 2.1 FreeBSD的功能和內核 16 2.2 內核結構 17 2.3 內核服務 20 2.4 進程管理 21 2.4.1 信號 22 2.4.2 進程組和會話 23 2.5 安全 23 2.5.1 進程憑證 24 2.5.2 特權模型 25 2.5.3 自主存取控制 25 2.5.4 能力模型 25 2.5.5 Jail輕型虛擬化 26 2.5.6 強制存取控制 27 2.5.7 事件審計 27 2.5.8 密碼學與亂數產生器 28 2.6 記憶體管理 28 2.6.1 BSD記憶體管理設計要點 29 2.6.2 內核中的記憶體管理 30 2.7 I/O系統概述 31 2.7.1 描述符與I/O 31 2.7.2 描述符管理 33 2.7.3 設備 34 2.7.4 通訊端IPC 34 2.7.5 分散-收集I/O 35 2.7.6 多檔案系統支持 35 2.8 設備 36 2.9 快速檔案系統 36 2.10 Zettabyte檔案系統 40 2.11 網路檔案系統 41 2.12 進程間通信 41 2.13 網路層協定 42 2.14 傳輸層協議 43 2.15 系統啟動和停止 43 習題 44 第3章 內核服務 45 3.1 內核結構 45 3.1.1 系統進程 45 3.1.2 系統入口 46 3.1.3 運行時的內核結構 46 3.1.4 內核的入口 48 3.1.5 從內核返回 49 3.2 系統調用 49 3.2.1 調用結果的處理 49 3.2.2 從系統調用返回 50 3.3 陷阱和中斷 51 3.3.1 I/O設備中斷 51 3.3.2 軟體插斷 51 3.4 時鐘中斷 52 3.4.1 統計和進程調度 53 3.4.2 超時 54 3.5 記憶體管理服務 55 3.6 時間服務 58 3.6.1 真實時間 59 3.6.2 外部表示 59 3.6.3 調整時間 59 3.6.4 時間間隔 60 3.7 資源服務 60 3.7.1 進程優先順序 60 3.7.2 資源利用 61 3.7.3 資源限制 61 3.7.4 檔案系統配額 62 3.8 內核跟蹤工具 62 3.8.1 系統調用跟蹤 62 3.8.2 DTrace 63 3.8.3 內核跟蹤 66 習題 68 第二部分 進程 第4章 進程管理 70 4.1 進程管理概述 70 4.1.1 多道程序設計 71 4.1.2 調度 72 4.2 進程狀態 73 4.2.1 進程結構 75 4.2.2 執行緒結構 78 4.3 上下文切換 79 4.3.1 執行緒狀態 79 4.3.2 底層上下文切換 80 4.3.3 主動上下文切換 80 4.3.4 同步 84 4.3.5 互斥鎖同步 85 4.3.6 互斥鎖介面 87 4.3.7 鎖同步 88 4.3.8 鎖死預防 89 4.4 執行緒調度 91 4.4.1 低級調度器 91 4.4.2 執行緒運行佇列和上下文切換 92 4.4.3 分時執行緒調度 93 4.4.4 多處理器調度 98 4.4.5 自我調整空閒 100 4.4.6 傳統的分時執行緒調度 100 4.5 創建進程 101 4.6 終止進程 102 4.7 信號 103 4.7.1 發送信號 106 4.7.2 傳輸信號 108 4.8 進程組和會話 110 4.8.1 進程組 110 4.8.2 會話 111 4.8.3 作業控制 112 4.9 進程的調試 114 習題 116 第5章 安全性 118 5.1 作業系統安全 119 5.2 安全模型 120 5.2.1 進程模型 120 5.2.2 自主與強制存取控制 120 5.2.3 可信計算基 121 5.2.4 其他內核安全特性 121 5.3 進程憑證 121 5.3.1 憑證結構 122 5.3.2 憑證記憶體模型 123 5.3.3 存取控制校驗 124 5.4 用戶和組 124 5.5 特權模型 126 5.5.1 隱式特權 127 5.5.2 顯式特權 127 5.6 進程間存取控制 128 5.6.1 可見性 129 5.6.2 信號 129 5.6.3 調度控制 129 5.6.4 等待進程終止 130 5.6.5 調試 130 5.7 自主存取控制 130 5.7.1 虛擬檔案系統介面與DAC 131 5.7.2 對象屬主與組 132 5.7.3 UNIX許可權 132 5.7.4 存取控制清單 134 5.7.5 POSIX.1e存取控制清單 136 5.7.6 NFSv4存取控制清單 138 5.8 Capsicum能力模型 141 5.8.1 Capsicum應用體系結構 142 5.8.2 能力系統 142 5.8.3 能力 143 5.8.4 能力模型 145 5.9 Jail 146 5.10 強制存取控制框架 151 5.10.1 強制策略 151 5.10.2 設計的指導原則 152 5.10.3 MAC框架的體系結構 153 5.10.4 啟動框架 154 5.10.5 策略註冊 155 5.10.6 框架入口點設計考慮 155 5.10.7 策略入口點設計考慮 156 5.10.8 內核服務入口點調用 157 5.10.9 策略組合 158 5.10.10 給對象打標籤 159 5.10.11 標籤的生命週期與存儲管理 159 5.10.12 標籤同步 162 5.10.13 從用戶空間進行策略無關的標籤管理 163 5.11 安全事件審計 163 5.11.1 審計事件與記錄 164 5.11.2 BSM審計記錄與審計跟蹤 165 5.11.3 內核審計的實現 166 5.12 加密服務 168 5.12.1 加密框架 168 5.12.2 亂數產生器 170 5.13 GELI全磁片加密 173 5.13.1 機密性和完整性保護 173 5.13.2 金鑰管理 174 5.13.3 啟動GELI 174 5.13.4 加密塊保護 175 5.13.5 I/O模型 176 5.13.6 不足 176 習題 177 第6章 存儲管理 178 6.1 術語 178 6.1.1 進程與記憶體 179 6.1.2 調頁機制 180 6.1.3 替換演算法 180 6.1.4 工作集模型 181 6.1.5 交換機制 181 6.1.6 虛擬記憶體的優點 182 6.1.7 虛擬記憶體的硬體要求 182 6.2 FreeBSD 虛擬記憶體系統概述 183 6.3 內核的存儲管理 185 6.3.1 內核映射和子映射 186 6.3.2 內核位址空間的分配 188 6.3.3 slab分配器 190 6.3.4 keg分配器 191 6.3.5 zone分配器 192 6.3.6 內核malloc 194 6.3.7 內核zone分配器 196 6.4 進程獨立擁有的資源 197 6.4.1 FreeBSD的進程虛擬位址空間 197 6.4.2 缺頁處理 199 6.4.3 映射到vm_object 199 6.4.4 vm_object 201 6.4.5 vm_object到頁面 201 6.5 共用記憶體 202 6.5.1 mmap模型 203 6.5.2 共用映射 205 6.5.3 私有映射 205 6.5.4 壓縮影子鏈 207 6.5.5 私有快照 208 6.6 創建新進程 209 6.6.1 預留內核資源 210 6.6.2 複製用戶位址空間 211 6.6.3 不通過複製創建新進程 211 6.7 執行一個檔 212 6.8 操作進程位址空間 213 6.8.1 改變進程大小 213 6.8.2 文件映射 214 6.8.3 改變保護許可權 215 6.9 終止進程 215 6.10 調頁器介面 216 6.10.1 vnode調頁器 218 6.10.2 設備調頁器 219 6.10.3 實體記憶體調頁器 220 6.10.4 交換調頁器 221 6.11 調頁機制 224 6.11.1 硬體快取記憶體的設計 228 6.11.2 硬體記憶體管理 229 6.11.3 超級頁 231 6.12 頁面替換 235 6.12.1 調頁參數 237 6.12.2 pageout守護進程 237 6.12.3 交換機制 240 6.12.4 換入進程 242 6.13 可攜性 243 6.13.1 pmap模組的作用 243 6.13.2 初始化和啟動 245 6.13.3 分配和釋放映射 248 6.13.4 改變映射的訪問和wiring屬性 249 6.13.5 物理頁面使用資訊的維護 251 6.13.6 初始化物理頁面 251 6.13.7 管理內部資料結構 252 習題 252 第三部分 I/O系統 第7章 I/O系統概述 256 7.1 描述符管理和服務 257 7.1.1 打開文件條目 258 7.1.2 描述符管理 260 7.1.3 非同步I/O 261 7.1.4 檔描述符鎖 261 7.1.5 描述符的多路I/O複用 263 7.1.6 select的實現 265 7.1.7 kqueue和kevent 267 7.1.8 資料在內核中的遷移 269 7.2 本地進程間交互 270 7.2.1 信號量 272 7.2.2 訊息佇列 273 7.2.3 共用記憶體 274 7.3 虛擬檔介面 275 7.3.1 vnode的內容 275 7.3.2 vnode的操作 277 7.3.3 路徑名的轉換 278 7.3.4 匯出檔案系統服務 278 7.4 獨立於檔案系統的服務 279 7.4.1 名字緩存 281 7.4.2 緩衝區管理 282 7.4.3 緩衝區管理的實現 284 7.5 可堆疊的檔案系統 285 7.5.1 簡單的檔案系統層 287 7.5.2 聯合檔案系統 288 7.5.3 其他檔案系統 290 習題 291 第8章 設備 292 8.1 設備概述 292 8.1.1 PC I/O體系結構 293 8.1.2 FreeBSD大型存放區I/O子系統的結構 295 8.1.3 設備命名和訪問 296 8.2 從使用者到設備的I/O映射 297 8.2.1 設備驅動程式 298 8.2.2 I/O佇列 299 8.2.3 中斷處理 299 8.3 字元設備 299 8.3.1 原始設備和物理I/O 301 8.3.2 面向字元的設備 302 8.3.3 字元設備驅動程式入口點 302 8.4 磁片設備 303 8.4.1 磁片設備驅動程式入口點 303 8.4.2 磁片I/O請求排序 303 8.4.3 磁片標籤 304 8.5 網路設備 305 8.5.1 網路設備驅動程式入口點 306 8.5.2 配置與控制 306 8.5.3 資料包接收 307 8.5.4 資料包傳輸 309 8.6 終端處理 309 8.6.1 終端處理模式 310 8.6.2 使用者介面 312 8.6.3 進程組、會話和終端控制 313 8.6.4 終端操作 313 8.6.5 終端輸出(上半部分) 314 8.6.6 終端輸出(下半部分) 315 8.6.7 終端輸入 315 8.6.8 關閉終端設備 316 8.7 GEOM層 316 8.7.1 術語和拓撲規則 317 8.7.2 改變拓撲 318 8.7.3 操作 320 8.7.4 拓撲靈活性 321 8.8 CAM層 322 8.8.1 通過CAM子系統的SCSI I/O請求的路徑 323 8.8.2 ATA磁片 325 8.9 設備配置 325 8.9.1 設備標識 327 8.9.2 自動配置資料結構 329 8.9.3 資源管理 333 8.10 設備虛擬化 334 8.10.1 與虛擬機器監控程序的交互 335 8.10.2 Virtio 336 8.10.3 Xen 339 8.10.4 設備直通 346 習題 346 第9章 快速檔案系統 348 9.1 階層式檔案系統管理 348 9.2 inode結構 350 9.2.1 inode格式的改變 351 9.2.2 擴展屬性 352 9.2.3 新的檔案系統功能 354 9.2.4 檔標誌 355 9.2.5 動態inode 356 9.2.6 inode管理 357 9.3 命名 359 9.3.1 目錄 359 9.3.2 在目錄中查找名稱 360 9.3.3 路徑名轉換 362 9.3.4 連結 363 9.4 配額 365 9.5 文件鎖定 368 9.6 軟更新 372 9.6.1 在檔案系統中的更新依賴 373 9.6.2 依賴的結構 376 9.6.3 點陣圖依賴跟蹤 378 9.6.4 inode依賴跟蹤 378 9.6.5 直接塊依賴跟蹤 379 9.6.6 間接塊依賴跟蹤 380 9.6.7 新間接塊的依賴跟蹤 381 9.6.8 新目錄入口的依賴跟蹤 382 9.6.9 新目錄依賴跟蹤 384 9.6.10 目錄入口移除依賴項跟蹤 385 9.6.11 文件截斷 385 9.6.12 檔和目錄inode回收 385 9.6.13 目錄入口重命名依賴關係跟蹤 386 9.6.14 軟更新的fsync請求 386 9.6.15 軟更新的檔刪除要求 387 9.6.16 fsck的軟更新要求 389 9.7 檔案系統快照 389 9.7.1 創建一個檔案系統快照 389 9.7.2 維護檔案系統快照 391 9.7.3 大檔案系統快照 392 9.7.4 後臺fsck 393 9.7.5 用戶可見的快照 394 9.7.6 即時轉儲 394 9.8 日誌軟更新 394 9.8.1 背景和簡介 395 9.8.2 與其他實現的相容性 395 9.8.3 日誌格式 395 9.8.4 需要日誌記錄的修改 396 9.8.5 日誌的額外需求 397 9.8.6 恢復進程 398 9.8.7 性能 399 9.8.8 未來工作 400 9.8.9 跟蹤檔移除依賴 400 9.9 本地檔存儲 402 9.9.1 檔存儲概述 402 9.9.2 用戶I/O到一個檔的過程 404 9.10 伯克利快速檔案系統 406 9.10.1 伯克利快速檔案系統的組織 406 9.10.2 啟動塊 408 9.10.3 優化存儲利用率 408 9.10.4 對檔進行讀寫 409 9.10.5 佈局策略 411 9.10.6 分配機制 413 9.10.7 塊聚類 416 9.10.8 基於分區的分配 418 習題 419 第10章 Zettabyte檔案系統 421 第11章 網路檔案系統 422 11.1 概述 422 11.2 結構和操作 424 11.2.1 FreeBSD NFS的實現 428 11.2.2 用戶端-伺服器端交互 432 11.2.3 安全問題 432 11.2.4 性能提升技巧 433 11.3 NFS演進 435 11.3.1 命名空間 439 11.3.2 屬性 440 11.3.3 存取控制清單 441 11.3.4 緩存、代理和回檔 441 11.3.5 鎖 447 11.3.6 安全 448 11.3.7 崩潰恢復 450 習題 451 第四部分 進程間通信 第12章 進程間通信 454 12.1 進程間交互模型 454 12.2 實現結構和概述 458 12.3 記憶體管理 460 12.3.1 mbuf 460 12.3.2 存儲管理演算法 463 12.3.3 mbuf實用常式 463 12.4 IPC資料結構 464 12.4.1 通訊端地址 468 12.4.2 鎖 469 12.5 建立連接 469 12.6 資料傳輸 471 12.6.1 傳輸資料 471 12.6.2 接收資料 473 12.7 關閉通訊端 475 12.8 網路通信協定的內部結構 476 12.8.1 資料流程 477 12.8.2 通信協議 478 12.9 通訊端到協定介面 480 12.9.1 使用者請求協定常式 481 12.9.2 控制輸出協定常式 483 12.10 協定到協定的介面 484 12.10.1 pr_output 484 12.10.2 pr_input 485 12.10.3 pr_ctlinput 485 12.11 協定到網路的介面 486 12.11.1 網路介面和鏈路層協定 486 12.11.2 資料包傳輸 492 12.11.3 資料包接收 492 12.12 緩衝和流控 493 12.12.1 緩衝協議策略 494 12.12.2 佇列限制 494 12.13 網路虛擬化 494 習題 496 第13章 網路層協定 498 13.1 IPv 4498 13.1.1 IPv4地址 500 13.1.2 廣播地址 501 13.1.3 Internet組播 502 13.1.4 鏈路層地址解析 503 13.2 ICMP 504 13.3 IPv 6506 13.3.1 IPv6地址 507 13.3.2 IPv6資料包格式 509 13.3.3 切換到通訊端API 510 13.3.4 自動配置 511 13.4 Internet協定代碼結構 515 13.4.1 輸出 515 13.4.2 輸入 517 13.4.3 轉發 518 13.5 路由 519 13.5.1 內核路由表 520 13.5.2 路由選擇查詢 522 13.5.3 路由選擇復位向 525 13.5.4 路由表介面 525 13.5.5 用戶級路由選擇策略 526 13.5.6 使用者級路由選擇介面:路由選擇通訊端 526 13.6 原始通訊端 527 13.6.1 控制塊 528 13.6.2 輸入處理 528 13.6.3 輸出處理 529 13.7 安全 529 13.7.1 IPSec概述 530 13.7.2 安全協議 531 13.7.3 金鑰管理 533 13.7.4 IPSec實現 537 13.8 資料包處理框架 539 13.8.1 伯克利數據包篩檢程式 539 13.8.2 IP防火牆 540 13.8.3 IPFW和Dummynet 541 13.8.4 數據包篩檢程式 544 13.8.5 netgraph 545 13.8.6 netmap 549 習題 551 第14章 傳輸層協議 553 14.1 Internet埠與關聯 553 14.2 使用者資料包通訊協定 554 14.2.1 初始化 555 14.2.2 輸出 555 14.2.3 輸入 555 14.2.4 控制操作 556 14.3 傳輸控制協議 556 14.3.1 TCP連接狀態 558 14.3.2 序列變數 561 14.4 TCP演算法 562 14.4.1 計時器 563 14.4.2 往返時間的估計 565 14.4.3 建立連接 565 14.4.4 SYN緩存 567 14.4.5 SYN cookie 568 14.4.6 關閉連接 569 14.5 TCP輸入處理 569 14.6 TCP輸出處理 572 14.6.1 發送資料 573 14.6.2 避免糊塗視窗綜合征 573 14.6.3 避免小資料包 574 14.6.4 延遲確認與窗口更新 575 14.6.5 選擇性確認 575 14.6.6 重傳狀態 577 14.6.7 慢啟動 578 14.6.8 緩衝區與窗口大小 579 14.6.9 使用慢啟動進行擁塞避免 580 14.6.10 快速重傳 581 14.6.11 模組化擁塞控制 582 14.6.12 Vegas演算法 584 14.6.13 Cubic演算法 584 14.7 流控制傳輸協議 585 14.7.1 大資料塊 585 14.7.2 關聯建立 586 14.7.3 資料傳輸 587 14.7.4 關聯關閉 589 14.7.5 多宿主和心跳 589 習題 591 第五部分 系統運行 第15章 系統啟動與關閉 594 術語表 參考文獻
最近浏览商品
客服公告
热门活动
订阅电子报