幫助中心 | 我的帳號 | 關於我們

UNIX xv6內核源碼深入剖析/軟體開發源碼精講系列

  • 作者:高聯雄|責編:安妮//張愛華
  • 出版社:清華大學
  • ISBN:9787302614630
  • 出版日期:2022/11/01
  • 裝幀:平裝
  • 頁數:386
人民幣:RMB 99 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書對UNIX xv6的源碼進行了深入剖析和詳細註解,同時配合大量實例與圖表,對每個模塊先提煉關鍵數據結構和核心方法,再結合源碼分析其工作機制,讓讀者明白其原理及具體實現,以求理論和實踐能力同步提升,為深入理解操作系統原理乃至進一步研究學習Linux和Android等類UNIX系統內核打下堅實基礎。
    本書第1章對xv6進行概述;第2章介紹xv6操作系統結構;第3章介紹xv6開發、測試和運行的軟體環境;第4章簡要介紹x86電腦組成原理;第5章介紹x86的實模式與保護模式;第6章深入分析xv6的啟動;第7?10章介紹xv6的虛擬空間管理、中斷與系統調用、鎖以及進程管理,第11、12章介紹xv6的文件系統;第13章介紹exec()函數、管道與字元串的實現;第14章介紹xv6的多處理器支持;第15章介紹字元設備驅動;第16章介紹用戶進程的初始化、API和Shell的實現。
    本書適合操作系統初、中級學習者,系統程序員,嵌入式系統開發者以及對UNIX和Linux等類UNIX內核感興趣的讀者。

作者介紹
高聯雄|責編:安妮//張愛華

目錄
第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  棧幀示例
    3.3.3  棧幀示例
    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命令鏈接xv
  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  縮略語與術語

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032