本書是《計算機操作系統(tǒng)》一書的配套實驗教材,分為兩篇:基礎實驗篇和進階實驗篇;A實驗篇與“操作系統(tǒng)理論課程”配套,作為課程的課內(nèi)實驗,用于對操作系統(tǒng)基本原理和算法進行驗證與模擬,主要內(nèi)容包括實驗環(huán)境搭建與使用、進程控制與進程調度、進程通信與進程同步、內(nèi)存管理、簡單文件系統(tǒng)設計等。這部分實驗內(nèi)容不涉及操作系統(tǒng)內(nèi)核,相關實驗的開展僅須用到Linux操作系統(tǒng)以及C語言編程的相關知識。進階實驗篇是為部分學校開設的“操作系統(tǒng)實踐課程”服務的,內(nèi)容包括Linux內(nèi)核編譯、系統(tǒng)調用、虛擬內(nèi)存管理、內(nèi)核模塊編寫、文件系統(tǒng)設計、設備管理等。這部分實驗內(nèi)容以Linux內(nèi)核為實驗對象,旨在幫助讀者理解操作系統(tǒng)的基本原理、內(nèi)部機制和體系結構,進而設計并生成能令自己滿意的操作系統(tǒng)。
本書可作為計算機類、電子信息類相關專業(yè)操作系統(tǒng)課程的補充教材,也可供Linux操作系統(tǒng)愛好者參考使用。
1. 分層構建知識體系,合理編排實驗內(nèi)容
本書以Linux內(nèi)核為實驗對象,共分兩篇:第一篇為基礎實驗篇,適用于課內(nèi)實驗;第二篇為進階實驗篇,適用于獨立的實驗課程(或課程設計)。各實驗操作步驟詳細,結果分析嚴謹,且附有實驗思考題,以學練思相結合的模式扎實提升讀者的綜合素養(yǎng)。
2. 錄制優(yōu)質微課視頻,支持隨時隨地自學
編者針對書中各實驗所涉及的重難知識點、關鍵操作步驟或實驗結果,錄制了優(yōu)質的微課視頻,以幫助讀者宏觀把握知識體系,深入理解實驗內(nèi)容,獨立開展實踐學習。
3. 配套立體化教輔資源,全方位服務教師教學
編者不僅細致介紹了各實驗的相關背景知識,還為院校教師建設了與本書相配套的實驗指導PPT、源代碼、實驗大綱、實驗結果說明、軟件安裝包等教輔資源,以全方位服務教師教學。
湯小丹(主審):
江蘇省靖江市人,杭州師范大學教授;從教數(shù)十年,主講“操作系統(tǒng)”“操作系統(tǒng)實踐”等課程,編寫了《現(xiàn)代操作系統(tǒng)》《操作系統(tǒng)教程》等多部優(yōu)秀教材;經(jīng)典教材《計算機操作系統(tǒng)》新版主編。
王紅玲(主編):
博士,蘇州大學計算機科學與技術學院副教授(曾任軟件工程系主任),主要研究方向為自然語言處理、信息檢索等,至今已發(fā)表論文30余篇;長期承擔“操作系統(tǒng)(雙語)”“Linux操作系統(tǒng)”等課程的教學工作,參與編寫精品教材《計算機操作系統(tǒng)(慕課版)》;主講的“操作系統(tǒng)”慕課被評為國家精品。
第 一篇 基礎實驗篇
第 1章 操作系統(tǒng)實驗體系介紹 2
1.1 操作系統(tǒng)實驗的目的 2
1.2 操作系統(tǒng)實驗體系的構成 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章 進程控制與進程調度 23
3.1 Linux進程介紹 23
3.2 Linux進程調度介紹 24
3.3進程控制函數(shù)介紹 25
3.4 實驗3.1:進程創(chuàng)建 27
3.5 實驗3.2:進程調度算法的模擬 29
第4章 進程通信與進程同步 35
4.1 Linux進程通信機制介紹 35
4.2 Linux進程通信相關函數(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)設計 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)調用 95
8.1 系統(tǒng)調用基礎 95
8.2 Linux系統(tǒng)調用添加簡介 95
8.3 實驗8:添加一個系統(tǒng)調用 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)建一個設備文件節(jié)點 114
第 11章 文件系統(tǒng)設計 121
11.1 Linux文件系統(tǒng)概述 121
11.2 虛擬文件系統(tǒng)VFS 121
11.3 EXT2文件系統(tǒng) 122
11.4 實驗11:設計一個簡單文件系統(tǒng) 123
第 12章 設備管理 139
12.1 Linux設備管理介紹 139
12.2 設備驅動原理 139
12.3 實驗12.1:編寫字符設備驅動程序 140
12.4 實驗12.2:編寫塊設備驅動程序 144