自研操作系統:DIM-SUM設計與實現
謝寶友
- 出版商: 電子工業
- 出版日期: 2020-07-01
- 定價: $774
- 售價: 7.9 折 $611
- 語言: 簡體中文
- 頁數: 456
- ISBN: 7121391864
- ISBN-13: 9787121391866
-
相關分類:
Operating-system
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
物件導向 Keil C51 嵌入式程式設計, 2/e$400$360 -
The Art of Electronics, 3/e (Hardcover)$2,600$2,548 -
Make: Electronics 圖解電子實驗專題製作, 2/e (MAKE: Electronics: Learning Through Discovery, 2/e)$580$458 -
$469RT-Thread 內核實現與應用開發實戰指南 — 基於 STM32 RT-Thread RTOS STM32 -
$422嵌入式實時操作系統:RT-Thread 設計與實現 -
The Art of Electronics: The X Chapters (Hardcover)$1,680$1,646 -
$709遷移學習 -- TRANSFER LEARNING (楊強教授新作) -
QEMU/KVM 源碼解析與應用$1,008$958 -
$1,134軟件調試 第2版 捲2 : Windows 平臺調試 (上.下冊) -
$505操作系統原型 — xv6 分析與實驗 -
$284實時嵌入式系統設計方法 -
$658仿人機器人建模與控制 -
從 Docker 動手邁入全新 DevOps 時代:最完整 Kubernetes 全書$1,280$1,011 -
$708Docker + Kubernetes 容器實戰派 -
$505嵌入式系統實時通信網絡 -
嵌入式實時操作系統 — 理論基礎$594$564 -
$469圖解入門:功率半導體基礎與工藝精講 (原書第3版) -
$709強化學習與最優控制 -
程序員進階之路:緩存、網絡、內存與案例$828$787 -
一個字節的奇妙之旅:白話電腦系統$654$621 -
匯編語言與逆向技術$390$371 -
RBF神經網絡自適應控制及MATLAB模擬(第3版)$768$730 -
$653軸向磁通永磁無刷電機 (原書第2版) -
電腦組成原理(基於x86-64架構)$719$683 -
底層都完全了解 - Kubernetes API Server 原始程式分析$1,080$853
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$576 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
78折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$390 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
本書詳細闡述了自研操作系統DIM-SUM的設計與實現,提供了在ARM 64虛擬機中動手實踐DIM-SUM及參與DIM-SUM開發的方法。針對DIM-SUM操作系統的同步與互斥、調度、內存、中斷與定時器、塊設備、文件系統模塊進行了詳細的分析,包括這些模塊的設計思路、數據結構定義、關鍵API說明。最重要的是,本書對各個模塊的主要函數進行了逐行解釋,有助於讀者深刻理解如何實現一款實用的操作系統。最後,本書還展望了接下來10年DIM-SUM操作系統的發展目標,希望最終其能發展為可以在服務器系統、桌面系統中實用的自研操作系統。
目錄大綱
第 1章 準備工作 1
1.1 DIM-SUM簡介 1
1.2 DIM-SUM是什麼 1
1.2.1 DIM-SUM的第一個版本為什麼是HOT-POT 1
1.2.2 DIM-SUM歡迎什麼 2
1.2.3 DIM-SUM不歡迎什麼 3
1.3 獲得源代碼 3
1.3.1 通過網頁下載源代碼 3
1.3.2 通過Git獲取源代碼 3
1.4 搭建調試開發環境 4
1.4.1 安裝ubuntu 16.04 4
1.4.2 ubuntu 16.04環境配置 5
1.4.3 搭建編譯環境 6
1.4.4 編譯HOT-POT 7
1.4.5 運行HOT-POT 8
1.4.6 開始調試 10
1.5 向DIM-SUM操作系統提交補丁 11
1.5.1 心態 11
1.5.2 準備工作 11
1.5.3 製作補丁 13
1.5.4 製作正確的補丁 14
1.5.5 發送補丁 16
1.6 獲得幫助 17
1.7 提醒 17
第 2章 算法基礎 18
2.1 鏈表 18
2.2 散列表 19
2.3 紅黑樹 20
2.4 基樹 22
第 3章 計數與互斥同步 23
3.1 計數 23
3.1.1 計數的難題 24
3.1.2 精確計數器 24
3.1.3 近似計數器 27
3.1.4 引用計數 31
3.2 內核互斥原語 32
3.2.1 每CPU變量 32
3.2.2 自旋鎖 38
3.2.3 自旋位鎖 42
3.2.4 自旋順序鎖 44
3.2.5 自旋讀/寫鎖 47
3.2.6 讀/寫信號量 50
3.2.7 互斥鎖 56
3.3 內核同步原語 60
3.3.1 信號量的設計原理 60
3.3.2 信號量的數據結構 61
3.3. 3 信號量API 61
3.3.4 信號量的實現 62
第 4章 調度 65
4.1 基本概念 65
4.1.1 進程和線程 65
4.1.2 任務 66
4.1.3 任務搶占 66
4.1.4 idle線程 66
4.2 SMP CPU初始化 66
4.3 數據結構 71
4.3.1 線程 71
4.3.2 調度隊列 76
4.3.3 雜項 77
4.4 調度子系統初始化 77
4.4.1 init_sched_early函數 78
4.4.2 init_idle_process函數 78
4.4.3 init_sched函數 79
4.5 線程調度 79
4.5.1 上下文切換 79
4.5.2 喚醒線程 82
4.6 高級調度API 85
4.6.1 等待隊列 85
4.6.2 位等待隊列 89
4.6.3 線程睡眠 93
4.6.4 消息隊列 96
第 5章 中斷及定時器 108
5.1 中斷控制器初始化 108
5.1.1 主CPU中斷控制器初始化 109
5.1.2 從CPU中斷控制器初始化 110
5.2 中斷控制器維護 110
5.2.1 中斷號映射 110
5.2.2 邏輯中斷的控制 113
5.2.3 設備中斷處理函數 116
5.3 中斷處理 119
5.3.1 序言 119
5.3.2 中斷處理通用流程 120
5.3.3 處理外部設備中斷 122
5.3.4 處理核間中斷 126
5.3.5 軟中斷 126
5.3.6 尾聲 126
5.4 工作隊列 128
5.4.1 工作隊列的數據結構 128
5.4.2 工作隊列的全局變量 130
5.4.3 工作隊列的API 130
5.4.4 工作隊列的實現 131
5.5 定時器與時間管理 139
5.5.1 初始化 139
5.5.2 定時器的數據結構 139
5.5.3 定時器的全局變量 141
5.5.4 定時器的API 141
5.5.5 定時器的實現 141
5.5.6 定時器中斷處理 144
5.5.7 時間管理 148
第 6章 內存管理 151
6.1 內存初始化 151
6.1.1 艱難地準備C運行環境 151
6.1.2 準備BOOT內存空間 152
6.1.3 物理內存塊管理 152
6.1.4 早期設備內存映射 153
6.1.5 初始化每CPU變量 157
6.1.6 初始化線性映射 157
6.1.7 其他內存初始化工作 160
6.2 BOOT內存分配器 160
6.2.1 BOOT內存分配API 161
6.2.2 BOOT內存分配器的實現 161
6.2.3 BOOT內存分配器的銷毀 163
6.3 頁面編號 163
6.3.1 頁面編號的數據結構 164
6.3.2 頁面編號的全局變量 165
6.3.3 頁面編號的API 165
6.3.4 頁面編號的實現 165
6.4 頁面分配器 168
6.4.1 頁面分配器的設計原理 168
6.4.2 頁面分配器的數據結構 169
6.4.3 頁面分配器的全局變量 174
6.4.4 頁面分配器的API 175
6.4.5 頁面分配器的實現 176
6.4.6 頁面分配器的初始化 192
6.5 Beehive內存分配器 193
6.5.1 Beehive內存分配器的設計原理 193
6.5.2 Beehive內存分配器的數據結構 195
6.5.3 Beehive內存分配器的全局變量 197
6.5.4 Beehive內存分配器的API 199
6.5.5 Beehive內存分配器的實現 199
6.5.6 Beehive內存分配器的初始化 214
6.6 I/O內存映射 216
第 7章 塊設備 219
7.1 磁盤及其分區 220
7.1.1 磁盤及其分區的數據結構 220
7.1.2 磁盤及其分區的全局變量 222
7.1.3 磁盤及其分區的API 222
7.1.4 磁盤及其分區的實現 222
7.2 塊設備維護 228
7.2.1 塊設備的數據結構 228
7.2.2 塊設備的全局變量 230
7.2.3 塊設備的API 231
7.2.4 塊設備的實現 231
7.3 I/O請求 242
7.3.1 I/O請求的數據結構 243
7.3.2 I/O請求的全局變量 250
7.3.3 I/O請求的API 250
7.3.4 I/O請求的實現 251
7.4 I/O調度 265
7.4.1 I/O調度的數據結構 265
7.4.2 I/O調度的全局變量 267
7.4.3 I/O調度的API 267
7.4.4 I/O調度的實現 268
第 8章 虛擬文件系統 271
8.1 掛載、卸載文件系統 271
8.1.1 掛載、卸載文件系統的數據結構 272
8.1.2 掛載、卸載文件系統的全局變量 277
8.1.3 掛載、卸載文件系統的API 278
8.1.4 掛載、卸載文件系統的實現 278
8.2 文件節點緩存 285
8.2.1 文件節點緩存的數據結構 286
8.2.2 文件節點緩存的全局變量 288
8.2.3 文件節點緩存的API 289
8.2.4 文件節點緩存的實現 290
8.3 打開、關閉文件 304
8.3.1 打開、關閉文件的數據結構 305
8.3.2 打開、關閉文件的全局變量 308
8.3.3 打開、關閉文件的API 309
8.3.4 打開、關閉文件的實現 309
8.4 讀/寫文件 319
8.4.1 讀/寫文件的數據結構 320
8.4.2 讀/寫文件的全局變量 323
8.4.3 讀/寫文件的API 323
8.4.4 讀/寫文件的實現 323
8.5 其他功能 337
第 9章 雜項文件系統 338
9.1 文件系統的掛載 338
9.1.1 第一次加載根文件系統 338
9.1.2 第二次加載根文件系統 340
9.2 內存文件系統 340
9.2.1 內存文件系統的數據結構 340
9.2.2 內存文件系統的全局變量 340
9.2.3 內存文件系統的API 341
9.2.4 內存文件系統的實現 341
9.3 設備文件系統 349
9.3.1 設備文件系統的數據結構 349
9.3.2 設備文件系統的全局變量 350
9.3.3 設備文件系統的API 351
9.3.4 設備文件系統的實現 351
第 10章 LEXT3文件系統 358
10.1 簡介 358
10.1.1 超級塊 359
10.1.2 塊組描述符 359
10.1.3 塊位圖 360
10.1.4 文件節點位圖 360
10.1.5 文件節點表 360
10.1.6 文件節點 360
10.1.7 文件日誌 362
10.2 LEXT3 363
10.2.1 LEXT3的數據結構 363
10.2.2 LEXT3的全局變量 371
10.2.3 LEXT3的API 372
10.2.4 LEXT3的實現 373
10.3 文件系統日誌 397
10.3.1 日誌的數據結構 397
10.3.2 日誌的全局變量 405
10.3.3 日誌的API 405
10.3.4 日誌的實現 406
第 11章 雜項 438
11.1 klibc 438
11.2 網絡子系統 440
11.3 SIMPLE-KSHELL 440
