編輯推薦
FreeBSD技術專傢精品力作
FreeBSD操作係統的集大成者
全麵剖析FreeBSD的內核架構
本書是FreeBSD內核完整的技術指南,在上一版的基礎上進行瞭全麵更新,以涵蓋版本FreeBSD 5和版本11之間的所有重大改進。本書大約有1/3的內容是全新的,還有1/3的內容進行瞭完全重寫。
在本書中,三位FreeBSD項目領導人先概述瞭FreeBSD內核的當前設計和實現,接下來從係統調用級彆開始嚮下(從接口到內核再到硬件)講解瞭FreeBSD內核。本書先解釋瞭關鍵的設計決策,然後剖析瞭在實現每一個重要係統組件(包括進程管理、安全、虛擬內存、I/O係統、文件係統、socket IPC和網絡等)時使用的概念、數據結構和算法。
讀者可將本書用作工作參考,或者是深入研究當代傑齣的可移植開源操作係統的學習資料。技術和銷售支持人員也可以在本書中發現FreeBSD的功能以及局限性;應用開發人員將學到如何有效、高效地與FreeBSD進行交互;係統管理員將學到維護、調優和配置FreeBSD的方法;係統程序員則學到擴展、增強FreebSD以及與FreeBSD進行交互的方法。
本書涵蓋瞭如下內容。
使用FreeBSD jail講解高度可擴展和輕量級的虛擬化,以及使用Xen和Virtio設備半虛擬化進行虛擬設備加速;
講解瞭新的安全特性,比如Capsicum沙箱和GELI加密磁盤保護;
全麵支持NFSv4和Open Solaris ZFS;
介紹瞭FreeBSD增強的捲管理和新的日誌軟更新;
解釋瞭DTrace精細的過程調試/分析;
講解瞭在網絡、無綫和USB支持方麵的主要更新。
內容簡介
《FreeBSD操作係統設計與實現(第2版)英文版》是迄今為止對FreeBSD操作係統的介紹全麵、豐富的學習資料。
《FreeBSD操作係統設計與實現(第2版)英文版》分為5部分,總計15章。第1部分為概述性內容,對FreeBSD操作係統的曆史發展、設計和內核服務進行瞭簡單介紹。第2部分講解瞭進程相關的內容,包括進程管理、安全和存儲管理等。第3部分講解瞭I/O係統相關的內容,包括I/O設備、快速文件係統、澤字節文件係統、網絡文件係統等。第4部分講解瞭進程間通信相關的內容,包括進程間通信、網絡層協議和傳輸層協議等。第5部分講解瞭係統操作相關的內容,主要涉及瞭係統的啓動和關閉。術語錶給齣瞭本書涉及的一些常用術語及其解釋。
《FreeBSD操作係統設計與實現(第2版)英文版》既可以作為一本FreeBSD實踐指南,又可作為深入研究當代可移值的開放源代碼操作係統的參考書。本書適閤FreeBSD操作係統技術支持人員、應用程序開發人員、係統管理員和係統程序員閱讀,也可供對學習FreeBSD感興趣的讀者參考。
作者簡介
Marshall Kirk McKusick編寫瞭與UNIX和BSD主題相關的許多資料,並提供相應的谘詢和教學服務。當在加州大學伯剋利分校時,他實現瞭4.2BSD快速文件係統。他曾經是伯剋利計算機係統研究組(CSRG)的一名計算機科學傢,監督4.3BSD和4.4BSD的開發與發布。他當前是FreebSD基金會的董事會成員,也是一名長期的FreeBSD貢獻者。他曾經擔任過兩次Usenix協會的主席,還是ACM、IEEE和AAAS的成員。
George V.Neville-Neil編寫瞭與安全、網絡和操作係統相關的許多資料,並提供相應的谘詢和教學服務。作為FreeBSD基金會的董事會成員,他為FreeBSD核心團隊服務瞭4年之久。從2004年起,他為Queue和Communications of the ACM寫作“Kode Vicious”專欄。他當前是ACM執業委員會的副主席,也是Usenix協會、ACM、IEEE和AAAS的成員。
Robert N.M.Watson是劍橋大學計算機實驗室安全研究組的一名大學講師,負責講授係統、安全和架構課程。他監督在計算機架構、編譯器、程序分析、操作係統、網絡和安全方麵的高級研究。作為FreeBSD基金會的董事局成員,他為FreeBSD核心團隊服務瞭10年之久,而且當瞭15年的貢獻者。他是Usenix協會和ACM的會員。
目錄
Part I Overview 1
第1部分 概述
Chapter 1 History and Goals 3
第1章 曆史和目標
1.1 History of the UNIX System / UNIX係統的曆史 3
Origins / 起源 3
Research UNIX / 研究UNIX 4
AT&T; UNIX System III and System V / AT&T; UNIX System III
和System V 5
Berkeley Software Distributions / 伯剋利軟件分發 6
UNIX in the World / 世界上的UNIX 7
1.2 BSD and Other Systems / BSD和其他係統 7
The Influence of the User Community / 用戶社區的影響 8
1.3 The Transition of BSD to Open Source / BSD嚮開源的過渡 9
Networking Release 2 / 網絡發布2 10
The Lawsuit / 訴訟 11
4.4BSD / 4.4BSD 13
4.4BSD-Lite Release 2 / 4.4BSD-Lite版本2 13
1.4 The FreeBSD Development Model / FreeBSD開發模型 14
References / 參考文獻 17
Chapter 2 Design Overview of FreeBSD 21
第2章 FreeBSD設計概述
2.1 FreeBSD Facilities and the Kernel / FreeBSD組件與內核 21
The Kernel / 內核 22
2.2 Kernel Organization / 內核組織 23
2.3 Kernel Services / 內核服務 26
2.4 Process Management / 進程管理 26
Signals / 信號 28
Process Groups and Sessions / 進程組和會話 29
2.5 Security / 安全 29
Process Credentials / 進程憑證 31
Privilege Model / 特權模式 31
Discretionary Access Control / 自由訪問控製 32
Capability Model / 能力模型 32
Jail Lightweight Virtualization / Jail輕型虛擬化 32
Mandatory Access Control / 強製訪問控製 34
Event Auditing / 事件審計 35
Cryptography and Random-Number Generators / 35
加密和隨機數生成器
2.6 Memory Management / 存儲管理 36
BSD Memory-Management Design Decisions / 36
BSD存儲管理設計決策
Memory Management Inside the Kernel / 內核中的存儲管理 38
2.7 I/O System Overview / I/O係統概述 39
Descriptors and I/O / 描述符和I/O 39
Descriptor Management / 描述符管理 41
Devices / 設備 42
Socket IPC / 套接字IPC 42
Scatter-Gather I/O / 分散-收集I/O 43
Multiple Filesystem Support / 多文件係統支持 43
2.8 Devices / 設備 44
2.9 The Fast Filesystem / 快速文件係統 45
Filestores / 文件存儲 48
2.10 The Zettabyte Filesystem / 澤字節文件係統 49
2.11 The Network Filesystem / 網絡文件係統 50
2.12 Interprocess Communication / 進程間通信 50
2.13 Network-Layer Protocols / 網絡層協議 51
2.14 Transport-Layer Protocols / 傳輸層協議 52
2.15 System Startup and Shutdown / 係統啓動與關閉 52
Exercises / 練習 54
References / 參考文獻 54
Chapter 3 Kernel Services 57
第3章 內核服務
3.1 Kernel Organization / 內核組織 57
System Processes / 係統進程 57
System Entry / 係統入口 58
Run-Time Organization / 運行時管理 59
Entry to the Kernel / 內核入口 60
Return from the Kernel / 從內核返迴 61
3.2 System Calls / 係統調用 62
Result Handling / 返迴處理機製 62
Returning from a System Call / 從係統調用返迴 63
3.3 Traps and Interrupts / 陷阱和中斷 64
I/O Device Interrupts / I/O設備中斷 64
Software Interrupts / 軟件中斷 65
3.4 Clock Interrupts / 時鍾中斷 65
Statistics and Process Scheduling / 統計和進程調度機製 66
Timeouts / 超時 67
3.5 Memory-Management Services / 存儲管理服務 69
3.6 Timing Services / 計時服務 73
Real Time / 實時 73
External Representation / 外部錶示 73
Adjustment of the Time / 時間調整 74
Interval Time / 間隔時間 74
3.7 Resource Services / 資源服務 75
Process Priorities / 進程優先級 75
Resource Utilization / 資源利用 75
Resource Limits / 資源限製 76
Filesystem Quotas / 文件係統配額 77
3.8 Kernel Tracing Facilities / 內核跟蹤組件 77
System-Call Tracing / 係統調用跟蹤 77
DTrace / DTrace 78
Kernel Tracing / 內核跟蹤 82
Exercises / 練習 84
References / 參考文獻 85
Part II Processes 87
第II部分 進程
Chapter 4 Process Management 89
第4章 進程管理
4.1 Introduction to Process Management / 進程管理簡介 89
Multiprogramming / 多程序設計 90
Scheduling / 調度機製 91
4.2 Process State / 進程狀態 92
The Process Structure / 進程架構 94
The Thread Structure / 綫程架構 98
4.3 Context Switching / 上下文切換 99
Thread State / 綫程狀態 100
Low-Level Context Switching / 低層上下文切換 100
Voluntary Context Switching / 自願上下文切換 101
Synchronization / 同步 106
Mutex Synchronization / 互斥同步 107
Mutex Interface / 互斥接口 109
Lock Synchronization / 鎖同步 110
Deadlock Prevention / 死鎖預防 112
4.4 Thread Scheduling / 綫程調度機製 114
The Low-Level Scheduler / 低層調度器 114
Thread Run Queues and Context Switching / 115
綫程運行隊列和上下文切換
Timeshare Thread Scheduling / 分時綫程調度 117
Multiprocessor Scheduling / 多處理器調度 122
Adaptive Idle / 自適應空閑 125
Traditional Timeshare Thread Scheduling / 125
傳統的分時綫程調度
4.5 Process Creation / 創建進程 126
4.6 Process Termination / 終止進程 128
4.7 Signals / 信號 129
Posting of a Signal / 發齣信號 132
Delivering a Signal / 傳輸信號 135
4.8 Process Groups and Sessions / 進程組和會話 136
Process Groups / 進程組 137
Sessions / 會話 138
Job Control / 作業控製 139
4.9 Process Debugging / 進程調試 142
Exercises / 練習 144
References / 參考文獻 146
Chapter 5 Security 147
第5章 安全
5.1 Operating-System Security / 操作係統安全 148
5.2 Security Model / 安全模型 149
Process Model / 進程模型 149
Discretionary and Mandatory Access Control 150
自由和強製訪問控製
Trusted Computing Base (TCB) / 受信計算基(TCB) 151
Other Kernel-Security Features / 其他內核安全特性 151
5.3 Process Credentials / 進程憑證 151
The Credential Structure / 憑證架構 152
Credential Memory Model / 憑證存儲模型 153
Access-Control Checks / 訪問控製校驗 153
5.4 Users and Groups / 用戶和組 154
Setuid and Setgid Binaries / Setuid和Setgid二進製 155
5.5 Privilege Model / 特權模型 157
Implicit Privilege / 隱式特權 157
Explicit Privilege / 顯式特權 157
5.6 Interprocess Access Control / 進程間訪問控製 159
Visibility / 可見性 160
Signals / 信號 160
Scheduling Control / 調度控製 160
Waiting on Process Termination / 等待進程終止 161
Debugging / 調試 161
5.7 Discretionary Access Control / 自由訪問控製 161
The Virtual-Filesystem Interface and DAC / 162
虛擬文件係統接口和DAC
Object Owners and Groups / 對象屬主和組 163
UNIX Permissions / UNIX權限 164
Access Control Lists (ACLs) / 訪問控製列錶(ACL) 165
POSIX.1e Access Control Lists / POSIX.1e訪問控製列錶 168
NFSv4 Access Control Lists / NFSv4訪問控製列錶 171
5.8 Capsicum Capability Model / Capsicum能力模型 174
Capsicum Application Structure / Capsicum應用架構 175
Capability Systems / 能力係統 176
Capabilities / 能力 177
Capability Mode / 能力模型 179
5.9 Jails / Jail 180
5.10 Mandatory Access-Control Framework / 強製訪問控製框架 184
Mandatory Policies / 強製策略 186
Guiding Design Principles / 設計原則指導 187
Architecture of the MAC Framework / MAC框架的架構 188
Framework Startup / 啓動框架 189
Policy Registration / 策略注冊 190
Framework Entry-Point Design Considerations / 191
框架入口點設計考量
Policy Entry-Point Considerations / 策略入口點考量 192
Kernel Service Entry-Point Invocation / 內核服務入口點調用 193
Policy Composition / 策略組成 194
Object Labelling / 給對象打標簽 195
Label Life Cycle and Memory Management / 196
標簽生命周期和存儲管理
Label Synchronization / 標簽同步 199
Policy-Agnostic Label Management from Userspace / 199
從用戶空間進行策略無關的標簽管理
5.11 Security Event Auditing / 安全事件審計 200
Audit Events and Records / 審計事件和記錄 201
BSM Audit Records and Audit Trails / 202
BSM審計記錄和審計跟蹤
Kernel-Audit Implementation / 內核審計的實施 203
5.12 Cryptographic Services / 加密服務 206
Cryptographic Framework / 加密框架 206
Random-N
FreeBSD操作係統設計與實現 第2版 英文版 下載 mobi epub pdf txt 電子書