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

Linux內核完全剖析(基於0.12內核15周年版第2版)(精)

  • 作者:編者:趙炯|責編:車忱
  • 出版社:機械工業
  • ISBN:9787111744191
  • 出版日期:2024/02/01
  • 裝幀:精裝
  • 頁數:948
人民幣:RMB 299 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書對Linux操作系統早期內核(V0.12)全部源代碼文件進行了詳細、全面的註釋和說明,旨在幫助讀者用較短的時間對Linux的工作機理獲得全面而深刻的理解,為進一步學習和研究現代Linux系統打下堅實的基礎。雖然分析的版本較低,但該內核已能夠正常編譯運行,並且其中已包括了Linux工作原理的精髓。書中首先概要地介紹了Linux內核發展歷史,說明了各內核版本之間的主要區別和改進,給出了選擇0.12版內核源代碼作為研究對象的原因。然後給出了閱讀內核源代碼所需的相關基礎知識,概要介紹了運行Linux系統的PC硬體組成結構、編寫內核使用的彙編語言和C語言擴展部分,並且重點說明了80x86處理器在保護模式下運行的編程方法。接著介紹了內核代碼概況,給出了內核源代碼目錄樹結構,並依據該組織結構對所有內核程序和文件進行了詳細描述和說明。為了加深讀者對內核工作原理的理解,書中最後一章給出了多個相關運行調試實驗。
    本書適合作為高校電腦專業學生學習操作系統課程的輔助和實踐教材,也適合Linux愛好者作為學習內核工作原理的自學參考書籍,還可作為一般技術人員開發嵌入式系統時的參考書。

作者介紹
編者:趙炯|責編:車忱

目錄
第1章  概述
  1.1  Linux的誕生和發展
    1.1.1  UNIX操作系統的誕生
    1.1.2  MINIX操作系統
    1.1.3  GNU計劃
    1.1.4  POSIX標準
    1.1.5  Linux操作系統的誕生
    1.1.6  Linux操作系統版本的變遷
    1.1.7  Linux名稱的由來
    1.1.8  早期Linux系統開發的主要貢獻者
  1.2  內容綜述
  1.3  本章小結
第2章  微型電腦組成結構
  2.1  微型電腦組成原理
  2.2  I/O埠定址和訪問控制方式
    2.2.1  I/O埠和定址
    2.2.2  介面訪問控制
  2.3  主存儲器、BIOS和CMOS存儲器
    2.3.1  主存儲器
    2.3.2  基本輸入/輸出程序BIOS
    2.3.3  CMOS存儲器
  2.4  控制器和控制卡
    2.4.1  中斷控制器
    2.4.2  DMA控制器
    2.4.3  定時/計數器
    2.4.4  鍵盤控制器
    2.4.5  串列控制卡
    2.4.6  顯示控制
    2.4.7  軟盤和硬碟控制器
  2.5  本章小結
第3章  內核編程語言和環境
  3.1  as86彙編器
    3.1.1  as86彙編語言語法
    3.1.2  as86彙編語言程序
    3.1.3  as86彙編語言程序的編譯和鏈接
    3.1.4  as86和ld86使用方法和選項
  3.2  GNUas彙編
    3.2.1  編譯as彙編語言程序
    3.2.2  as彙編語法
    3.2.3  指令語句、操作數和定址
    3.2.4  區與重定位
    3.2.5  符號
    3.2.6  as彙編命令
    3.2.7  編寫16位代碼
    3.2.8  AS彙編器命令行選項
  3.3  C語言程序
    3.3.1  C程序編譯和鏈接
    3.3.2  嵌入彙編
    3.3.3  圓括弧中的組合語句
    3.3.4  寄存器變數

    3.3.5  內聯函數
  3.4  C與彙編程序的相互調用
    3.4.1  C函數調用機制
    3.4.2  在彙編程序中調用C函數
    3.4.3  在C程序中調用彙編函數
  3.5  Linux0.12目標文件格式
    3.5.1  目標文件格式
    3.5.2  Linux0.12中的目標文件格式
    3.5.3  鏈接程序輸出
    3.5.4  鏈接程序預定義變數
    3.5.5  System.map文件
  3.6  Make程序和Makefile文件
    3.6.1  Makefile文件內容
    3.6.2  Makefile文件中的規則
    3.6.3  Makefile文件示例
    3.6.4  make處理Makefile文件的方式
    3.6.5  Makefile中的變數
    3.6.6  讓make自動推斷命令
    3.6.7  隱含規則中的自動變數
  3.7  本章小結
