本書是《計算機操作系統(tǒng)》一書的配套實驗教材,分為兩篇:基礎(chǔ)實驗篇和進階實驗篇;A(chǔ)實驗篇與“操作系統(tǒng)理論課程”配套,作為課程的課內(nèi)實驗,用于對操作系統(tǒng)基本原理和算法進行驗證與模擬,主要內(nèi)容包括實驗環(huán)境搭建與使用、進程控制與進程調(diào)度、進程通信與進程同步、內(nèi)存管理、簡單文件系統(tǒng)設(shè)計等。這部分實驗內(nèi)容不涉及操作系統(tǒng)內(nèi)核,相關(guān)實驗的開展僅須用到Linux操作系統(tǒng)以及C語言編程的相關(guān)知識。進階實驗篇是為部分學(xué)校開設(shè)的“操作系統(tǒng)實踐課程”服務(wù)的,內(nèi)容包括Linux內(nèi)核編譯、系統(tǒng)調(diào)用、虛擬內(nèi)存管理、內(nèi)核模塊編寫、文件系統(tǒng)設(shè)計、設(shè)備管理等。這部分實驗內(nèi)容以Linux內(nèi)核為實驗對象,旨在幫助讀者理解操作系統(tǒng)的基本原理、內(nèi)部機制和體系結(jié)構(gòu),進而設(shè)計并生成能令自己滿意的操作系統(tǒng)。
本書可作為計算機類、電子信息類相關(guān)專業(yè)操作系統(tǒng)課程的補充教材,也可供Linux操作系統(tǒng)愛好者參考使用。
1. 分層構(gòu)建知識體系,合理編排實驗內(nèi)容
本書以Linux內(nèi)核為實驗對象,共分兩篇:第一篇為基礎(chǔ)實驗篇,適用于課內(nèi)實驗;第二篇為進階實驗篇,適用于獨立的實驗課程(或課程設(shè)計)。各實驗操作步驟詳細,結(jié)果分析嚴(yán)謹(jǐn),且附有實驗思考題,以學(xué)練思相結(jié)合的模式扎實提升讀者的綜合素養(yǎng)。
2. 錄制優(yōu)質(zhì)微課視頻,支持隨時隨地自學(xué)
編者針對書中各實驗所涉及的重難知識點、關(guān)鍵操作步驟或?qū)嶒灲Y(jié)果,錄制了優(yōu)質(zhì)的微課視頻,以幫助讀者宏觀把握知識體系,深入理解實驗內(nèi)容,獨立開展實踐學(xué)習(xí)。
3. 配套立體化教輔資源,全方位服務(wù)教師教學(xué)
編者不僅細致介紹了各實驗的相關(guān)背景知識,還為院校教師建設(shè)了與本書相配套的實驗指導(dǎo)PPT、源代碼、實驗大綱、實驗結(jié)果說明、軟件安裝包等教輔資源,以全方位服務(wù)教師教學(xué)。
湯小丹(主審):
江蘇省靖江市人,杭州師范大學(xué)教授;從教數(shù)十年,主講“操作系統(tǒng)”“操作系統(tǒng)實踐”等課程,編寫了《現(xiàn)代操作系統(tǒng)》《操作系統(tǒng)教程》等多部優(yōu)秀教材;經(jīng)典教材《計算機操作系統(tǒng)》新版主編。
王紅玲(主編):
博士,蘇州大學(xué)計算機科學(xué)與技術(shù)學(xué)院副教授(曾任軟件工程系主任),主要研究方向為自然語言處理、信息檢索等,至今已發(fā)表論文30余篇;長期承擔(dān)“操作系統(tǒng)(雙語)”“Linux操作系統(tǒng)”等課程的教學(xué)工作,參與編寫精品教材《計算機操作系統(tǒng)(慕課版)》;主講的“操作系統(tǒng)”慕課被評為國家精品。
第 一篇 基礎(chǔ)實驗篇
第 1章 操作系統(tǒng)實驗體系介紹 2
1.1 操作系統(tǒng)實驗的目的 2
1.2 操作系統(tǒng)實驗體系的構(gòu)成 2
1.3 實驗報告的基本要求 3
1.4 實驗報告樣例 3
第 2章 實驗環(huán)境搭建與使用 8
2.1 Linux系統(tǒng)安裝 8
2.2 Linux系統(tǒng)的基本操作 10
2.3 Linux下編寫C程序 15
2.4 實驗2.1:Linux常用命令使用 19
2.5 實驗2.2:Linux下C程序編寫 20
第3章 進程控制與進程調(diào)度 23
3.1 Linux進程介紹 23
3.2 Linux進程調(diào)度介紹 24
3.3進程控制函數(shù)介紹 25
3.4 實驗3.1:進程創(chuàng)建 27
3.5 實驗3.2:進程調(diào)度算法的模擬 29
第4章 進程通信與進程同步 35
4.1 Linux進程通信機制介紹 35
4.2 Linux進程通信相關(guān)函數(shù)介紹 37
4.3 實驗4.1:兩個進程間相互通信 40
4.4 實驗4.2:進程同步實驗 44
第5章 內(nèi)存管理 47
5.1 Linux內(nèi)存管理簡介 47
5.2 內(nèi)存操作函數(shù)介紹 47
5.3 實驗5.1:動態(tài)分區(qū)分配方式的模擬 48
5.4 實驗5.2:頁面置換算法的模擬 57
第6章 簡單文件系統(tǒng)設(shè)計 63
6.1 Linux文件目錄簡介 63
6. 2 文件操作函數(shù)介紹 64
6.3 實驗6.1:文件備份實驗 65
6.4 實驗6.2:簡單文件系統(tǒng)模擬 69
第二篇 進階實驗篇
第7章 Linux內(nèi)核編譯 89
7.1 Linux內(nèi)核簡介 89
7.2 內(nèi)核編譯方法 90
7.3 實驗7:編譯Linux內(nèi)核 91
第8章 系統(tǒng)調(diào)用 95
8.1 系統(tǒng)調(diào)用基礎(chǔ) 95
8.2 Linux系統(tǒng)調(diào)用添加簡介 95
8.3 實驗8:添加一個系統(tǒng)調(diào)用 96
第9章 虛擬內(nèi)存管理 102
9.1 Linux虛擬內(nèi)存管理 102
9.2 實驗9.1:統(tǒng)計系統(tǒng)缺頁次數(shù) 102
9.3 實驗9.2:統(tǒng)計一段時間內(nèi)的缺頁次數(shù) 105
第 10章 內(nèi)核模塊編寫 112
10.1 Linux內(nèi)核模塊介紹 112
10.2 內(nèi)核模塊使用 112
10.3 實驗10.1:編寫一個簡單的內(nèi)核模塊 112
10.4 實驗10.2:利用內(nèi)核模塊創(chuàng)建一個設(shè)備文件節(jié)點 114
第 11章 文件系統(tǒng)設(shè)計 121
11.1 Linux文件系統(tǒng)概述 121
11.2 虛擬文件系統(tǒng)VFS 121
11.3 EXT2文件系統(tǒng) 122
11.4 實驗11:設(shè)計一個簡單文件系統(tǒng) 123
第 12章 設(shè)備管理 139
12.1 Linux設(shè)備管理介紹 139
12.2 設(shè)備驅(qū)動原理 139
12.3 實驗12.1:編寫字符設(shè)備驅(qū)動程序 140
12.4 實驗12.2:編寫塊設(shè)備驅(qū)動程序 144