包郵 操作系統(tǒng)真象還原
-
>
全國(guó)計(jì)算機(jī)等級(jí)考試最新真考題庫(kù)模擬考場(chǎng)及詳解·二級(jí)MSOffice高級(jí)應(yīng)用
-
>
決戰(zhàn)行測(cè)5000題(言語(yǔ)理解與表達(dá))
-
>
軟件性能測(cè)試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強(qiáng)教科書(shū)(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
操作系統(tǒng)真象還原 版權(quán)信息
- ISBN:9787115414342
- 條形碼:9787115414342 ; 978-7-115-41434-2
- 裝幀:一般膠版紙
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類(lèi):>
操作系統(tǒng)真象還原 本書(shū)特色
適讀人群 :適合操作系統(tǒng)愛(ài)好者和程序設(shè)計(jì)人員閱讀前百度高 級(jí)工程師精心寫(xiě)作。操作系統(tǒng)并不深?yuàn)W,本書(shū)給予解讀。 歷時(shí)19個(gè)月,行文60余萬(wàn)字,用6000多行代碼實(shí)現(xiàn)了一個(gè)完整的操作系統(tǒng)。剖析操作系統(tǒng)的原理,實(shí)現(xiàn)內(nèi)核線程、特權(quán)級(jí)變換、用戶(hù)進(jìn)程、任務(wù)調(diào)度、文件系統(tǒng)等操作系統(tǒng)基本的組成單元。 用實(shí)際代碼解釋了鎖、信號(hào)量、生產(chǎn)者消費(fèi)者問(wèn)題。 實(shí)現(xiàn)了shell,幫助大家理解內(nèi)部命令、外部命令、管道等操作。 本書(shū)用詼諧幽默的語(yǔ)言,把深?yuàn)W的操作系統(tǒng)盡量講解清楚,讀者在輕松閱讀中就學(xué)通了深?yuàn)W的知識(shí),學(xué)完后不但明白了操作系統(tǒng),讀者可以輕松自制一個(gè)操作系統(tǒng),是一本難得的好書(shū)。 本書(shū)適合操作系統(tǒng)快速入門(mén)并希望快速提高的讀者、具備一定基礎(chǔ)、但不能靈活運(yùn)用的讀者、也適用于那些已經(jīng)在操作系統(tǒng)領(lǐng)域有一定造詣、但依然存在誤用的讀者 絕大多數(shù)技術(shù)人都對(duì)操作系統(tǒng)懷著好奇的心,他們渴望一本告訴操作系統(tǒng)到底是什么的書(shū),里面不要摻雜太多無(wú)關(guān)的管理性的東西,代碼量不大且是現(xiàn)代操作系統(tǒng)雛形,渴望很快看到操作系統(tǒng)的本質(zhì)而不花費(fèi)大量的時(shí)間成本。操作系統(tǒng)并不深?yuàn)W,本書(shū)給予解讀。
操作系統(tǒng)真象還原 內(nèi)容簡(jiǎn)介
本書(shū)共分16章,講解了開(kāi)發(fā)一個(gè)操作系統(tǒng)需要的技術(shù)和知識(shí),主要內(nèi)容有:操作系統(tǒng)基礎(chǔ)、部署工作環(huán)境、編寫(xiě)MBR主引導(dǎo)記錄、完善MBR錯(cuò)誤、保護(hù)模式入門(mén)、保護(hù)模式進(jìn)階和向內(nèi)核邁進(jìn)、中斷、內(nèi)存管理系統(tǒng)、線程、輸入輸出系統(tǒng)、用戶(hù)進(jìn)程、完善內(nèi)核、編寫(xiě)硬盤(pán)驅(qū)動(dòng)程序、文件系統(tǒng)、系統(tǒng)交互等核心技術(shù)。 本書(shū)適合程序員、系統(tǒng)底層開(kāi)發(fā)人員、操作系統(tǒng)愛(ài)好者閱讀,也可作為大專(zhuān)院校相關(guān)專(zhuān)業(yè)師生用書(shū)和培訓(xùn)學(xué)校的教材。
操作系統(tǒng)真象還原 目錄
第0章 一些你可能正感到迷惑的問(wèn)題1
0.1 操作系統(tǒng)是什么1
0.2 你想研究到什么程度2
0.3 寫(xiě)操作系統(tǒng),哪些需要我來(lái)做2
0.4 軟件是如何訪問(wèn)硬件的2
0.5 應(yīng)用程序是什么,和操作系統(tǒng)是如何
配合到一起的3
0.6 為什么稱(chēng)為“陷入”內(nèi)核4
0.7 內(nèi)存訪問(wèn)為什么要分段4
0.8 代碼中為什么分為代碼段、數(shù)據(jù)段?
這和內(nèi)存訪問(wèn)機(jī)制中的段是一回事嗎6
0.9 物理地址、邏輯地址、有效地址、線性
地址、虛擬地址的區(qū)別11
0.10 什么是段重疊12
0.11 什么是平坦模型12
0.12 cs、ds這類(lèi)sreg段寄存器,位寬是
多少12
0.13 什么是工程,什么是協(xié)議13
0.14 為什么Linux系統(tǒng)下的應(yīng)用程序不能在
Windows系統(tǒng)下運(yùn)行14
0.15 局部變量和函數(shù)參數(shù)為什么要放在
棧中14
0.16 為什么說(shuō)匯編語(yǔ)言比C語(yǔ)言快15
0.17 先有的語(yǔ)言,還是先有的編譯器,第 1個(gè)
編譯器是怎么產(chǎn)生的16
0.18 編譯型程序與解釋型程序的區(qū)別19
0.19 什么是大端字節(jié)序、小端字節(jié)序19
0.20 BIOS中斷、DOS中斷、Linux中斷的
區(qū)別21
0.21 Section和Segment的區(qū)別25
0.22 什么是魔數(shù)29
0.23 操作系統(tǒng)是如何識(shí)別文件系統(tǒng)的30
0.24 如何控制CPU的下一條指令30
0.25 指令集、體系結(jié)構(gòu)、微架構(gòu)、編程
語(yǔ)言30
0.26 庫(kù)函數(shù)是用戶(hù)進(jìn)程與內(nèi)核的橋梁33
0.27 轉(zhuǎn)義字符與ASCII碼37
0.28 MBR、EBR、DBR和OBR各是
什么39
第 1章 部署工作環(huán)境42
1.1 工欲善其事,必先利其器42
1.2 我們需要哪些編譯器42
1.2.1 世界頂 級(jí)編譯器GCC42
1.2.2 匯編語(yǔ)言編譯器新貴NASM43
1.3 操作系統(tǒng)的宿主環(huán)境43
1.3.1 什么是虛擬機(jī)44
1.3.2 盜夢(mèng)空間般的開(kāi)發(fā)環(huán)境,虛擬機(jī)
中再裝一個(gè)虛擬機(jī)45
1.3.3 virtualBox下載,安裝46
1.3.4 Linux發(fā)行版下載46
1.3.5 Bochs下載安裝46
1.4 配置bochs48
1.5 運(yùn)行bochs49
第 2章 編寫(xiě)MBR主引導(dǎo)記錄,讓我們開(kāi)始
掌權(quán)52
2.1 計(jì)算機(jī)的啟動(dòng)過(guò)程52
2.2 軟件接力第 一棒,BIOS52
2.2.1 實(shí)模式下的1MB內(nèi)存布局52
2.2.2 BIOS是如何蘇醒的54
2.2.3 為什么是0x7c0056
2.3 讓MBR先飛一會(huì)兒58
2.3.1 神奇好用的$和$$,令人迷惑的
section58
2.3.2 NASM簡(jiǎn)單用法60
2.3.3 請(qǐng)下一位選手MBR同學(xué)做
準(zhǔn)備60
第3章 完善MBR65
3.1 地址、section、vstart淺嘗輒止65
3.1.1 什么是地址65
3.1.2 什么是section67
3.1.3 什么是vstart68
3.2 CPU的實(shí)模式70
3.2.1 CPU的工作原理71
3.2.2 實(shí)模式下的寄存器72
3.2.3 實(shí)模式下內(nèi)存分段由來(lái)76
3.2.4 實(shí)模式下CPU內(nèi)存尋址方式78
3.2.5 棧到底是什么玩意兒81
3.2.6 實(shí)模式下的ret84
3.2.7 實(shí)模式下的call85
3.2.8 實(shí)模式下的jmp92
3.2.9 標(biāo)志寄存器flags97
3.2.10 有條件轉(zhuǎn)移99
3.2.11 實(shí)模式小結(jié)101
3.3 讓我們直接對(duì)顯示器說(shuō)點(diǎn)什么吧101
3.3.1 CPU如何與外設(shè)通信—IO
接口101
3.3.2 顯卡概述105
3.3.3 顯存、顯卡、顯示器106
3.3.4 改進(jìn)MBR,直接操作顯卡110
3.4 bochs調(diào)試方法112
3.4.1 bochs一般用法113
3.4.2 bochs調(diào)試實(shí)例118
3.5 硬盤(pán)介紹122
3.5.1 硬盤(pán)發(fā)展簡(jiǎn)史122
3.5.2 硬盤(pán)工作原理123
3.5.3 硬盤(pán)控制器端口126
3.5.4 常用的硬盤(pán)操作方法128
3.6 讓MBR使用硬盤(pán)129
3.6.1 改造MBR130
3.6.2 實(shí)現(xiàn)內(nèi)核加載器134
第4章 保護(hù)模式入門(mén)136
4.1 保護(hù)模式概述136
4.1.1 為什么要有保護(hù)模式136
4.1.2 實(shí)模式不是32位CPU,變成了
16位137
4.2 初見(jiàn)保護(hù)模式137
4.2.1 保護(hù)模式之寄存器擴(kuò)展137
4.2.2 保護(hù)模式之尋址擴(kuò)展140
4.2.3 保護(hù)模式之運(yùn)行模式反轉(zhuǎn)141
4.2.4 保護(hù)模式之指令擴(kuò)展145
4.3 全局描述符表150
4.3.1 段描述符150
4.3.2 全局描述符表GDT、局部描述
符表LDT及選擇子155
4.3.3 打開(kāi)A20地址線157
4.3.4 保護(hù)模式的開(kāi)關(guān),CR0寄存器的
PE位158
4.3.5 讓我們進(jìn)入保護(hù)模式158
4.4 處理器微架構(gòu)簡(jiǎn)介165
4.4.1 流水線166
4.4.2 亂序執(zhí)行168
4.4.3 緩存168
4.4.4 分支預(yù)測(cè)169
4.5 使用遠(yuǎn)跳轉(zhuǎn)指令清空流水線,更新段描述
符緩沖寄存器172
4.6 保護(hù)模式之內(nèi)存段的保護(hù)173
4.6.1 向段寄存器加載選擇子時(shí)的
保護(hù)173
4.6.2 代碼段和數(shù)據(jù)段的保護(hù)174
4.6.3 棧段的保護(hù)175
第5章 保護(hù)模式進(jìn)階,向內(nèi)核邁進(jìn)177
5.1 獲取物理內(nèi)存容量177
5.1.1 學(xué)習(xí)Linux獲取內(nèi)存的方法177
5.1.2 利用BIOS中斷0x15子功能
0xe820獲取內(nèi)存177
5.1.3 利用BIOS中斷0x15子功能
0xe801獲取內(nèi)存179
5.1.4 利用BIOS中斷0x15子功能
0x88獲取內(nèi)存180
5.1.5 實(shí)戰(zhàn)內(nèi)存容量檢測(cè)181
5.2 啟用內(nèi)存分頁(yè)機(jī)制,暢游虛擬空間186
5.2.1 內(nèi)存為什么要分頁(yè)186
5.2.2 一級(jí)頁(yè)表188
5.2.3 二級(jí)頁(yè)表192
5.2.4 規(guī)劃頁(yè)表之操作系統(tǒng)與用戶(hù)
進(jìn)程的關(guān)系197
5.2.5 啟用分頁(yè)機(jī)制198
5.2.6 用虛擬地址訪問(wèn)頁(yè)表204
5.2.7 快表TLB(Translation Lookaside
Buffer)簡(jiǎn)介206
5.3 加載內(nèi)核207
5.3.1 用C語(yǔ)言寫(xiě)內(nèi)核207
5.3.2 二進(jìn)制程序的運(yùn)行方法211
5.3.3 elf格式的二進(jìn)制文件213
5.3.4 elf文件實(shí)例分析218
5.3.5 將內(nèi)核載入內(nèi)存222
5.4 特權(quán)級(jí)深入淺出229
5.4.1 特權(quán)級(jí)那點(diǎn)事229
5.4.2 TSS簡(jiǎn)介230
5.4.3 CPL和DPL入門(mén)232
5.4.4 門(mén)、調(diào)用門(mén)與RPL序235
5.4.5 調(diào)用門(mén)的過(guò)程保護(hù)240
5.4.6 RPL的前世今生243
5.4.7 IO特權(quán)級(jí)248
第6章 完善內(nèi)核252
6.1 函數(shù)調(diào)用約定簡(jiǎn)介252
6.2 匯編語(yǔ)言和C語(yǔ)言混合編程256
6.2.1 淺析C庫(kù)函數(shù)與系統(tǒng)調(diào)用256
6.2.2 匯編語(yǔ)言和C語(yǔ)言共同協(xié)作259
6.3 實(shí)現(xiàn)自己的打印函數(shù)261
6.3.1 顯卡的端口控制261
6.3.2 實(shí)現(xiàn)單個(gè)字符打印265
6.3.3 實(shí)現(xiàn)字符串打印275
6.3.4 實(shí)現(xiàn)整數(shù)打印277
6.4 內(nèi)聯(lián)匯編281
6.4.1 什么是內(nèi)聯(lián)匯編281
6.4.2 匯編語(yǔ)言AT&T語(yǔ)法簡(jiǎn)介281
6.4.3 基本內(nèi)聯(lián)匯編283
6.4.4 擴(kuò)展內(nèi)聯(lián)匯編284
6.4.5 擴(kuò)展內(nèi)聯(lián)匯編之機(jī)器模式簡(jiǎn)介294
第7章 中斷298
7.1 中斷是什么,為什么要有中斷298
7.2 操作系統(tǒng)是中斷驅(qū)動(dòng)的299
7.3 中斷分類(lèi)299
7.3.1 外部中斷299
7.3.2 內(nèi)部中斷301
7.4 中斷描述符表304
7.4.1 中斷處理過(guò)程及保護(hù)306
7.4.2 中斷發(fā)生時(shí)的壓棧308
7.4.3 中斷錯(cuò)誤碼310
7.5 可編程中斷控制器8259A311
7.5.1 8259A介紹311
7.5.2 8259A的編程314
7.6 編寫(xiě)中斷處理程序319
7.6.1 從**簡(jiǎn)單的中斷處理程序
開(kāi)始319
7.6.2 改進(jìn)中斷處理程序335
7.6.3 調(diào)試實(shí)戰(zhàn):處理器進(jìn)入中斷時(shí)
壓棧出棧完整過(guò)程339
7.7 可編程計(jì)數(shù)器 定時(shí)器8253簡(jiǎn)介346
7.7.1 時(shí)鐘—給設(shè)備打拍子346
7.7.2 8253入門(mén)348
7.7.3 8253控制字349
7.7.4 8253工作方式350
7.7.5 8253初始化步驟353
7.8 提高時(shí)鐘中斷的頻率,讓中斷來(lái)得更
猛烈一些354
第8章 內(nèi)存管理系統(tǒng)357
8.1 makefile簡(jiǎn)介357
8.1.1 makefile是什么357
8.1.2 makefile基本語(yǔ)法358
8.1.3 跳到目標(biāo)處執(zhí)行360
8.1.4 偽目標(biāo)361
8.1.5 make:遞歸式推導(dǎo)目標(biāo)362
8.1.6 自定義變量與系統(tǒng)變量363
8.1.7 隱含規(guī)則365
8.1.8 自動(dòng)化變量366
8.1.9 模式規(guī)則367
8.2 實(shí)現(xiàn)assert斷言367
8.2.1 實(shí)現(xiàn)開(kāi)、關(guān)中斷的函數(shù)367
8.2.2 實(shí)現(xiàn)ASSERT370
8.2.3 通過(guò)makefile來(lái)編譯372
8.3 實(shí)現(xiàn)字符串操作函數(shù)374
8.4 位圖bitmap及其函數(shù)的實(shí)現(xiàn)377
8.4.1 位圖簡(jiǎn)介377
8.4.2 位圖的定義與實(shí)現(xiàn)378
8.5 內(nèi)存管理系統(tǒng)381
8.5.1 內(nèi)存池規(guī)劃381
8.5.2 內(nèi)存管理系統(tǒng)第 一步,分配頁(yè)
內(nèi)存388
第9章 線程398
9.1 實(shí)現(xiàn)內(nèi)核線程398
9.1.1 執(zhí)行流398
9.1.2 線程到底是什么399
9.1.3 進(jìn)程與線程的關(guān)系、區(qū)別簡(jiǎn)述402
9.1.4 進(jìn)程、線程的狀態(tài)405
9.1.5 進(jìn)程的身份證—PCB405
9.1.6 實(shí)現(xiàn)線程的兩種方式—內(nèi)核或
用戶(hù)進(jìn)程406
9.2 在內(nèi)核空間實(shí)現(xiàn)線程409
9.2.1 簡(jiǎn)單的PCB及線程棧的實(shí)現(xiàn)409
9.2.2 線程的實(shí)現(xiàn)413
9.3 核心數(shù)據(jù)結(jié)構(gòu),雙向鏈表417
9.4 多線程調(diào)度421
9.4.1 簡(jiǎn)單優(yōu)先級(jí)調(diào)度的基礎(chǔ)421
9.4.2 任務(wù)調(diào)度器和任務(wù)切換425
第 10章 輸入輸出系統(tǒng)439
10.1 同步機(jī)制——鎖439
10.1.1 排查GP異常,理解原子操作439
10.1.2 找出代碼中的臨界區(qū)、互斥、
競(jìng)爭(zhēng)條件444
10.1.3 信號(hào)量445
10.1.4 線程的阻塞與喚醒447
10.1.5 鎖的實(shí)現(xiàn)449
10.2 用鎖實(shí)現(xiàn)終端輸出452
10.3 從鍵盤(pán)獲取輸入456
10.3.1 鍵盤(pán)輸入原理簡(jiǎn)介456
10.3.2 鍵盤(pán)掃描碼457
10.3.3 8042簡(jiǎn)介463
10.3.4 測(cè)試鍵盤(pán)中斷處理程序465
10.4 編寫(xiě)鍵盤(pán)驅(qū)動(dòng)468
10.4.1 轉(zhuǎn)義字符介紹468
10.4.2 處理掃描碼469
10.5 環(huán)形輸入緩沖區(qū)476
10.5.1 生產(chǎn)者與消費(fèi)者問(wèn)題簡(jiǎn)述476
10.5.2 環(huán)形緩沖區(qū)的實(shí)現(xiàn)478
10.5.3 添加鍵盤(pán)輸入緩沖區(qū)481
10.5.4 生產(chǎn)者與消費(fèi)者實(shí)例測(cè)試482
第 11章 用戶(hù)進(jìn)程485
11.1 為什么要有任務(wù)狀態(tài)段TSS485
11.1.1 多任務(wù)的起源,很久很久
以前…… 485
11.1.2 LDT簡(jiǎn)介486
11.1.3 TSS的作用488
11.1.4 CPU原生支持的任務(wù)切換
方式492
11.1.5 現(xiàn)代操作系統(tǒng)采用的任務(wù)
切換方式495
11.2 定義并初始化TSS497
11.3 實(shí)現(xiàn)用戶(hù)進(jìn)程501
11.3.1 實(shí)現(xiàn)用戶(hù)進(jìn)程的原理501
11.3.2 用戶(hù)進(jìn)程的虛擬地址空間501
11.3.3 為進(jìn)程創(chuàng)建頁(yè)表和3特權(quán)
級(jí)棧502
11.3.4 進(jìn)入特權(quán)級(jí)3505
11.3.5 用戶(hù)進(jìn)程創(chuàng)建的流程506
11.3.6 實(shí)現(xiàn)用戶(hù)進(jìn)程—上507
11.3.7 bss簡(jiǎn)介513
11.3.8 實(shí)現(xiàn)用戶(hù)進(jìn)程—下515
11.3.9 讓進(jìn)程跑起來(lái)—用戶(hù)進(jìn)程的
調(diào)度519
11.3.10 測(cè)試用戶(hù)進(jìn)程520
第 12章 進(jìn)一步完善內(nèi)核523
12.1 Linux系統(tǒng)調(diào)用淺析523
12.2 系統(tǒng)調(diào)用的實(shí)現(xiàn)527
12.2.1 系統(tǒng)調(diào)用實(shí)現(xiàn)框架527
12.2.2 增加0x80號(hào)中斷描述符527
12.2.3 實(shí)現(xiàn)系統(tǒng)調(diào)用接口528
12.2.4 增加0x80號(hào)中斷處理例程528
12.2.5 初始化系統(tǒng)調(diào)用和實(shí)現(xiàn)
sys_getpid530
12.2.6 添加系統(tǒng)調(diào)用getpid531
12.2.7 在用戶(hù)進(jìn)程中的系統(tǒng)調(diào)用532
12.2.8 系統(tǒng)調(diào)用之棧傳遞參數(shù)534
12.3 讓用戶(hù)進(jìn)程“說(shuō)話”536
12.3.1 可變參數(shù)的原理536
12.3.2 實(shí)現(xiàn)系統(tǒng)調(diào)用write538
12.3.3 實(shí)現(xiàn)printf539
12.3.4 完善printf542
12.4 完善堆內(nèi)存管理545
12.4.1 malloc底層原理545
12.4.2 底層初始化548
12.4.3 實(shí)現(xiàn)sys_malloc550
12.4.4 內(nèi)存的釋放555
12.4.5 實(shí)現(xiàn)sys_free558
12.4.6 實(shí)現(xiàn)系統(tǒng)調(diào)用malloc和free562
第 13章 編寫(xiě)硬盤(pán)驅(qū)動(dòng)程序566
13.1 硬盤(pán)及分區(qū)表566
13.1.1 創(chuàng)建從盤(pán)及獲取安裝的
磁盤(pán)數(shù)566
13.1.2 創(chuàng)建磁盤(pán)分區(qū)表567
13.1.3 磁盤(pán)分區(qū)表淺析571
13.2 編寫(xiě)硬盤(pán)驅(qū)動(dòng)程序578
13.2.1 硬盤(pán)初始化578
13.2.2 實(shí)現(xiàn)thread_yield和idle線程582
13.2.3 實(shí)現(xiàn)簡(jiǎn)單的休眠函數(shù)584
13.2.4 完善硬盤(pán)驅(qū)動(dòng)程序585
13.2.5 獲取硬盤(pán)信息,掃描分區(qū)表590
第 14章 文件系統(tǒng)595
14.1 文件系統(tǒng)概念簡(jiǎn)介595
14.1.1 inode、間接塊索引表、文件
控制塊FCB簡(jiǎn)介595
14.1.2 目錄項(xiàng)與目錄簡(jiǎn)介597
14.1.3 超級(jí)塊與文件系統(tǒng)布局599
14.2 創(chuàng)建文件系統(tǒng)601
14.2.1 創(chuàng)建超級(jí)塊、i結(jié)點(diǎn)、目錄項(xiàng)601
14.2.2 創(chuàng)建文件系統(tǒng)603
14.2.3 掛載分區(qū)609
14.3 文件描述符簡(jiǎn)介612
14.3.1 文件描述符原理612
14.3.2 文件描述符的實(shí)現(xiàn)614
14.4 文件操作相關(guān)的基礎(chǔ)函數(shù)615
14.4.1 inode操作有關(guān)的函數(shù)616
14.4.2 文件相關(guān)的函數(shù)620
14.4.3 目錄相關(guān)的函數(shù)623
14.4.4 路徑解析相關(guān)的函數(shù)628
14.4.5 實(shí)現(xiàn)文件檢索功能630
14.5 創(chuàng)建文件633
14.5.1 實(shí)現(xiàn)file_create633
14.5.2 實(shí)現(xiàn)sys_open636
14.5.3 在文件系統(tǒng)上創(chuàng)建第 1個(gè)
文件639
14.6 文件的打開(kāi)與關(guān)閉640
14.6.1 文件的打開(kāi)640
14.6.2 文件的關(guān)閉642
14.7 實(shí)現(xiàn)文件寫(xiě)入643
14.7.1 實(shí)現(xiàn)file_write643
14.7.2 改進(jìn)sys_write及write系統(tǒng)
調(diào)用648
14.7.3 把數(shù)據(jù)寫(xiě)入文件650
14.8 讀取文件651
14.8.1 實(shí)現(xiàn)file_read651
14.8.2 實(shí)現(xiàn)sys_read與功能驗(yàn)證653
14.9 實(shí)現(xiàn)文件讀寫(xiě)指針定位功能655
14.10 實(shí)現(xiàn)文件刪除功能657
14.10.1 回收inode657
14.10.2 刪除目錄項(xiàng)660
14.10.3 實(shí)現(xiàn)sys_unlink與功能驗(yàn)證663
14.11 創(chuàng)建目錄665
14.11.1 實(shí)現(xiàn)sys_mkdir創(chuàng)建目錄666
14.11.2 創(chuàng)建目錄功能驗(yàn)證669
14.12 遍歷目錄671
14.12.1 打開(kāi)目錄和關(guān)閉目錄671
14.12.2 讀取1個(gè)目錄項(xiàng)673
14.12.3 實(shí)現(xiàn)sys_readdir及sys_
rewinddir674
14.13 刪除目錄676
14.13.1 刪除目錄與判斷空目錄676
14.13.2 實(shí)現(xiàn)sys_rmdir及功能驗(yàn)證677
14.14 任務(wù)的工作目錄679
14.14.1 顯示當(dāng)前工作目錄的原理及
基礎(chǔ)代碼679
14.14.2 實(shí)現(xiàn)sys_getcwd681
14.14.3 實(shí)現(xiàn)sys_chdir改變工作目錄683
14.15 獲得文件屬性684
14.15.1 ls命令的幕后功臣684
14.15.2 實(shí)現(xiàn)sys_stat685
第 15章 系統(tǒng)交互687
15.1 fork的原理與實(shí)現(xiàn)687
15.1.1 什么是fork687
15.1.2 fork的實(shí)現(xiàn)689
15.1.3 添加fork系統(tǒng)調(diào)用與實(shí)現(xiàn)init
進(jìn)程695
15.2 添加read系統(tǒng)調(diào)用,獲取鍵盤(pán)輸入696
15.3 添加putchar、clear系統(tǒng)調(diào)用697
15.4 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的shell699
15.4.1 shell雛形699
15.4.2 添加Ctrl+u和Ctrl+l快捷鍵701
15.4.3 解析鍵入的字符703
15.4.4 添加系統(tǒng)調(diào)用705
15.4.5 路徑解析轉(zhuǎn)換708
15.4.6 實(shí)現(xiàn)ls、cd、mkdir、ps、rm等
命令712
15.5 加載用戶(hù)進(jìn)程717
15.5.1 實(shí)現(xiàn)exec717
15.5.2 讓shell支持外部命令723
15.5.3 加載硬盤(pán)上的用戶(hù)程序執(zhí)行724
15.5.4 使用戶(hù)進(jìn)程支持參數(shù)727
15.6 實(shí)現(xiàn)系統(tǒng)調(diào)用wait和exit731
15.6.1 wait和exit的作用731
15.6.2 孤兒進(jìn)程和僵尸進(jìn)程732
15.6.3 一些基礎(chǔ)代碼733
15.6.4 實(shí)現(xiàn)wait和exit737
15.6.5 實(shí)現(xiàn)cat命令741
15.7 管道745
15.7.1 管道的原理745
15.7.2 管道的設(shè)計(jì)747
15.7.3 管道的實(shí)現(xiàn)748
15.7.4 利用管道實(shí)現(xiàn)進(jìn)程間通信752
15.7.5 在shell中支持管道754
參考文獻(xiàn)760
操作系統(tǒng)真象還原 作者簡(jiǎn)介
鄭鋼,畢業(yè)于北京大學(xué),前百度運(yùn)維高 級(jí)工程師,對(duì)操作系統(tǒng)有深入的研究。好運(yùn)動(dòng),喜鉆研,熱衷于嘗試前沿技術(shù),樂(lè)于分享學(xué)習(xí)成果。
- >
煙與鏡
- >
我從未如此眷戀人間
- >
大紅狗在馬戲團(tuán)-大紅狗克里弗-助人
- >
有舍有得是人生
- >
人文閱讀與收藏·良友文學(xué)叢書(shū):一天的工作
- >
史學(xué)評(píng)論
- >
名家?guī)阕x魯迅:故事新編
- >
二體千字文