注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡操作系統(tǒng)LinuxLinux內(nèi)核設計與實現(xiàn)

Linux內(nèi)核設計與實現(xiàn)

Linux內(nèi)核設計與實現(xiàn)

定 價:¥35.00

作 者: (美)Robert Love著;陳莉君,康華,張波譯;陳莉君譯
出版社: 機械工業(yè)出版社
叢編項: 計算機科學叢書
標 簽: Linux

ISBN: 9787111152415 出版時間: 2005-03-01 包裝: 膠版紙
開本: 26cm 頁數(shù): 257 字數(shù):  

內(nèi)容簡介

  “如果有這樣一本書,既能提綱挈領,為我理順思緒、指引方向;同時又能照顧小節(jié)、闡述細微,幫助我更好更快地理解源碼,那該有多好?!闭f這話的先生雖然針對的是C++,但道出的是研習源碼的人們共同的心聲。我們能不能做點兒什么,讓學習Linux內(nèi)核的過程更符合程序員的習慣呢?本書回答了這個問題。本書作者RobertLove是一個狂熱的內(nèi)核愛好者,所以他的想法自然貼近程序員。本書內(nèi)容涉及Linux 2.6內(nèi)核,包含許多新特性,如O(1)調(diào)度程序、塊I/0層、I/0調(diào)度程序等。本書提供Linux內(nèi)核設計和實現(xiàn)的概述性信息,覆蓋了從核心內(nèi)核系統(tǒng)的應用到內(nèi)核設計與實現(xiàn)等各方面內(nèi)容,能夠帶領讀者快速走進Linux內(nèi)核世界。本書不但介紹了理論,而且也討論了具體應用,可以滿足不同讀者的需要,適合于各類希望理解Linux內(nèi)核軟件開發(fā)的讀者。

作者簡介

  Robert Love:很早就開始使用Linux, 而且一直活躍于開源社區(qū). 最近, 他受聘于Monta Vista軟件公司, 作為軟件工程師繼續(xù)做開發(fā)Linux內(nèi)核的工作. 他的內(nèi)核項目包括進程調(diào)度程序. 搶占式內(nèi)核, 還有VM和多任務處理性能優(yōu)化. 他負責維護的另外兩個開源項目是schedutils和procps. 此外, 他對內(nèi)核還有不少精彩評論, 并擔任Linux Journal雜志的特邀編輯.