第4章  80x86保護模式及其編程
  4.1  80x86系統寄存器和系統指令
    4.1.1  標誌寄存器
    4.1.2  內存管理寄存器
    4.1.3  控制寄存器
    4.1.4  系統指令
  4.2  保護模式內存管理
    4.2.1  內存定址
    4.2.2  地址變換
    4.2.3  保護
  4.3  分段機制
    4.3.1  段的定義
    4.3.2  段描述符表
    4.3.3  段選擇符
    4.3.4  段描述符
    4.3.5  代碼和數據段描述符類型
    4.3.6  系統描述符類型
  4.4  分頁機制
    4.4.1  頁表結構
    4.4.2  頁表項格式
    4.4.3  虛擬存儲
  4.5  保護
    4.5.1  段級保護
    4.5.2  訪問數據段時的特權級檢查
    4.5.3  代碼段之間轉移控制時的特權級檢查
    4.5.4  頁級保護
    4.5.5  組合頁級和段級保護
  4.6  中斷和異常處理
    4.6.1  異常和中斷向量
    4.6.2  中斷源和異常源

  14.31  tty.h文件
    14.31.1  功能描述
    14.31.2  代碼註釋
  14.32  include/sys/目錄中的文件
  14.33  param.h文件
    14.33.1  功能描述
    14.33.2  代碼註釋
  14.34  resource.h文件
    14.34.1  功能描述
    14.34.2  代碼註釋
  14.35  stat.h文件
    14.35.1  功能描述
    14.35.2  代碼註釋
  14.36  time.h文件
    14.36.1  功能描述
    14.36.2  代碼註釋
  14.37  times.h文件
    14.37.1  功能描述
    14.37.2  代碼註釋
  14.38  types.h文件
    14.38.1  功能描述
    14.38.2  代碼註釋
  14.39  utsname.h文件
    14.39.1  功能描述
    14.39.2  代碼註釋
  14.40  wait.h文件
    14.40.1  功能描述
    14.40.2  代碼註釋
第15章  庫文件
  15.1  _exit.c程序
    15.1.1  功能描述
    15.1.2  代碼註釋
    15.1.3  相關信息
  15.2  close.c程序
    15.2.1  功能描述
    15.2.2  代碼註釋
  15.3  ctype.c程序
    15.3.1  功能描述
    15.3.2  代碼註釋
  15.4  dup.c程序
    15.4.1  功能描述
    15.4.2  代碼註釋
  15.5  errno.c程序
    15.5.1  功能描述
    15.5.2  代碼註釋
  15.6  execve.c程序
    15.6.1  功能描述
    15.6.2  代碼註釋
  15.7  malloc.c程序
    15.7.1  功能描述

    15.7.2  代碼註釋
  15.8  open.c程序
    15.8.1  功能描述
    15.8.2  代碼註釋
  15.9  setsid.c程序
    15.9.1  功能描述
    15.9.2  代碼註釋
  15.10  string.c程序
    15.10.1  功能描述
    15.10.2  代碼註釋
  15.11  wait.c程序
    15.11.1  功能描述
    15.11.2  代碼註釋
  15.12  write.c程序
    15.12.1  功能描述
    15.12.2  代碼註釋
第16章  建造工具
  16.1  build.c程序
    16.1.1  功能描述
    16.1.2  代碼註釋
  16.2  MINIX可執行文件頭部數據結構
