Linux 是怎樣工作的

Linux 是怎樣工作的

作者: [日]武內覺
出版社: 人民郵電
出版在: 2022-03-01
ISBN-13: 9787115581617
ISBN-10: 7115581614
總頁數: 281 頁





內容描述


本書結合大量實驗程序和圖表,通俗易懂地介紹了Linux操作系統的運行原理和硬件的基礎知識,涉及進程管理、進程調度器、內存管理、存儲層次、文件系統和外部存儲器等。實驗程序使用C語言和Python編寫,讀者可親自動手運行程序,來確認系統的行為。另外,以圖解的方式介紹各知識點,簡明且直觀,能夠幫助讀者加深理解。讀者只需對Linux基本命令有所瞭解,即可輕松閱讀。
本書適合應用程序開發人員、系統設計師、運維管理人員和技術支持人員等人士閱讀。


目錄大綱


第 1章 電腦系統的概要 1
 
第 2章 用戶模式實現的功能 11
2.1 系統調用 12
2.2 系統調用的包裝函數 22
2.3 C標準庫 24
2.4 OS提供的程序 26
 
第3章 進程管理 27
3.1 創建進程 28
3.2 fork()函數 28
3.3 execve()函數 31
3.4 結束進程 38
 
第4章 進程調度器 41
4.1 關於實驗程序的設計 43
4.2 實驗程序的實現 44
4.3 實驗 48
4.4 思考 53
4.5 上下文切換 54
4.6 進程的狀態 55
4.7 狀態轉換 57
4.8 空閑狀態 59
4.9 各種各樣的狀態轉換 61
4.10 吞吐量與延遲 63
4.11 現實中的系統 69
4.12 存在多個邏輯 CPU時的調度 70
4.13 實驗方法 71
4.14 實驗結果 72
4.15 吞吐量與延遲 76
4.16 思考 77
4.17 運行時間和執行時間 78
4.18 進程睡眠 84
4.19 現實中的進程 85
4.20 變更優先級 87
 
第5章 內存管理 95
5.1 內存相關的統計信息 96
5.2 內存不足 98
5.3 簡單的內存分配 101
5.4 虛擬內存 106
5.5 頁表 108
5.6 實驗 110
5.7 為進程分配內存 111
5.8 實驗 116
5.9 利用上層進行內存分配 118
5.10 解決問題 121
5.11 虛擬內存的應用 126
5.12 文件映射 127
5.13 請求分頁 131
5.14 寫時復制 145
5.15 Swap 151
5.16 多級頁表 159
5.17 標準大頁 163
 
第6章 存儲層次 167
6.1 高速緩存 168
6.2 高速緩存不足時 173
6.3 多級緩存 175
6.4 關於高速緩存的實驗 176
6.5 訪問局部性 180
6.6 總結 181
6.7 轉譯後備緩沖區 181
6.8 頁面緩存 181
6.9 同步寫入 186
6.10 緩沖區緩存 187
6.11 讀取文件的實驗 187
6.12 寫入文件的實驗 194
6.13 調優參數 196
6.14 總結 198
6.15 超線程 199
 
第7章 文件系統 203
7.1 Linux的文件系統 207
7.2 數據與元數據 210
7.3 容量限制 211
7.4 文件系統不一致 212
7.5 日誌 214
7.6 寫時復制 218
7.7 防止不了的情況 221
7.8 文件系統不一致的對策 221
7.9 文件的種類 223
7.10 字符設備 224
7.11 塊設備 225
7.12 各種各樣的文件系統 228
7.13 基於內存的文件系統 228
7.14 網絡文件系統 230
7.15 虛擬文件系統 231
7.16 Btrfs 233
 
第8章 外部存儲器 241
8.1 HDD的數據讀寫機制 242
8.2 HDD的性能特性 244
8.3 HDD的實驗 246
8.4 實驗程序 247
8.5 順序訪問 251
8.6 隨機訪問 253
8.7 通用塊層 254
8.8 I/O調度器 255
8.9 預讀 256
8.10 實驗 258
8.11 SSD 267
8.12 總結 279
後記 280


作者介紹


武内觉(作者)
2005年~2017年就职于日本富士通公司,负责商用Linux,特别是Linux内核的开发与支持工作。2017年后在Cybozu公司担任技术顾问。
 
 
曹栩(译者)
出生于中国广东省。毕业于天津理工大学。曾从事系统维护工作,长期参与开源贡献。目前在日本求学,专攻通信协议与网络安全方向。




相關書籍

C++17 Quick Syntax Reference: A Pocket Guide to the Language, APIs and Library

作者 Mikael Olsson

2022-03-01

Practical Binary Analysis: Build Your Own Linux Tools for Binary Instrumentation, Analysis, and Disassembly

作者 Dennis Andriesse

2022-03-01

橫跨三大平台的開發框架 -- .Net Core 通吃 Win/Mac/Linux

作者 李爭 張廣昀

2022-03-01