目 錄
序
前言
教學(xué)建議
**部分 基 礎(chǔ) 知 識
第1章 虛擬機及其使用概述2
1.1 虛擬機軟件VMware概述2
1.2 搭建實踐環(huán)境2
1.3 在Windows下安裝VMware2
1.4 VMware下Ubuntu的安裝配置6
1.5 虛擬機下的Linux與宿主機Windows的文件訪問14
1.5.1 虛擬機下Ubuntu的網(wǎng)絡(luò)配置及FTP使用14
1.5.2 Ubuntu虛擬機下開啟Telnet服務(wù)15
1.5.3 Ubuntu虛擬機下開啟Samba服務(wù)16
本章小結(jié)17
第2章 Linux與Windows的分析與比較18
2.1 Linux系統(tǒng)特性18
2.1.1 Linux內(nèi)核18
2.1.2 Linux系統(tǒng)軟硬件資源的組織19
2.1.3 Linux文件系統(tǒng)19
2.2 Windows下的cmd與Linux下的shell20
2.2.1 終端和控制臺的概念20
2.2.2 Windows下cmd與Linux下shell的比較20
2.3 Linux和Windows基本命令與格式20
2.3.1 Windows與Linux基本命令20
2.3.2 命令格式介紹和幫助查詢21
2.4 Linux和Windows 下C語言編程環(huán)境及編譯器22
本章小結(jié)22
第3章 C語言知識23
3.1 C語言基本語法回顧23
3.1.1 分析一個簡單的C程序23
3.1.2 數(shù)據(jù)類型23
3.1.3 變量與常量25
3.1.4 運算符 26
3.1.5 函數(shù)27
3.2 指針29
3.2.1 指針基礎(chǔ)29
3.2.2 指針變量的操作29
3.2.3 指針與函數(shù)30
3.2.4 數(shù)組與指針31
3.3 C標(biāo)準(zhǔn)庫31
本章小結(jié)32
第4章 文件I/O33
4.1 系統(tǒng)調(diào)用與C語言標(biāo)準(zhǔn)庫33
4.2 Linux文件系統(tǒng)調(diào)用函數(shù)34
4.3 C語言標(biāo)準(zhǔn)庫中的文件I/O函數(shù)37
本章小結(jié)40
第5章 系統(tǒng)進(jìn)程編程基礎(chǔ)41
5.1 main函數(shù)與命令行參數(shù)41
5.2 進(jìn)程終止41
5.3 Linux中的進(jìn)程控制函數(shù)42
5.3.1 fork函數(shù)42
5.3.2 wait和waitpid函數(shù)42
5.3.3 exec函數(shù)43
5.4 進(jìn)程創(chuàng)建及終止函數(shù)44
5.4.1 CreateProcess函數(shù)44
5.4.2 ExitProcess函數(shù)45
本章小結(jié)46
第6章 C程序調(diào)試技術(shù)47
6.1 Windows下基于VC 6.0和VS 2005的調(diào)試47
6.2 GDB簡介及Linux下的命令行調(diào)試53
6.3 Linux下可視化界面調(diào)試范例55
本章小結(jié)58
第二部分 核 心 實 驗
第7章 Linux編程基礎(chǔ)實驗60
7.1 實驗?zāi)康?0
7.2 實驗準(zhǔn)備60
7.3 實驗基本知識及原理60
7.4 實驗說明62
7.5 實驗內(nèi)容62
7.6 實驗總結(jié)64
7.7 實驗報告及小組任務(wù)64
7.8 參考代碼65
第8章 作業(yè)調(diào)度實驗66
8.1 實驗?zāi)康?6
8.2 實驗準(zhǔn)備66
8.3 實驗基本知識及原理66
8.4 實驗說明67
8.5 實驗內(nèi)容68
8.6 實驗總結(jié)69
8.7 實驗報告及小組任務(wù)69
8.8 參考代碼70
第9章 系統(tǒng)調(diào)用及進(jìn)程控制實驗74
9.1 實驗?zāi)康?4
9.2 實驗準(zhǔn)備74
9.3 實驗基本知識及原理74
9.4 實驗說明77
9.5 實驗內(nèi)容80
9.6 實驗總結(jié)80
9.7 實驗報告及小組任務(wù)80
9.8 參考代碼81
第10章 同步與互斥實驗85
10.1 實驗?zāi)康?5
10.2 實驗準(zhǔn)備85
10.3 實驗基本知識及原理85
10.4 實驗說明86
10.5 實驗內(nèi)容88
10.6 實驗總結(jié)89
10.7 實驗報告及小組任務(wù)89
10.8 參考代碼89
第11章 銀行家算法實驗101
11.1 實驗?zāi)康?01
11.2 實驗準(zhǔn)備101
11.3 實驗基本知識及原理101
11.4 實驗說明102
11.5 實驗內(nèi)容103
11.6 實驗總結(jié)104
11.7 實驗報告及小組任務(wù)104
11.8 參考代碼105
第12章 內(nèi)存管理實驗111
12.1 實驗?zāi)康?11
12.2 實驗準(zhǔn)備111
12.3 實驗知識及基本原理111
12.4 實驗說明114
12.5 實驗內(nèi)容117
12.6 實驗總結(jié)117
12.7 實驗報告及小組任務(wù)117
12.8 參考代碼117
第13章 磁盤調(diào)度實驗124
13.1 實驗?zāi)康?24
13.2 實驗準(zhǔn)備124
13.3 實驗知識及基本原理124
13.4 實驗說明126
13.5 實驗內(nèi)容127
13.6 實驗總結(jié)128
13.7 實驗報告及小組任務(wù)128
13.8 參考代碼128
第14章 文件系統(tǒng)實驗132
14.1 實驗?zāi)康?32
14.2 實驗準(zhǔn)備132
14.3 實驗原理132
14.4 實驗說明135
14.5 實驗內(nèi)容137
14.6 實驗總結(jié)137
14.7 實驗報告及小組任務(wù)137
14.8 參考代碼137
第三部分 Nachos源碼分析
第15章 Nachos系統(tǒng)簡介146
15.1 Nachos簡介146
15.2 Nachos的運行原理146
15.3 系統(tǒng)源碼146
15.4 系統(tǒng)的編譯與測試147
第16章 Nachos系統(tǒng)調(diào)用149
16.1 以Add為例分析系統(tǒng)調(diào)用149
16.2 系統(tǒng)調(diào)用流程及相關(guān)源文件分析153
第17章 Nachos系統(tǒng)的同步與互斥156
17.1 同步與互斥機制156
17.2 信號量156
17.3 鎖157
17.4 條件變量158
17.5 案例分析:同步磁盤的實現(xiàn)159
第18章 Nachos線程調(diào)度161
18.1 線程結(jié)構(gòu)分析161
18.2 線程調(diào)度類分析164
18.3 線程調(diào)度作業(yè)166
18.4 測試結(jié)果167
第19章 Nachos文件系統(tǒng)168
19.1 Nachos文件系統(tǒng)相關(guān)源碼說明168
19.2 Nachos文件系統(tǒng)類分析168
19.3 文件系統(tǒng)其他相關(guān)類172
附錄A 實驗報告模板175
參考文獻(xiàn)193