第17章  實驗環境設置與使用方法
  17.1  Bochs模擬軟體系統
    17.1.1  設置Bochs系統
    17.1.2  配置文件*.bxrc
  17.2  在Bochs中運行Linux0.1x系統
    17.2.1  軟體包中文件說明
    17.2.2  安裝Bochs模擬系統
    17.2.3  運行Linux0.1x系統
  17.3  訪問磁碟映像文件中的信息
    17.3.1  使用WinImage工具軟體
    17.3.2  利用現有Linux系統
  17.4  編譯運行簡單內核示常式序
  17.5  利用Bochs調試內核
    17.5.1  運行Bochs調試程序
    17.5.2  定位內核中的變數或數據結構
  17.6  創建磁碟映像文件
    17.6.1  利用Bochs軟體自帶的Image生成工具
    17.6.2  在Linux系統下使用dd命令創建Image文件
    17.6.3  利用WinImage創建DOS格式的軟盤Image文件
  17.7  製作根文件系統
    17.7.1  根文件系統和根文件設備
    17.7.2  創建文件系統
    17.7.3  Linux-0.12的Bochs配置文件
    17.7.4  在hdc.img上建立根文件系統
    17.7.5  使用硬碟Image上的根文件系統
  17.8  在Linux0.12系統中編譯0.12內核
  17.9  在Redhat系統中編譯Linux0.1x內核
    17.9.1  修改Makefile文件
    17.9.2  修改彙編程序中的註釋

    17.9.3  內存位置對齊語句align值的修改
    17.9.4  修改嵌入宏彙編程序
    17.9.5  C程序變數在彙編語句中的引用表示
    17.9.6  保護模式下調試顯示函數
  17.10  內核引導啟動+根文件系統組成的集成盤
    17.10.1  集成盤製作原理
    17.10.2  集成盤的製作過程
    17.10.3  運行集成盤系統
  17.11  利用GDB和Bochs調試內核源代碼
    17.11.1  編譯帶gdbstub的Bochs系統
    17.11.2  編譯帶調試信息的Linux0.1x內核
    17.11.3  調試方法和步驟
附錄
  附錄A  ASCII碼表
  附錄B  常用C0、C1控制字元表
  附錄C  常用轉義序列和控制序列
  附錄D  第1套鍵盤掃描碼集
參考文獻

    4.6.3  異常分類
    4.6.4  程序或任務的重新執行
    4.6.5  開啟和禁止中斷
    4.6.6  異常和中斷的優先順序
    4.6.7  中斷描述符表
    4.6.8  IDT描述符
    4.6.9  異常與中斷處理
    4.6.10  中斷處理任務
    4.6.11  錯誤碼
  4.7  任務管理
    4.7.1  任務的結構和狀態
    4.7.2  任務的執行
    4.7.3  任務管理數據結構
    4.7.4  任務切換
    4.7.5  任務鏈
    4.7.6  任務地址空間
  4.8  保護模式編程初始化
    4.8.1  進入保護模式時的初始化操作
    4.8.2  模式切換
  4.9  一個簡單的多任務內核實例
    4.9.1  多任務程序結構和工作原理
    4.9.2  引導啟動程序boot
    4.9.3  多任務內核程序head