圖書目錄

 第1章  Linux內(nèi)核簡介
 1. 1  Linux簡介
 1. 2  操作系統(tǒng)和內(nèi)核簡介
 1. 3  Linux內(nèi)核和傳統(tǒng)Unix內(nèi)核的比較
 1. 4  Linux內(nèi)核版本
 1. 5  Linux內(nèi)核開發(fā)者社區(qū)
 1. 6  內(nèi)核開發(fā)的特點
 1. 6. 1  沒有l(wèi)ibc庫
 1. 6. 2  GNU C
 1. 6. 3  沒有內(nèi)存保護機制
 1. 6. 4  不要輕易在內(nèi)核中使用浮點數(shù)
 1. 6. 5  容積小而固定的棧
 1. 6. 6  同步和并發(fā)
 1. 6. 7  可移植性的重要性
 1. 7  編譯內(nèi)核
 1. 8  小結
 第2章  進程管理
 2. 1  進程描述符及任務隊列
 2. 1. 1  分配進程描述符
 2. 1. 2  進程描述符的存放
 2. 1. 3  進程狀態(tài)
 2. 1. 4  設置當前進程狀態(tài)
 2. 1. 5  進程上下文
 2. 2  進程創(chuàng)建
 2. 2. 1  寫時拷貝
 2. 2. 2  fork()
 2. 2. 3  vfork()
 2. 3  線程在Linux中的實現(xiàn)
 2. 4  進程終結
 2. 4. 1  刪除進程描述符
 2. 4. 2  孤兒進程造成的進退維谷
 第3章  調(diào)度
 3. 1  策略
 3. 1. 1  I/O消耗型和處理器消耗型的進程
 3. 1. 2  進程優(yōu)先級
 3. 1. 3  時間片
 3. 1. 4  進程搶占
 3. 1. 5  調(diào)度策略的活動
 3. 2  調(diào)度算法
 3. 2. 1  可執(zhí)行隊列
 3. 2. 2  優(yōu)先級數(shù)組
 3. 2. 3  重新計算時間片
 3. 2. 4  計算優(yōu)先級和時間片
 3. 2. 5  睡眠和喚醒
 3. 2. 6  負載平衡程序
 3. 3  搶占和上下文切換
 3. 3. 1  用戶搶占
 3. 3. 2  內(nèi)核搶占
 3. 4  實時
 3. 5  與調(diào)度相關的系統(tǒng)調(diào)用
 3. 5. 1  與調(diào)度策略和優(yōu)先級相關的系統(tǒng)調(diào)用
 3. 5. 2  與處理器綁定有關的系統(tǒng)調(diào)用
 3. 5. 3  放棄處理器時間
 第4章  系統(tǒng)調(diào)用
 4. 1  API. POSIX和C庫
 4. 2  系統(tǒng)調(diào)用
 4. 2. 1  系統(tǒng)調(diào)用號
 4. 2. 2  系統(tǒng)調(diào)用的性能
 4. 3  系統(tǒng)調(diào)用處理程序
 4. 3. 1  指定恰當?shù)南到y(tǒng)調(diào)用
 4. 3. 2  參數(shù)傳遞
 4. 4  系統(tǒng)調(diào)用的實現(xiàn)
 4. 5  系統(tǒng)調(diào)用上下文
 4. 5. 1  綁定一個系統(tǒng)調(diào)用的最后步驟
 4. 5. 2  從用戶空間訪問系統(tǒng)調(diào)用
 4. 5. 3  為什么不通過系統(tǒng)調(diào)用的方式實現(xiàn)
 第5章  中斷和中斷處理程序
 5. 1  中斷
 5. 2  中斷處理程序
 5. 3  注冊中斷處理程序
 5. 4  編寫中斷處理程序
 5. 4. 1  共享的中斷處理程序
 5. 4. 2  中斷處理程序?qū)嵗?br /> 5. 4. 3  中斷上下文
 5. 5  中斷處理機制的實現(xiàn)
 5. 6  中斷控制
 5. 6. 1  禁止和激活中斷
 5. 6. 2  禁止指定中斷線
 5. 6. 3  中斷系統(tǒng)的狀態(tài)
 第6章  下半部和推后執(zhí)行的工作
 6. 1  下半部
 6. 1. 1  為什么要用下半部
 6. 1. 2  下半部的環(huán)境
 6. 2  軟中斷
 6. 2. 1  軟中斷的實現(xiàn)
 6. 2. 2  使用軟中斷
 6. 3  Tasklets
 6. 3. 1  Tasklets的實現(xiàn)
 6. 3. 2  使用Tasklets
 6. 3. 3  ksoftirqd
 6. 3. 4  老的BH機制
 6. 4  工作隊列
 6. 4. 1  工作隊列的實現(xiàn)
 6. 4. 2  使用工作隊列
 6. 4. 3  老的任務隊列機制
 6. 5  下半部機制的選擇
 6. 6  在下半部之間加鎖
 第7章  內(nèi)核同步介紹
 7. 1  臨界區(qū)和競爭條件
 7. 2  加鎖
 7. 2. 1  到底是什么造成了并發(fā)執(zhí)行
 7. 2. 2  需要保護什么
 7. 3  死鎖
 7. 4  爭用和擴展性
 7. 5  小結
 第8章  內(nèi)核同步方法
 8. 1  原子操作
 8. 1. 1  原子整數(shù)操作
 8. 1. 2  原子位操作
 8. 2  自旋鎖
 8. 2. 1  其他針對自旋鎖的操作
 8. 2. 2  自旋鎖和下半部
 8. 3  讀-寫自旋鎖
 8. 4  信號量
 8. 4. 1  創(chuàng)建和初始化信號量
 8. 4. 2  使用信號量
 8. 5  讀-寫信號量
 8. 6  完成變量
 8. 7  BKL
 8. 8  Seq鎖
 8. 9  禁止搶占
 8. 10  屏障
 第9章  定時器和時間管理
 9. 1  內(nèi)核中的時間概念
 9. 2  節(jié)拍率:Hz
 9. 3  jiffes
 9. 3. 1  jiffies的內(nèi)部表示
 9. 3. 2  jiffies的回繞
 9. 3. 3  用戶空間和Hz
 9. 4  硬時鐘和定時器
 9. 4. 1  實時時鐘
 9. 4. 2  系統(tǒng)定時器
 9. 5  時鐘中斷處理程序
 9. 6  實際時間
 9. 7  定時器
 9. 7. 1  使用定時器
 9. 7. 2  定時器競爭條件
 9. 7. 3  實現(xiàn)定時器
 9. 8  延遲執(zhí)行
 9. 8. 1  忙等待
 9. 8. 2  短延遲
 第10章  內(nèi)存管理
 10. 1  頁
 10. 2  區(qū)
 10. 3  獲得頁
 10. 3. 1  獲得填充為0的頁
 10. 3. 2  釋放頁
 10. 4  slab層
 10. 5  slab分配器的接口
 10. 6  在棧上的靜態(tài)分配
 10. 7  高端內(nèi)存的映射
 10. 7. 1  永久映射
 10. 7. 2  臨時映射
 10. 8  分配函數(shù)的選擇
 第11章  虛擬文件系統(tǒng)
 11. 1  通用文件系統(tǒng)接口
 11. 2  文件系統(tǒng)抽象層
 11. 3  Unix文件系統(tǒng)
 11. 4  VFS對象及其數(shù)據(jù)結構
 11. 5  超級塊對象
 11. 6  索引節(jié)點對象
 11. 7  目錄項對象
 11. 7. 1  目錄項狀態(tài)
 11. 7. 2  目錄項緩存
 11. 7. 3  目錄項操作
 11. 8  文件對象
 11. 9  和文件系統(tǒng)相關的數(shù)據(jù)結構
 11. 10  和進程相關的數(shù)據(jù)結構
 11. 11  Linux中的文件系統(tǒng)
 第12章  塊I/O層
 12. 1  解剖一個塊設備
 12. 2  緩沖區(qū)和緩沖區(qū)頭
 12. 3  bio結構體
 12. 4  請求隊列
 12. 5  I/O調(diào)度程序
 12. 5. 1  I/O調(diào)度程序的工作
 12. 5. 2  Linus電梯
 12. 5. 3  最終期限I/O調(diào)度程序
 12. 5. 4  預測I/O調(diào)度程序
 第13章  進程地址空間
 13. 1  內(nèi)存描述符
 13. 1. 1  分配內(nèi)存描述符
 13. 1. 2  銷毀內(nèi)存描述符
 13. 1. 3  mm_struct與內(nèi)核線程
 13. 2  內(nèi)存區(qū)域
 13. 2. 1  VMA標志
 13. 2. 2  VM操作
 13. 2. 3  內(nèi)存區(qū)域的樹型結構和內(nèi)存區(qū)域的鏈表結構
 13. 2. 4  實際使用中的內(nèi)存區(qū)域
 13. 3  操作內(nèi)存區(qū)域
 13. 3. 1  find_vma()
 13. 3. 2  find_vma_prev()
 13. 3. 3  find_vma_intersection()
 13. 4  mmap()和do_mmap():創(chuàng)建地址區(qū)間
 13. 5  mummap()和do_mummap():刪除地址區(qū)間
 13. 6  頁表
 第14章  頁高速緩存和頁回寫
 14. 1  頁高速緩存
 14. 2  基樹
 14. 3  緩沖區(qū)高速緩存
 14. 4  pdflush后臺例程
 14. 4. 1  bdflush和kupdated
 14. 4. 2  避免擁塞的方法:使用多線程
 第15章  調(diào)試
 15. 1  調(diào)度前需要準備什么
 15. 2  內(nèi)核中的bug
 15. 2. 1  pintk()
 15. 2. 2  記錄等級
 15. 2. 3  記錄緩沖區(qū)
 15. 2. 4  syslogd和klogd
 15. 2. 5  printk()和內(nèi)核開發(fā)時需要留意的一點
 15. 3  oops
 15. 3. 1  ksymoops
 15. 3. 2  kallsyms
 15. 4  內(nèi)核調(diào)試配置選項
 15. 5  引發(fā)bug并打印信息
 15. 6  神奇的系統(tǒng)請求鍵
 15. 7  內(nèi)核調(diào)試器的傳奇
 15. 7. 1  gdb
 15. 7. 2  kgdb
 15. 7. 3  kdb
 15. 8  刺探系統(tǒng)
 15. 8. 1  用UID作為選擇條件
 15. 8. 2  使用條件變量
 15. 8. 3  使用統(tǒng)計量
 15. 8. 4  重復頻率限制
 15. 9  用二分查找法找出引發(fā)罪惡的變更
 15. 10  當所有的努力都失敗時:社區(qū)
 第16章  可移植性
 16. 1  Linux移植史
 16. 2  字長和數(shù)據(jù)類型
 16. 2. 1  不透明類型
 16. 2. 2  指定數(shù)據(jù)類型
 16. 2. 3  長度明確的類型
 16. 2. 4  char型的符號問題
 16. 3  數(shù)據(jù)對齊
 16. 3. 1  避免對齊引發(fā)的問題
 16. 3. 2  非標準類型的對齊
 16. 3. 3  結構體填補
 16. 4  字節(jié)順序
 16. 4. 1  高位優(yōu)先和低位優(yōu)先的歷史
 16. 4. 2  內(nèi)核中的字節(jié)順序
 16. 5  時間
 16. 6  頁長度
 16. 7  處理器排序
 16. 8  SMP. 內(nèi)核搶占. 高端內(nèi)存
 16. 9  小結
 第17章  補丁. 開發(fā)和社區(qū)
 17. 1  社區(qū)
 17. 2  Linux編碼風格
 17. 2. 1  縮進
 17. 2. 2  括號
 17. 2. 3  命名規(guī)范
 17. 2. 4  函數(shù)
 17. 2. 5  注釋
 17. 2. 6  Typedefs
 17. 2. 7  多用現(xiàn)成的東西
 17. 2. 8  在源碼中不要使用ifdef
 17. 2. 9  結構初始化
 17. 2. 10  代碼的事后修正
 17. 3  管理系統(tǒng)
 17. 4  提交錯誤報告
 17. 5  創(chuàng)建補丁
 17. 6  提交補丁
 附錄A  鏈表
 附錄B  單CPU接口
 附錄C  內(nèi)核隨機數(shù)產(chǎn)生器
 附錄D  算法復雜度
 參考資料

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號