操作系統(tǒng)設(shè)計與實現(xiàn)
定 價:36 元
- 作者:陳文智主編
- 出版時間:2017/2/1
- ISBN:9787040467529
- 出 版 社:高等教育出版社
- 中圖法分類:TP316
- 頁碼:288
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書為“基于系統(tǒng)能力培養(yǎng)的計算機(jī)專業(yè)課程建設(shè)研究”項目規(guī)劃教材。本書定位于初學(xué)者的動手實踐類操作系統(tǒng)教材,帶領(lǐng)讀者一步步從無到有,實現(xiàn)一個近1萬行的小型內(nèi)核Lcore。全書共11章。其中,第1章簡單回顧操作系統(tǒng)的基本原理;第2章將從操作系統(tǒng)五大模塊入手設(shè)計Lcore系統(tǒng);第3章將為Lcore添加VGA顯示功能;第4章從時鐘中斷入手討論如何在內(nèi)核中實現(xiàn)對中斷進(jìn)行處理;第5章實現(xiàn)鍵盤輸入功能;第6章分別實現(xiàn)內(nèi)存管理系統(tǒng)的Bootmem、Buddy、Slub分配器;第7章介紹進(jìn)程管理初始化、進(jìn)程創(chuàng)建、頁異常處理和進(jìn)程調(diào)度;第8章將實現(xiàn)一個能夠在Lcore內(nèi)核中運(yùn)行的類FAT32文件系統(tǒng),同時也涉及如何編寫一個SD卡的小驅(qū)動;第9章實現(xiàn)系統(tǒng)調(diào)用模塊;第10章開發(fā)一款專屬、簡單的shell;第11章總結(jié)全文。附錄是硬件實驗平臺手冊,說明平臺的有關(guān)使用細(xì)節(jié),以便讀者在開發(fā)過程中隨時查閱。本書可作為本科計算機(jī)類專業(yè)操作系統(tǒng)課程配套的實踐教材,也可供有關(guān)技術(shù)人員參考。
陳文智,浙江大學(xué)教授,博士生導(dǎo)師。主要研究方向為計算機(jī)系統(tǒng)級軟件、計算機(jī)網(wǎng)絡(luò)和安全、嵌入式系統(tǒng)及應(yīng)用、計算機(jī)體系結(jié)構(gòu)。承擔(dān)國家自然基金、國家“863”重大項目、核高基重點項目、科技支撐計劃項目、科技重大專項等科研項目10余項,在高水平學(xué)術(shù)期刊或會議發(fā)表論文50余篇,獲國家發(fā)明專利授權(quán)20余項。主講“嵌入式系統(tǒng)”“操作系統(tǒng)”“計算機(jī)體系結(jié)構(gòu)”“軟件工程”“計算機(jī)系統(tǒng)綜合”等課程。曾獲浙江省科技進(jìn)步一等獎、浙江省教學(xué)成果一等獎。2013年獲全國寶鋼**教師獎。
第1章 操作系統(tǒng)開發(fā)介紹
1.1 操作系統(tǒng)原理
1.1.1 進(jìn)程管理
1.1.2 內(nèi)存管理
1.1.3 文件管理
1.1.4 I/O設(shè)備管理
1.1.5 用戶接口
1.2 實驗平臺簡介
1.2.1 物理實驗平臺
1.2.2 計算機(jī)硬件體系結(jié)構(gòu)
1.2.3 QS模擬器
1.2.4 平臺指令集
1.3 開發(fā)環(huán)境搭建
1.3.1 交叉編譯工具鏈
1.3.2 QS模擬器使用
1.3.3 其他工具
小結(jié)
第2章 系統(tǒng)設(shè)計與初始化
2.1 Lcore整體設(shè)計
2.1.1 進(jìn)程管理
2.1.2 內(nèi)存管理
2.1.3 文件系統(tǒng)
2.1.4 I/O設(shè)備
2.1.5 用戶接口
2.2 建立初始化框架
2.2.1 init_Kernel函數(shù)
2.2.2 中斷異常人口
2.2.3 內(nèi)核頁表初始化
2.2.4 其他初始化
小結(jié)
第3章 VGA顯示功能
3.1 VGA初始化
3.1.1 實驗平臺VGA介紹
3.1.2 實現(xiàn)VGA初始化
3.2 實現(xiàn)put_char函數(shù)
3.2.1 scroll_screen函數(shù)
3.2.2 put_char_ex函數(shù)
3.2.3 pu_char函數(shù)
3.3 實現(xiàn)printk函數(shù)
3.3.1 可變參數(shù)函數(shù)
3.3.2 相關(guān)子函數(shù)的實現(xiàn)
3.3.3 printk函數(shù)的實現(xiàn)
小結(jié)
第4章 處理時鐘中斷
4.1 硬件的外部中斷
4.1.1 機(jī)制剖析
4.1.2 相關(guān)硬件接口
4.2 中斷處理注冊機(jī)制
4.2.1 相關(guān)數(shù)據(jù)結(jié)構(gòu)
4.2.2 中斷處理人口
4.2.3 中斷處理注冊
4.3 時鐘中斷實現(xiàn)
4.3.1 時鐘中斷注冊
4.3.2 顯示信息規(guī)劃
4.3.3 系統(tǒng)時間顯示
小結(jié)
第5章 鍵盤輸入功能
5.1 鍵盤中斷處理
5.1.1 相關(guān)硬件接口
5.1.2 實現(xiàn)鍵盤中斷處理
5.2 鍵盤掃描碼解析
5.2.1 鍵盤掃描碼
5.2.2 解析掃描碼
小結(jié)
第6章 物理內(nèi)存管理
6.1 內(nèi)存管理策略
6.2 Bootmem管理實現(xiàn)
6.2.1 Bootmem數(shù)據(jù)結(jié)構(gòu)
6.2.2 Bootmem初始化
6.3 Buddy系統(tǒng)實現(xiàn)
6.3.1 Buddy系統(tǒng)數(shù)據(jù)結(jié)構(gòu)
6.3.2 Buddy系統(tǒng)初始化
6.3.3 Buddy系統(tǒng)內(nèi)存釋放
6.3.4 Buddy系統(tǒng)內(nèi)存分配
6.4 S1ub系統(tǒng)實現(xiàn)
6.4.1 Slub系統(tǒng)數(shù)據(jù)結(jié)構(gòu)
6.4.2 Slub系統(tǒng)初始化
6.4.3 Slub系統(tǒng)分配內(nèi)存
6.4.4 Slub系統(tǒng)釋放內(nèi)存
小結(jié)
第7章 實現(xiàn)進(jìn)程管理
7.1 進(jìn)程管理初始化
7.1.1 進(jìn)程數(shù)據(jù)結(jié)構(gòu)
7.1.2 進(jìn)程初始化
7.2 進(jìn)程創(chuàng)建
7.3 頁異常處理
7.3.1 缺頁異常處理
7.3.2 寫保護(hù)異常
7.4 進(jìn)程調(diào)度
7.4.1 調(diào)度初始化
7.4.2 執(zhí)行調(diào)度
小結(jié)
第8章 實現(xiàn)文件系統(tǒng)
8.1 SD卡驅(qū)動程序?qū)崿F(xiàn)
8.1.1 SD卡通信方式簡介
8.1.2 實現(xiàn)SPI通信
8.1.3 指令處理
8.1.4 實現(xiàn)SD卡初始化
8.1.5 實現(xiàn)SD卡讀操作
8.1.6 實現(xiàn)SD卡寫操作
8.2 文件系統(tǒng)實現(xiàn)
8.2.1 文件控制塊的實現(xiàn)
8.2.2 緩存機(jī)制的實現(xiàn)
8.2.3 FAT表
8.2.4 文件系統(tǒng)初始化
8.2.5 打開文件
8.2.6 關(guān)閉文件
8.2.7 文件讀取
8.2.8 文件寫入
8.2.9 創(chuàng)建文件
小結(jié)
第9章 添加系統(tǒng)調(diào)用
9.1 系統(tǒng)調(diào)用框架
9.1.1 系統(tǒng)調(diào)用人口
9.1.2 系統(tǒng)調(diào)用初始化
9.1.3 系統(tǒng)調(diào)用定義
9.2 添加系統(tǒng)調(diào)用
9.2.1 進(jìn)程管理相關(guān)
9.2.2 輸入顯示相關(guān)
9.2.3 文件系統(tǒng)相關(guān)
小結(jié)
第10章 實現(xiàn)簡單shell
10.1 實現(xiàn)用戶態(tài)庫
10.2 實現(xiàn)shell程序
10.2.1 解析程序
10.2.2 內(nèi)建命令
10.3 其他基本程序
10.3.1 ls命令
10.3.2 ps命令
10.3.3 kill命令
小結(jié)
結(jié)束語
附錄A 實驗平臺手冊
A.1 實驗平臺詳細(xì)介紹
A.1.1 Sword實驗平臺
A.1.2 物理地址分配
A.1.3 CPO寄存器組
A.1.4 中斷處理
A.1.5 MMU功能
A.1.6 外設(shè)接口
A.2 實驗平臺指令集
A.2.1 算術(shù)運(yùn)算指令
A.2.2 邏輯運(yùn)算指令
A.2.3 移位指令
A.2.4 讀寫指令
A.2.5 跳轉(zhuǎn)指令
A.2.6 自陷指令
A.2.7 CP指令
A.3 實驗平臺寄存器
A.3.1 通用寄存器
A.3.2 CPO寄存器