第5章  Linux內核體系結構
  5.1  Linux內核模式
  5.2  Linux內核系統體系結構
  5.3  Linux內核對內存的管理和使用
    5.3.1  物理內存
    5.3.2  內存地址空間概念
    5.3.3  內存分段機制
    5.3.4  內存分頁管理
    5.3.5  CPU多任務和保護方式
    5.3.6  虛擬地址、線性地址和物理地址之間的關係
    5.3.7  用戶申請內存的動態分配
  5.4  中斷機制
    5.4.1  中斷操作原理
    5.4.2  80x86微機的中斷子系統
    5.4.3  中斷向量表
    5.4.4  Linux內核的中斷處理
    5.4.5  標誌寄存器的中斷標誌
  5.5  Linux的系統調用
    5.5.1  系統調用介面
    5.5.2  系統調用處理過程
    5.5.3  Linux系統調用的參數傳遞方式
  5.6  系統時間和定時
    5.6.1  系統時間
    5.6.2  系統定時
  5.7  Linux進程式控制制
    5.7.1  任務數據結構
    5.7.2  進程運行狀態

    5.7.3  進程初始化
    5.7.4  創建新進程
    5.7.5  進程調度
    5.7.6  終止進程
  5.8  Linux系統中堆棧的使用方法
    5.8.1  初始化階段
    5.8.2  任務的堆棧
    5.8.3  任務內核態堆棧與用戶態堆棧之間的切換
  5.9  Linux0.12採用的文件系統
  5.10  Linux內核源代碼的目錄結構
    5.10.1  內核主目錄linux
    5.10.2  引導啟動程序目錄boot
    5.10.3  文件系統目錄fs
    5.10.4  頭文件主目錄include
    5.10.5  內核初始化程序目錄init
    5.10.6  內核程序主目錄kernel
    5.10.7  內核庫函數目錄lib
    5.10.8  內存管理程序目錄mm
    5.10.9  編譯內核工具程序目錄tools
  5.11  內核系統與應用程序的關係
  5.12  linux/Makefile文件
    5.12.1  功能描述
    5.12.2  代碼註釋
  5.13  本章小結
第6章  引導啟動程序
  6.1  總體功能
  6.2  bootsect.S程序
    6.2.1  功能描述
    6.2.2  代碼註釋
    6.2.3  其他信息
  6.3  setup.S程序
    6.3.1  功能描述
    6.3.2  代碼註釋
    6.3.3  其他信息
  6.4  head.s程序
    6.4.1  功能描述
    6.4.2  代碼註釋
    6.4.3  其他信息
  6.5  本章小結
第7章  初始化程序
  7.1  main.c程序
    7.1.1  功能描述
    7.1.2  代碼註釋
    7.1.3  其他信息
  7.2  環境初始化工作
  7.3  本章小結
第8章  內核代碼
  8.1  總體功能
    8.1.1  中斷處理程序
    8.1.2  系統調用處理相關程序

    8.1.3  其他通用類程序
  8.2  asm.s程序
    8.2.1  功能描述
    8.2.2  代碼註釋
    8.2.3  Intel保留中斷向量的定義
  8.3  traps.c程序
    8.3.1  功能描述
    8.3.2  代碼註釋
  8.4  sys_call.s程序
    8.4.1  功能描述
    8.4.2  代碼註釋
    8.4.3  其他信息
  8.5  mktime.c程序
    8.5.1  功能描述
    8.5.2  代碼註釋
    8.5.3  閏年的計算方法
  8.6  sched.c程序
    8.6.1  功能描述
    8.6.2  代碼註釋
    8.6.3  其他信息
  8.7  signal.c程序
    8.7.1  功能描述
    8.7.2  代碼註釋
    8.7.3  進程信號說明
  8.8  exit.c程序
    8.8.1  功能描述
    8.8.2  代碼註釋
  8.9  fork.c程序
    8.9.1  功能描述
    8.9.2  代碼註釋
    8.9.3  任務狀態段信息
  8.10  sys.c程序
    8.10.1  功能描述
    8.10.2  代碼註釋
  8.11  vsprintf.c程序
    8.11.1  功能描述
    8.11.2  代碼註釋
    8.11.3  vsprintf()的格式字元串
    8.11.4  與當前版本的區別
  8.12  printk.c程序
    8.12.1  功能描述
    8.12.2  代碼註釋
  8.13  panic.c程序
    8.13.1  功能描述
    8.13.2  代碼註釋
  8.14  本章小結
第9章  塊設備驅動程序
  9.1  總體功能
    9.1.1  塊設備請求項和請求隊列
    9.1.2  塊設備訪問調度處理

    9.1.3  塊設備操作方式
  9.2  blk.h文件
    9.2.1  功能描述
    9.2.2  代碼註釋
  9.3  hd.c程序
    9.3.1  功能描述
    9.3.2  代碼註釋
    9.3.3  其他信息
  9.4  ll_rw_blk.c程序
    9.4.1  功能描述
    9.4.2  代碼註釋
  9.5  ramdisk.c程序
    9.5.1  功能描述
    9.5.2  代碼註釋
  9.6  floppy.c程序
    9.6.1  功能描述
    9.6.2  代碼註釋
    9.6.3  其他信息
