|
|
|
|
|
|
|
|
ISBN |
9787302614630 |
定价 |
RMB99.00 |
售价 |
RM108.90 |
优惠价 |
RM76.23 * (-30%)
|
作者 |
高聯雄
|
出版社 |
清華大學出版社
|
出版日期 |
2022-11-01 |
装订 |
平裝. 單色印刷. 386 页. 26. |
库存量 |
購買後立即進貨 下单时可选择“空运”或“海运”(空运和海运需独立下单)。空运费每本书/CD是RM28.00。 空运需时8-11个工作天,海运需时约30个工作天。 (以上预计时间不包括出版社调货的时间以及尚未出版的预购商品) 库存有限或需要调货,订购时间可能延长。如无法订购则将通知进行退款。 |
|
我要订购 有现货时通知我 |
|
放入下次购买清单 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
購買中國簡體書籍請注意:
1. 因裝幀品質及貨運條件未臻完善,中國簡體書可能有出現磨痕、凹痕、折痕等問題,故簡體字館除封面破損、內頁脫落、缺頁等較嚴重的狀態外,其餘所有商品將正常出貨。
|
|
|
|
|
|
|
|
|
目錄
第1章 xv6概述
1.1 xv6的前身UNIX
1.1.1 UNIX發展簡史
1.1.2 UNIX家族
1.2 xv6的誕生
1.3 xv6的源碼與文檔
第2章 xv6作業系統結構
2.1 xv6體系結構
2.1.1 硬體與內核
2.1.2 介面
2.1.3 內核態與用戶態
2.2 進程管理
2.3 虛擬記憶體、檔與I/O設備驅動
2.4 系統調用、API與內核函數
2.4.1 系統調用
2.4.2 API
2.4.3 內核函數
第3章 xv6的軟體環境
3.1 xv6的C語言技巧
3.1.1 static
3.1.2 inline
3.1.3 函數指標
3.1.4 函數指標示例
3.1.5 雙重指針
3.2 AT&T彙編與內聯彙編
3.2.1 AT&T彙編
3.2.2 GCC內聯彙編
3.3 函式呼叫與堆疊
3.3.1 棧幀、寄存器慣例與調用約定
3.3.2 棧幀示例1
3.3.3 棧幀示例2
3.3.4 組合語言中調用C語言函數
3.3.5 C語言函式呼叫組合語言函數
3.4 xv6編譯、調試與連結
3.4.1 gcc命令
3.4.2 make命令
3.4.3 xv6的Makefile文件
3.4.4 gdb命令
3.4.5 ELF檔結構
3.4.6 使用ld命令連結xv6
3.5 Bochs與QEMU模擬器
3.5.1 Bochs模擬器
3.5.2 Bochs模擬器的配置
3.5.3 QEMU模擬器選項及內核調試
第4章 x86計算機組成原理
4.1 電腦系統
4.2 電腦硬體系統
4.2.1 硬體組成
4.2.2 匯流排
4.3 CPU
4.3.1 Cache與指令部件
4.3.2 MMU與BIU
4.3.3 寄存器組
4.4 記憶體
4.5 中斷系統
4.5.1 中斷
4.5.2 中斷控制器與中斷處理常式
4.6 I/O埠與外設
4.6.1 I/O埠與埠定址
4.6.2 控制器與I/O設備
第5章 x86真實模式與保護模式
5.1 x86的位址與工作模式
5.1.1 地址的概念
5.1.2 16位真實模式
5.1.3 32位元保護模式
5.2 A20地址線
5.3 保護模式與段寄存器
5.3.1 分段機制
5.3.2 邏輯位址轉換為線性位址
5.3.3 段選擇符
5.3.4 段寄存器
5.3.5 xv6的段選擇符和段寄存器的設定
5.4 描述符
5.4.1 描述符格式
5.4.2 非系統描述符
5.4.3 系統描述符
5.4.4 xv6中的描述符
5.5 描述符表、TSS與特權等級保護
5.5.1 描述符表
5.5.2 TSS與任務切換
5.5.3 系統位址寄存器
5.5.4 段的特權等級保護
5.6 xv6的段管理
5.6.1 真實模式下的段
5.6.2 保護模式引導階段的GDT
5.6.3 內核的GDT
5.6.4 IDT
5.6.5 TSS與TR
5.7 保護模式分頁機制
5.7.1 控制寄存器
5.7.2 分頁機制
5.7.3 CR3、頁目錄項與分頁表項目的格式
5.7.4 虛擬位址與物理位址的轉換
5.8 xv6的位址空間
第6章 xv6的啟動
6.1 概述
6.1.1 引導磁區與啟動流程
6.1.2 啟動過程的位址空間設置
6.1.3 啟動過程的堆疊
6.2 BP的引導
6.2.1 BP從真實模式進入保護模式
6.2.2 進入32位元模式
6.2.3 調用bootmain()函數
6.2.4 BP載入內核映射檔
6.3 BP進入內核
6.3.1 內核入口地址
6.3.2 內核的進入
6.4 BP的初始化
6.4.1 運行主函數
6.4.2 啟動AP
6.5 AP的進入與初始化
6.5.1 AP的進入
6.5.2 AP的初始化
第7章 虛擬空間管理
7.1 虛擬位址空間佈局與映射
7.1.1 虛擬位址空間及佈局
7.1.2 內核空間映射
7.1.3 內核的幾個特殊地址
7.2 空間初始化、分配與釋放
7.2.1 空閒幀管理
7.2.2 內核頁面分配
7.2.3 記憶體初始化
7.2.4 空間釋放
7.3 內核虛擬空間管理
7.3.1 內核虛擬空間分配、構建與切換
7.3.2 頁面映射與頁表查找
7.4 用戶空間管理
7.4.1 初始進程的使用者空間
7.4.2 用戶空間載入
7.4.3 用戶空間複製
7.4.4 用戶空間切換
7.4.5 用戶空間分配與釋放
第8章 中斷與系統調用
8.1 xv6中斷處理
8.1.1 IDT初始化
8.1.2 xv6中斷號
8.1.3 中斷向量陣列與中斷向量
8.1.4 中斷回應與中斷返回
8.1.5 中斷處理常式
8.2 系統調用
8.2.1 系統調用函數
8.2.2 系統調用函數的實現
8.2.3 系統調用分派
8.2.4 函數指標陣列與系統函數
8.2.5 提取調用參數
8.2.6 系統調用示例
8.3 驅動程式
8.4 中斷與系統調用及內核堆疊
8.4.1 中斷與系統調用處理過程
8.4.2 中斷的內核堆疊
第9章 鎖
9.1 自旋鎖
9.1.1 自旋鎖的概念
9.1.2 自旋鎖的實現
9.2 睡眠鎖
9.2.1 睡眠鎖的概念
9.2.2 睡眠鎖的實現
9.3 內核的鎖死
第10章 進程管理
10.1 進程的基本概念
10.1.1 進程的概念
10.1.2 進程的狀態與生命週期
10.1.3 進程的上下文
10.1.4 處理器結構體、當前處理器與當前進程
10.2 進程的切換
10.2.1 上下文切換原理
10.2.2 切換函數的定義
10.2.3 切換函數的實現
10.2.4 切換函數的詳細解釋
10.2.5 上下文切換與陷阱幀
10.3 進程調度與進程表
10.3.1 進程的調度
10.3.2 進程表
10.4 進程的生成、退出與等待
10.4.1 進程的生成、退出與等待示例
10.4.2 創建子進程
10.4.3 進程退出與等待
10.5 進程的睡眠與喚醒
10.5.1 條件同步
10.5.2 空等問題
10.5.3 喚醒丟失問題
10.5.4 睡眠與喚醒函數的實現
10.6 進程讓出與殺死進程
10.7 系統的初始進程
10.7.1 初始進程的建立
10.7.2 切換入初始進程
第11章 檔案系統
11.1 概述
11.1.1 檔案系統的功能
11.1.2 檔案系統的分層
11.1.3 磁片佈局
11.2 磁片層
11.2.1 磁片初始化
11.2.2 磁片中斷處理
11.2.3 磁片讀寫
11.3 塊緩存層
11.3.1 緩衝塊結構體
11.3.2 塊緩存及其初始化
11.3.3 緩衝塊讀取
11.3.4 緩衝塊寫入與釋放
11.3.5 緩衝塊的使用
11.4 日誌層
11.4.1 事務與日誌
11.4.2 日誌
11.4.3 日誌的靜態函數
11.4.4 日誌的對外介面
11.4.5 事務的操作與實現
11.5 磁片塊管理
11.6 i節點
11.6.1 磁片i節點
11.6.2 i節點及其鎖
11.6.3 icache初始化與i節點更新
11.6.4 i節點的分配、獲取、複製與釋放
11.6.5 i節點的映射、截斷、狀態與讀寫
11.7 目錄層
11.7.1 目錄項
11.7.2 目錄項查找
11.7.3 目錄項連結
11.7.4 通過路徑查找i節點
第12章 檔描述符與系統調用
12.1 檔描述符層
12.1.1 檔結構體
12.1.2 文件表及其初始化
12.1.3 文件分配、文件指針複製與關閉
12.1.4 檔狀態與檔讀寫
12.2 系統調用層
12.2.1 檔案系統調用
12.2.2 連結與刪除連結
12.2.3 文件創建
12.2.4 文件打開
12.2.5 文件讀寫
12.2.6 管道
12.2.7 載入執行
第13章 exec()函數、管道與字串
13.1 exec()函數
13.1.1 內核函數exec()
13.1.2 系統調用函數exec()
13.2 管道
13.2.1 管道結構體
13.2.2 管道的分配、關閉與讀寫
13.2.3 管道系統調用函數
13.3 字串
第14章 多處理器
14.1 多處理器系統架構
14.2 多處理器配置的資料結構
14.2.1 多處理器環境與記憶體佈局
14.2.2 mp結構體
14.2.3 MP配置表頭
14.2.4 MP配置表表項
14.3 LAPIC
14.3.1 LAPIC的結構
14.3.2 LAPIC的寄存器
14.3.3 LAPIC ID與版本
14.3.4 ICR與AP啟動
14.3.5 LAPIC計時器
14.3.6 偽中斷
14.3.7 LVT與ICR
14.3.8 EOI與TPR
14.3.9 LAPIC可接收的中斷源
14.4 I/O APIC
14.4.1 I/O APIC寄存器
14.4.2 I/O APIC寄存器訪問
14.4.3 I/O APIC初始化與中斷打開
第15章 字元設備驅動
15.1 鍵盤
15.1.1 鍵盤埠
15.1.2 掃描碼
15.1.3 中斷處理與驅動
15.2 控制台
15.2.1 控制台與文件讀寫
15.2.2 控制台輸入
15.2.3 控制台輸出
15.2.4 標準檔初始化
15.3 控制台輸出示例
15.4 串口通信
15.4.1 UART硬體
15.4.2 UART埠
15.4.3 UART初始化
15.4.4 UART輸入輸出與中斷處理
第16章 初始進程、API與Shell
16.1 初始進程
16.1.1 載入初始使用者程式
16.1.2 初始使用者程式init
16.2 API
16.2.1 API的定義和實現
16.2.2 介面函數使用示例
16.3 Shell
16.3.1 Shell概述
16.3.2 程式sh的主要功能
16.4 命令結構體及其構造與運行
16.4.1 命令
16.4.2 載入執行命令
16.4.3 重定向命令
16.4.4 管道命令
16.4.5 並列命令
16.4.6 後臺命令
16.5 輸入字串的解析
16.5.1 命令解析
16.5.2 行解析
16.5.3 管道命令解析
16.5.4 重定向命令解析
16.5.5 塊解析函數
16.5.6 載入執行命令解析
16.5.7 提取操作符
參考文獻
附錄A 縮略語與術語
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
高聯雄
北京郵電大學博士,昆明學院副教授、碩導,主要研究領域為信號與資訊處理。先後主持和參與了華為鴻蒙作業系統實驗等省部級以上教學和科研專案10余項,參與的研究工作還獲得了省部級科技進步獎;潛心作業系統教學二十餘年,從UNIX、MINIX、Linux到xv6,每一個重要的作業系統均深入內核研讀源碼並應用於教學之中;鑒於xv6的簡潔優美,耗費兩年遊刃其間,寫成《UNIX xv6內核源碼深入剖析》一書。 |
|
|
|
|
|
|
|
|
|
|
|