发表于2024-11-08
[按需印刷]Linux內核探秘:深入解析文件係統和設備驅動的架構與設計 …|63092 pdf epub mobi txt 電子書 下載 2024
書名: | Linux內核探秘:深入解析文件係統和設備驅動的架構與設計[按需印刷]|63092 |
圖書定價: | 59元 |
圖書作者: | 高劍林 |
齣版社: | 機械工業齣版社 |
齣版日期: | 2014-01-01 0:00:00 |
ISBN號: | 9787111445852 |
開本: | 16開 |
頁數: | 219 |
版次: | 1-1 |
作者簡介 |
高劍林,資深Linux內核專傢、存儲係統專傢、嵌入式係統專傢。先後就職於華為、UT斯達康、賽門鐵剋等公司,從事路由器設備研發、軟件開發和存儲係統研究相關的工作10餘年,經驗非常豐富。現就職於騰訊,負責存儲係統的開發和研究。 |
內容簡介 |
《Linux內核探秘:深入解析文件係統和設備驅動的架構與設計》從工業需求角度齣發,注重效率和實用性,是幫助內核研發及調試、驅動開發等領域工程師正確認識並高效利用Linux內核的難得佳作!作者是騰訊公司資深的Linux內核專傢和存儲係統專傢,在該領域工作和研究的10餘年間,麵試瞭數百位Linux內核工程師,深知學習Linux內核過程中經常遇到的睏惑,以及在工作中容易犯的錯誤。基於這些原因作者撰寫瞭《Linux內核探秘:深入解析文件係統和設備驅動的架構與設計》。《Linux內核探秘:深入解析文件係統和設備驅動的架構與設計》齣發點和寫作方式可謂獨闢蹊徑,將Linux內核分為兩個維度,一是基礎部分和應用部分,二是內核架構和內核實現,將兩個維有機統一,深入分析瞭Linux內核的文件係統、設備驅動的架構設計與實現原理。 全書在邏輯上分為三部分:第一部分(第1~2章)首先將內核層劃分為基礎層和應用層,講解瞭基礎層包含的服務和數據結構,以及應用層包含的各種功能,然後對文件係統的架構進行瞭提綱挈領的介紹,為讀者學習後麵的知識打下基礎;第二部分(第3~9章)從設備到總綫到驅動,逐步深入,剖析瞭設備的總體架構、為設備服務的特殊文件係統sysfs、字符設備和input設備、platform總綫、serio總綫、PCI總綫、塊設備的實現原理和工作機製;第三部分(第10~13章)對文件係統的讀寫機製進行瞭深入分析,zui後通過一個真實文件係統ext2,復習本書所有知識點。 |
目錄 |
《Linux內核探秘:深入解析文件係統和設備驅動的架構與設計》 前 言 第1章 內核的基礎層和應用層 1 1.1 內核基礎層提供的服務 1 1.1.1 內核中使用內存 2 1.1.2 內核中的任務調度 2 1.1.3 軟中斷和tasklet 3 1.1.4 工作隊列 4 1.1.5 自鏇鎖 5 1.1.6 內核信號量 5 1.1.7 原子變量 5 1.2 內核基礎層的數據結構 6 1.2.1 雙嚮鏈錶 6 1.2.2 hash鏈錶 6 1.2.3 單嚮鏈錶 7 1.2.4 紅黑樹 7 1.2.5 radix樹 7 1.3 內核應用層 8 1.4 從Linux內核源碼結構縱覽內核 9 1.5 內核學習和應用的四個階段 10 1.6 本章小結 11 第2章 文件係統 12 2.1 文件係統的基本概念 12 2.1.1 什麼是VFS 13 2.1.2 超級塊super_block 13 2.1.3 目錄項dentry 14 2.1.4 索引節點inode 15 2.1.5 文件 17 2.2 文件係統的架構 17 2.2.1 超級塊作用分析 17 2.2.2 dentry作用分析 18 2.2.3 inode作用分析 20 2.2.4 文件作用分析 21 2.3 從代碼層次深入分析文件係統 21 2.3.1 一個zui簡單的文件係統aufs 22 2.3.2 文件係統如何管理目錄和文件 26 2.3.3 文件係統的掛載過程 38 2.3.4 文件打開的代碼分析 42 2.4 本章小結 59 第3章 設備的概念和總體架構 60 3.1 設備的配置錶 60 3.2 訪問設備寄存器和設備內存 61 3.3 設備中斷和DMA 61 3.4 總綫對設備的掃描 62 3.5 設備驅動管理 62 3.6 本章小結 62 第4章 為設備服務的特殊文件係統sysfs 63 4.1 文件和目錄的創建 63 4.1.1 sysfs文件係統的初始化 64 4.1.2 sysfs文件係統目錄的創建 64 4.1.3 普通文件的創建 68 4.2 sysfs文件的打開操作 69 4.2.1 real_lookup函數詳解 70 4.2.2 為文件創建inode結構 70 4.2.3 為dentry結構綁定屬性 71 4.2.4 調用文件係統中的open函數 72 4.3 sysfs文件的讀寫 74 4.3.1 讀文件的過程分析 74 4.3.2 寫文件的過程分析 75 4.4 kobject結構 76 4.4.1 kobject和kset的關係 76 4.4.2 kobject實例:總綫的注冊 77 4.5 本章小結 79 第5章 字符設備和input設備 80 5.1 文件如何變成設備 80 5.1.1 init_special_inode函數 80 5.1.2 def_chr_fops結構 81 5.2 input設備的注冊 82 5.2.1 主從設備號 83 5.2.2 把input設備注冊到係統 84 5.2.3 設備區間的登記 85 5.2.4 注冊字符設備 86 5.2.5 打開input設備 87 5.3 input設備架構 88 5.3.1 注冊input設備的驅動 88 5.3.2 匹配input管理的設備和驅動 89 5.3.3 注冊input設備 90 5.4 本章小結 92 第6章 platform總綫 93 6.1 從驅動發現設備的過程 93 6.1.1 驅動的初始化 93 6.1.2 注冊驅動 94 6.1.3 為總綫增加一個驅動 95 6.1.4 驅動加載 95 6.1.5 遍曆總綫上已經掛載的設備 96 6.2 從設備找到驅動的過程 98 6.2.1 注冊設備和總綫類型 98 6.2.2 注冊設備的資源 99 6.2.3 增加一個設備對象 100 6.3 本章小結 102 第7章 serio總綫 103 7.1 什麼是總綫適配器 103 7.2 嚮serio總綫注冊設備 103 7.2.1 注冊端口登記事件 104 7.2.2 遍曆總綫的驅動 106 7.2.3 注冊input設備 109 7.3 虛擬鍵盤驅動 110 7.3.1 鍵盤驅動的初始化 110 7.3.2 與設備建立連接 111 7.3.3 啓動鍵盤設備 111 7.3.4 輸入設備和主機係統之間的事件 112 7.4 鍵盤中斷 112 7.4.1 q40kbd設備的中斷處理 113 7.4.2 serio總綫的中斷處理 113 7.4.3 驅動提供的中斷處理 113 7.5 本章小結 116 第8章 PCI總綫 117 8.1 深入理解PCI總綫 117 8.1.1 PCI設備工作原理 117 8.1.2 PCI總綫域 118 8.1.3 PCI資源管理 118 8.1.4 PCI配置空間讀取和設置 119 8.2 PCI設備掃描過程 120 8.2.1 掃描0號總綫 120 8.2.2 掃描總綫上的PCI設備 121 8.2.3 掃描多功能設備 124 8.2.4 掃描單個設備 125 8.2.5 掃描設備信息 125 8.3 本章小結 128 第9章 塊設備 129 9.1 塊設備的架構 129 9.1.1 塊設備、磁盤對象和隊列 129 9.1.2 塊設備和通用磁盤對象的綁定 130 9.1.3 塊設備的隊列和隊列處理函數 131 9.2 塊設備創建的過程分析 132 9.2.1 nbd驅動的初始化 132 9.2.2 為通用磁盤對象創建隊列成員 133 9.2.3 將通用磁盤對象加入係統 134 9.3 塊設備文件係統 135 9.3.1 塊設備文件係統的初始化 135 9.3.2 塊設備文件係統的設計思路 136 9.4 塊設備的打開流程 136 9.4.1 獲取塊設備對象 137 9.4.2 執行塊設備的打開流程 140 9.5 本章小結 142 第10章 文件係統讀寫 143 10.1 page cache機製 143 10.1.1 buffer I/O和direct I/O 143 10.1.2 buffer head和塊緩存 143 10.1.3 page cache的管理 144 10.1.4 page cache的狀態 145 10.2 文件預讀 146 10.3 文件鎖 146 10.4 文件讀過程代碼分析 147 10.5 讀過程返迴 161 10.6 文件寫過程代碼分析 162 10.7 本章小結 169 第11章 通用塊層和scsi層 170 11.1 塊設備隊列 170 11.1.1 scsi塊設備隊列處理函數 170 11.1.2 電梯算法和對象 171 11.2 硬盤HBA抽象層 172 11.3 I/O的順序控製 173 11.4 I/O調度算法 173 11.4.1 noop調度算法 173 11.4.2 deadline調度算法 174 11.5 I/O的處理過程 178 11.5.1 I/O插入隊列的過程分析 178 11.5.2 I/O齣隊列的過程分析 186 11.5.3 I/O返迴路徑 194 11.6 本章小結 203 第12章 內核迴寫機製 204 12.1 內核的觸發條件 204 12.2 內核迴寫控製參數 204 12.3 定時器觸發迴寫 205 12.3.1 啓動定時器 205 12.3.2 執行迴寫操作 207 12.3.3 檢查需要迴寫的頁麵 208 12.3.4 迴寫超級塊內的inode 209 12.4 平衡寫 213 12.4.1 檢查直接迴寫的條件 214 12.4.2 迴寫係統髒頁麵的條件 215 12.4.3 檢查計算機模式 216 12.5 本章小結 216 第13章 一個真實文件係統ext2 217 13.1 ext2的硬盤布局 217 13.2 ext2文件係統目錄樹 218 13.3 ext2文件內容管理 219 13.4 ext2文件係統讀寫 219 13.5 本章小結 219 |
[按需印刷]Linux內核探秘:深入解析文件係統和設備驅動的架構與設計 …|63092 pdf epub mobi txt 電子書 下載