第10章  字元設備驅動程序
  10.1  總體功能
    10.1.1  終端驅動程序基本原理
    10.1.2  Linux支持的終端設備類型
    10.1.3  終端基本數據結構
    10.1.4  規範模式和非規範模式
    10.1.5  控制台終端和串列終端設備
    10.1.6  終端驅動程序介面
  10.2  keyboard.S程序
    10.2.1  功能描述
    10.2.2  代碼註釋
    10.2.3  其他信息
  10.3  console.c程序
    10.3.1  功能描述
    10.3.2  代碼註釋
    10.3.3  其他信息
  10.4  serial.c程序
    10.4.1  功能描述
    10.4.2  代碼註釋
    10.4.3  非同步串列通信控制器UART
  10.5  rs_io.s程序
    10.5.1  功能描述
    10.5.2  代碼註釋
  10.6  tty_io.c程序
    10.6.1  功能描述
    10.6.2  代碼註釋
    10.6.3  控制字元VTIME、VMIN
  10.7  tty_ioctl.c程序
    10.7.1  功能描述
    10.7.2  代碼註釋
    10.7.3  波特率與波特率因子
第11章  數學協處理器

  11.1  總體功能描述
    11.1.1  浮點數據類型
    11.1.2  數學協處理器功能和結構
  11.2  math_emulate.c程序
    11.2.1  功能描述
    11.2.2  代碼註釋
  11.3  error.c程序
    11.3.1  功能描述
    11.3.2  代碼註釋
  11.4  ea.c程序
    11.4.1  功能描述
    11.4.2  代碼註釋
  11.5  convert.c程序
    11.5.1  功能描述
    11.5.2  代碼註釋
  11.6  add.c程序
    11.6.1  功能描述
    11.6.2  代碼註釋
  11.7  compare.c程序
    11.7.1  功能描述
    11.7.2  代碼註釋
  11.8  get_put.c程序
    11.8.1  功能描述
    11.8.2  代碼註釋
  11.9  mul.c程序
    11.9.1  功能描述
    11.9.2  代碼註釋
  11.10  div.c程序
    11.10.1  功能描述
    11.10.2  代碼註釋
第12章  文件系統
  12.1  總體功能
    12.1.1  MINIX文件系統
    12.1.2  文件類型、屬性和目錄項
    12.1.3  高速緩衝區
    12.1.4  文件系統底層函數
    12.1.5  文件中數據的訪問操作
    12.1.6  文件和目錄管理系統調用
    12.1.73  60KB軟盤中文件系統實例分析
  12.2  buffer.c程序
    12.2.1  功能描述
    12.2.2  代碼註釋
  12.3  bitmap.c程序
    12.3.1  功能描述
    12.3.2  代碼註釋
  12.4  truncate.c程序
    12.4.1  功能描述
    12.4.2  代碼註釋
  12.5  inode.c程序
    12.5.1  功能描述

    12.5.2  代碼註釋
  12.6  super.c程序
    12.6.1  功能描述
    12.6.2  代碼註釋
  12.7  namei.c程序
    12.7.1  功能描述
    12.7.2  代碼註釋
  12.8  file_table.c程序
    12.8.1  功能描述
    12.8.2  代碼註釋
  12.9  block_dev.c程序
    12.9.1  功能描述
    12.9.2  代碼註釋
  12.10  file_dev.c程序
    12.10.1  功能描述
    12.10.2  代碼註釋
  12.11  pipe.c程序
    12.11.1  功能描述
    12.11.2  代碼註釋
  12.12  char_dev.c程序
    12.12.1  功能描述
    12.12.2  代碼註釋
  12.13  read_write.c程序
    12.13.1  功能描述
    12.13.2  代碼註釋
    12.13.3  用戶程序讀寫操作過程
  12.14  open.c程序
    12.14.1  功能描述
    12.14.2  代碼註釋
  12.15  exec.c程序
    12.15.1  功能描述
    12.15.2  代碼註釋
  12.16  stat.c程序
    12.16.1  功能描述
    12.16.2  代碼註釋
  12.17  fcntl.c程序
    12.17.1  功能描述
    12.17.2  代碼註釋
  12.18  ioctl.c程序
    12.18.1  功能描述
    12.18.2  代碼註釋
  12.19  select.c程序
    12.19.1  功能描述
    12.19.2  代碼註釋
