操作系統原型 — xv6 分析與實驗
羅秋明
- 出版商: 清華大學
- 出版日期: 2021-07-01
- 定價: $594
- 售價: 8.5 折 $505
- 語言: 簡體中文
- 頁數: 560
- 裝訂: 平裝
- ISBN: 7302579989
- ISBN-13: 9787302579984
-
相關分類:
Operating-system
立即出貨 (庫存 < 4)
買這商品的人也買了...
-
物件導向 Keil C51 嵌入式程式設計, 2/e$400$360 -
無瑕的程式碼 - 敏捷軟體開發技巧守則 (Clean Code: A Handbook of Agile Software Craftsmanship)$580$452 -
告別瀑布,擁抱 Scrum:解析微軟與 Adobe 如何在 30 天內開發出新軟體 (Software in 30 Days: How Agile Managers Beat the Odds, Delight Their Customers, And Leave Competitors In the Dust)$320$250 -
$653Linux 多線程服務端編程:使用 muduo C++ 網絡庫 -
The Linux Programming Interface 國際中文版 (上冊)$800$632 -
The Linux Programming Interface 國際中文版 (下冊)$800$632 -
深入理解計算機系統, 3/e (Computer Systems: A Programmer's Perspective, 3/e)$834$792 -
$267現代操作系統, 4/e (Modern operating systems, 4/e) -
$479使用 Raspberry Pi 學習電腦體系結構 (Learning Computer Architecture with Raspberry Pi) -
ARM Cortex-M0 與 Cortex-M0+ 權威指南, 2/e$768$730 -
$3,560大話計算機 — 電腦系統底層架構原理極限剖析 (套裝共3冊) -
$301Linux GNU C 程序觀察 -
QEMU/KVM 源碼解析與應用$1,008$958 -
$607嵌入式系統設計:CPS 與物聯網應用 (原書第3版) -
BPF 之巔:洞悉 Linux 系統和應用性能 (BPF Performance Tools)$1,194$1,134 -
$659奔跑吧 Linux 內核 (捲1):基礎架構, 2/e -
$559嵌入式 C語言自我修養 — 從芯片、編譯器到操作系統 -
練核心從裡強到外:全面了解 Linux 基礎架構$1,000$790 -
$422陣列信號參數估計算法與優化 -
劍指 Offer:數據結構與算法名企面試題精講 (專項突破版)$534$507 -
$505Go 語言底層原理剖析 -
內行人才知道的系統設計面試指南$580$458 -
$713Go 語言設計與實現 -
代碼隨想錄 — 跟著 Carl 學算法$828$787 -
CPU 眼裡的 C/C++$534$507
中文年末書展|繁簡參展書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 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
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
相關主題
商品描述
本書作為系統軟件系列叢書的第四本,與已出版的《Linux GNU C程序觀察》《操作系統之編程觀察》《Linux技術內幕》共同組成系統軟件學習的遞進學習材料。 本書共12章,全面分析了xv6的實現並提供了豐富的實驗及其示例代碼。在分析方面不僅包含了幾乎完整的C代碼解讀,還包括編譯、鏈接和程序裝入細節,並給出了QEMU模擬、GDB調試和底層系統硬件架構相關的必要知識。實驗方面安排了入門、中級和高級三個層次的內容: 入門實驗指導讀者自行增加一個系統調用並通過應用程序驗證其功能,開啟修改操作系統第一步;中級實驗全面體驗了調度機制和算法,以及進程間通信中的信號量、共享內存和消息隊列的實現,還有內存管理中的離散內存管理和代碼數據隔離實驗;高級實驗綜合多方面的知識,實現線程機制、文件功能擴展、虛擬內存實驗以及多終端實驗。 本書可作為電腦相關專業本科高年級學生和研究生的操作系統實驗課程教學用書,也可作為相關專業人員深入瞭解操作系統的實踐用書。
作者簡介
深圳大學計算機與軟件學院副教授,廣東省國產高性能計算系統工程技術研究中心副主任、深圳市服務計算與應用重點實驗室常務副主任,長期從事高性能計算研究。
目錄大綱
目錄
第1章xv6安裝使用1
1.1運行於QEMU的xv61
1.1.1CentOS 7+QEMU+xv61
1.1.2Ubuntu 18+QEMU+xv62
1.2調試觀察4
1.2.1xv6 shell命令4
1.2.2QEMU+gdb調試6
1.2.3多核調試10
1.3本章小結12
練習13
第2章入門實驗14
2.1新增可執行程序15
2.1.1磁盤映像的生成15
2.1.2添加簡單程序16
2.2新增系統調用18
2.2.1系統調用示例19
2.2.2添加系統調用20
2.2.3驗證新系統調用22
2.3觀察調度過程23
2.4本章小結25
練習25
第3章xv6概述26
3.1xv6代碼總覽26
3.2xv6二進制代碼與鏡像27
3.2.1啟動扇區27
3.2.2內核代碼31
3.2.3磁盤鏡像40
3.2.4xv6的Makefile43
3.3xv6內核簡介51
3.3.1進程管理52
3.3.2內存管理56
3.3.3文件系統57
3.3.4設備59
3.4本章小結59
練習59
第4章系統啟動60
4.1全局性信息60
4.1.1xv6系統常數(param.h)60
4.1.2x86.h硬件相關代碼61
4.2bootblock70
4.2.116位/32位模式71
4.2.2bootasm.S72
4.2.3bootmain.c83
4.2.4ELF文件格式87
4.3kernel啟動89
4.3.1啟動分頁90
4.3.2main()95
4.4多核啟動100
4.4.1檢測多核信息100
4.4.2激活其他處理器107
4.5通用代碼111
4.6QEMU模擬命令114
4.7本章小結115
練習116
第5章內存管理118
5.1物理內存初始化(PI)119
5.1.1早期佈局119
5.1.2物理頁幀的初始化120
5.1.3kalloc.c和mmu.h122
5.2頁幀的分配與回收(PR)126
5.3內核空間126
5.3.1內核頁表(KI)127
5.3.2內核頁表切換(KR)129
5.3.3vm.c131
5.4進程用戶空間149
5.4.1用戶空間映像(UI)150
5.4.2分配與回收(UR)152
5.4.3用戶進程空間切換153
5.4.4內核空間與用戶空間交換數據153
5.5本章小結154
練習155
第6章進程管理與同步156
6.1進程管理156
6.1.1調度狀態與執行現場156
6.1.2進程控制175
6.1.3執行流的切換184
6.2內核同步——自旋鎖190
6.2.1spinlock.h190
6.2.2spinlock.c191
6.3用戶應用程序195
6.3.1運行程序195
6.3.2第一個用戶進程init200
6.3.3sh.c203
6.3.4xv6測試(usertests.c)218
6.3.5用戶進程的ELF220
6.3.6ULIB庫221
6.4本章小結230
練習231
第7章中斷/異常/系統調用232
7.1中斷及其處理233
7.1.1中斷整體描述233
7.2系統調用245
7.2.1系統調用框架246
7.2.2數據傳遞254
7.2.3用戶態接口255
7.3本章小結259
練習260
第8章中級實驗261
8.1調度實驗261
8.1.1調整時間片長度261
8.1.2優先級調度264
8.2實現信號量273
8.2.1共享變量及其訪問273
8.2.2信號量數據結構275
8.2.3信號量操作的系統調用276
8.2.4用戶測試代碼280
8.3實現進程間通信的實驗282
8.3.1共享內存的實現282
8.3.2消息隊列的實現299
8.4內存管理實驗317
8.4.1實現myfree()和myalloc()系統調用317
8.4.2代碼與數據隔離324
8.5本章小結331
練習331
第9章xv6fs文件管理333
9.1xv6fs文件系統333
9.1.1xv6fs概述334
9.2文件系統操作344
9.2.1盤塊操作345
9.2.2索引節點操作356
9.2.3目錄操作372
9.2.4文件378
9.2.5系統調用386
9.3非核心功能401
9.3.1日誌層401
9.3.2特殊文件411
9.4本章小結415
練習416
第10章設備管理417
10.1終端設備417
10.1.1console/tty/terminal/shell417
10.1.2終端及CGA顯示器418
10.1.3鍵盤430
10.1.4串口439
10.2其他硬件442
10.2.1定時器442
10.2.2IDE磁盤/塊設備443
10.3中斷控制器449
10.3.1APIC450
10.3.2IOAPIC451
10.3.3LAPIC457
10.4本章小結468
練習468
第11章高級實驗469
11.1實現xv6內核線程469
11.1.1修改PCB469
11.1.2sys_clone和sys_join系統調用470
11.1.3線程庫的實現474
11.1.4測試樣例476
11.2文件系統實驗478
11.2.1文件權限478
11.2.2恢復被刪除的文件484
11.2.3磁盤裸設備的讀寫488
11.3虛擬內存494
11.3.1虛存交換機制495
11.3.2缺頁異常498
11.3.3功能驗證501
11.4用戶終端實驗504
11.4.1設計思路505
11.4.2代碼實現506
11.4.3功能驗證518
11.5本章小結523
練習523
第12章x86架構概述524
12.1x86的ISA架構524
12.1.1寄存器524
12.1.2內存組織530
12.2x86 MMU地址部件531
12.2.1模式及地址空間531
12.2.2實地址模式533
12.2.3保護模式535
12.2.4分頁機制543
12.3中斷/異常/系統調用547
12.3.1中斷機制548
12.3.2中斷描述符表IDT548
12.3.3TSS和內核棧554
12.4本章小結560