第13章  內存管理
  13.1  總體功能
    13.1.1  內存分頁管理機制
    13.1.2  物理內存的管理和分配
    13.1.3  線性地址空間的使用分配
    13.1.4  邏輯地址、線性地址和物理地址之間的變換

    13.1.5  頁面出錯異常處理
    13.1.6  寫時複製機制
    13.1.7  需求載入機制
  13.2  memory.c程序
    13.2.1  功能描述
    13.2.2  代碼註釋
  13.3  page.s程序
    13.3.1  功能描述
    13.3.2  代碼註釋
  13.4  swap.c程序
    13.4.1  功能描述
    13.4.2  代碼註釋
第14章  頭文件
  14.1  include/目錄下的文件
  14.2  a.out.h文件
    14.2.1  功能描述
    14.2.2  代碼註釋
    14.2.3  a.out執行文件格式
  14.3  const.h文件
    14.3.1  功能描述
    14.3.2  代碼註釋
  14.4  ctype.h文件
    14.4.1  功能描述
    14.4.2  代碼註釋
  14.5  errno.h文件
    14.5.1  功能描述
    14.5.2  代碼註釋
  14.6  fcntl.h文件
    14.6.1  功能描述
    14.6.2  代碼註釋
  14.7  signal.h文件
    14.7.1  功能描述
    14.7.2  文件註釋
  14.8  stdarg.h文件
    14.8.1  功能描述
    14.8.2  代碼註釋
  14.9  stddef.h文件
    14.9.1  功能描述
    14.9.2  代碼註釋
  14.10  string.h文件
    14.10.1  功能描述
    14.10.2  代碼註釋
  14.11  termios.h文件
    14.11.1  功能描述
    14.11.2  代碼註釋
    14.11.3  控制字元TIME和MIN
  14.12  time.h文件
    14.12.1  功能描述
    14.12.2  代碼註釋
  14.13  unistd.h文件

    14.13.1  功能描述
    14.13.2  代碼註釋
  14.14  utime.h文件
    14.14.1  功能描述
    14.14.2  代碼註釋
  14.15  include/asm/目錄下的文件
  14.16  io.h文件
    14.16.1  功能描述
    14.16.2  代碼註釋
  14.17  memory.h文件
    14.17.1  功能描述
    14.17.2  代碼註釋
  14.18  segment.h文件
    14.18.1  功能描述
    14.18.2  代碼註釋
  14.19  system.h文件
    14.19.1  功能描述
    14.19.2  代碼註釋
  14.20  include/linux/目錄下的文件
  14.21  config.h文件
    14.21.1  功能描述
    14.21.2  代碼註釋
  14.22  fdreg.h頭文件
    14.22.1  功能描述
    14.22.2  文件註釋
  14.23  fs.h文件
    14.23.1  功能描述
    14.23.2  代碼註釋
  14.24  hdreg.h文件
    14.24.1  功能描述
    14.24.2  代碼註釋
    14.24.3  硬碟分區表
  14.25  head.h文件
    14.25.1  功能描述
    14.25.2  代碼註釋
  14.26  kernel.h文件
    14.26.1  功能描述
    14.26.2  代碼註釋
  14.27  math_emu.h文件
    14.27.1  功能描述
    14.27.2  代碼註釋
  14.28  mm.h文件
    14.28.1  功能描述
    14.28.2  代碼註釋
  14.29  sched.h文件
    14.29.1  功能描述
    14.29.2  代碼註釋
  14.30  sys.h文件
    14.30.1  功能描述
    14.30.2  代碼註釋

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們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