Linux 內核設計的藝術(第2版)

Linux 內核設計的藝術(第2版) pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:新設計團隊
出品人:
頁數:455
译者:
出版時間:2013-5-1
價格:89.00元
裝幀:平裝
isbn號碼:9787111421764
叢書系列:華章原創精品
圖書標籤:
  • Linux
  • 操作係統
  • 內核
  • 計算機
  • linux
  • 圖解linux內核
  • Kernel
  • 編程
  • Linux
  • 內核
  • 設計
  • 藝術
  • 操作係統
  • 計算機科學
  • 編程
  • 底層開發
  • 係統編程
  • 高性能
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

本書的第1版廣獲好評,版權被中國颱灣和美國兩傢大型齣版社引進,第2版根據讀者的反饋和作者對操作係統的最新研究成果對第1版進行瞭大幅優化和重寫,使其內容質量更上一層樓。本書在眾多關於Linux內核的書中獨樹一幟,它在世界範圍內首次提齣並闡述瞭操作係統設計的核心指導思想主奴機製,這是所有操作係統研究者的一筆寶貴財富。它也是一本能真正引導我們較為容易地、極為透徹地理解Linux內核的經典之作,也可能是當前唯一能從本質上指引我們去設計和開發擁有自主知識産權的操作係統的著作。

本書的最大特點是它的寫作方式和內容組織方式與同類書完全不同。它在深刻地分析瞭傳統講解方法的利弊之後,破舊立新,從認知學的角度開創瞭一種全新的方式。以操作係統的真實運行過程為主綫,結閤真實的內核源代碼、300餘幅精確的內核運行時序圖和具有點睛之妙的文字說明,對操作係統從開機加電到係統完全準備就緒,及運行用戶程序的整個過程進行瞭係統而完整地分析,深刻地揭示瞭其間每一個動作的設計意圖和實現原理,完美地再現瞭操作係統設計者的設計思路。閱讀本書就如同跟隨著操作係統設計者一起去思考,我們會在閱讀的過程中發現Linux內核設計的精妙,會發現原來處處都“暗藏玄機”,哪怕是一行很短的代碼。

本書在所有細節上都力求完美。為瞭保證知識的準確性,操作係統運行過程中的每個動作都經過瞭嚴格的考證;為瞭讓我們真正理解Linux內核的原理,它突破傳統,以Linux的真實運行過程為主綫進行講解;為瞭做到真正易於理解,創新性地使用瞭圖解的方式,精心繪製瞭300餘幅分辨率600dpi的時序圖,圖中錶現的運行時結構和狀態與操作係統實際運行時的真實狀態完全吻閤;為瞭提高閱讀體驗,本書采用瞭雙色印刷,以便於我們更清楚地觀察每一幅圖中的細節。

著者簡介

新設計團隊,一直在為設計一個自主的、有所突破和創新的操作係統而努力。為瞭讓新的成員能更快、更容易地理解操作係統的精髓,從更高的角度去鑒賞和發現操作係統設計中的精妙與不足,團隊成員以Linux0.11內核為例,對操作係統的設計思想和實現原理進行瞭深刻地剖析,取得瞭十分好的效果,很好地培養和鍛煉瞭團隊成員對操作係統的駕馭能力。為瞭實現讓國人也能設計齣自己的操作係統的目標,本書作者團隊無私地將他們的獨特研究方式與研究成果奉獻瞭齣來,希望所有想要深刻理解Linux內核和操作係統設計思想的朋友能從中受益。

本書的特點在於,既不是空泛地講理論,也不是單純地從語法的角度去逐行地分析源代碼,而是以操作係統在實際運行中的幾個經典事件為主綫,將理論和實際結閤在一起,精準地再現瞭操作係統在實際運行中究竟是如何運轉的。宏觀上,大傢可以領略Linux0.11內核的設計指導思想,可以瞭解到各個環節是如何牽製並保持平衡的,以及軟件和硬件之間是如何互相依賴、互相促進的;微觀上,大傢可以看到每一個細節的實現方式和其中的精妙之處。

圖書目錄

前  言
第1章從開機加電到執行
main函數之前的過程
1.1 啓動BIOS,準備實模式下的中斷嚮量錶和中斷服務程序
1.1.1 BIOS的啓動原理
1.1.2 BIOS 在內存中加載中斷嚮量錶和中斷服務程序
1.2 加載操作係統內核程序並為保護模式做準備
1.2.1 加載第一部分內核代碼--引導程序(bootsect)
1.2.2 加載第二部分內核代碼--setup
1.2.3 加載第三部分內核代碼--system模塊
1.3 開始嚮32位模式轉變,為main函數的調用做準備
1.3.1 關中斷並將system移動到內存地址起始位置0x0000
1.3.2 設置中斷描述符錶和全局描述符錶
1.3.3 打開A20,實現32位尋址
1.3.4 為保護模式下執行head.s做準備
1.3.5 head.s開始執行
1.4 本章小結
第2章設備環境初始化及激活進程
2.1 設置根設備、硬盤
2.2 規劃物理內存格局,設置緩衝區、虛擬盤、主內存
2.3 設置虛擬盤空間並初始化
2.4 內存管理結構mem_map初始化
2.5 異常處理類中斷服務程序掛接
2.6 初始化塊設備請求項結構
2.7 與建立人機交互界麵相關的外設的中斷服務程序掛接
2.7.1 對串行口進行設置
2.7.2 對顯示器進行設置
2.7.3 對鍵盤進行設置
2.8 開機啓動時間設置
2.9 初始化進程
2.9.1 初始化進程
2.9.2 設置時鍾中斷
2.9.3 設置係統調用總入口
2.10 初始化緩衝區管理結構
2.11 初始化硬盤
2.12 初始化軟盤
2.13 開啓中斷
2.14 進程0由0特權級翻轉到3特權級,成為真正的進程
2.15 本章小結
第3章進程1的創建及執行
3.1 進程1的創建
3.1.1 進程0創建進程
3.1.2 在task[64]中為進程1申請一個空閑位置並獲取進程號
3.1.3 調用copy_process函數
3.1.4 設置進程1的分頁管理
3.1.5 進程1共享進程0的文件
3.1.6 設置進程1在GDT中的錶項
3.1.7 進程1處於就緒態
3.2 內核第一次做進程調度
3.3 輪轉到進程1執行
3.3.1 進程1為安裝硬盤文件係統做準備
3.3.2 進程1格式化虛擬盤並更換根設備為虛擬盤
3.3.3 進程1在根設備上加載根文件係統
3.4 本章小結
第4章進程2的創建及執行
4.1 打開終端設備文件及復製文件句柄
4.1.1 打開標準輸入設備文件
4.1.2 打開標準輸齣、標準錯誤輸齣設備文件
4.2 進程1創建進程2並切換到進程2執行
4.3 加載shell程序
4.3.1 關閉標準輸入設備文件,打開rc文件
4.3.2 檢測shell文件
4.3.3 為shell程序的執行做準備
4.3.4 執行shell程序
4.4 係統實現怠速
4.4.1 創建update進程
4.4.2 切換到shell進程執行
4.4.3 重建shell
4.5 本章小結
第5章文件操作
5.1 安裝文件係統
5.1.1 獲取外設的超級塊
5.1.2 確定根文件係統的掛接點
5.1.3 將超級塊與根文件係統掛接
5.2 打開文件
5.2.1 將進程的*filp[20]與file_table[64]掛接
5.2.2 獲取文件i節點
5.2.3 將文件i節點與file_table[64]掛接
5.3 讀文件
5.3.1 確定數據塊在外設中的位置
5.3.2 將數據塊讀入緩衝塊
5.3.3 將緩衝塊中的數據復製到進程空間
5.4 新建文件
5.4.1 查找文件
5.4.2 新建文件i節點
5.4.3 新建文件目錄項
5.5 寫文件
5.5.1 確定文件的寫入位置
5.5.2 申請緩衝塊
5.5.3 將指定的數據從進程空間復製到緩衝塊
5.5.4 數據同步到外設的兩種方法
5.6 修改文件
5.6.1 重定位文件的當前操作指針
5.6.2 修改文件
5.7 關閉文件
5.7.1 當前進程的filp與file_table[64]脫鈎
5.7.2 文件i節點被釋放
5.8 刪除文件
5.8.1 對文件的刪除條件進行檢查
5.8.2 進行具體的刪除工作
5.9 本章小結
第6章用戶進程與內存管理
6.1 綫性地址的保護
6.1.1 進程綫性地址空間的格局
6.1.2 段基址、段限長、GDT、LDT、特權級
6.2 分頁
6.2.1 綫性地址映射到物理地址
6.2.2 進程執行時分頁
6.2.3 進程共享頁麵
6.2.4 內核分頁
6.3 一個用戶進程從創建到退齣的完整過程
6.3.1 創建str1進程
6.3.2 str1進程加載的準備工作
6.3.3 str1進程的運行、加載
6.3.4 str1進程的退齣
6.4 多個用戶進程同時運行
6.4.1 進程調度
6.4.2 頁寫保護
6.5 本章小結
第7章緩衝區和多進程操作文件
7.1 緩衝區的作用
7.2 緩衝區的總體結構
7.3 b_dev、b_blocknr及request的作用
7.3.1 保證進程與緩衝塊數據交互的正確性
7.3.2 讓數據在緩衝區中停留的時間盡可能長
7.4 uptodate和dirt的作用
7.4.1 b_uptodate的作用
7.4.2 b_dirt的作用
7.4.3 i_uptodate、i_dirt和s_dirt的作用
7.5 count、 lock、wait、request的作用
7.5.1 b_count的作用
7.5.2 i_count的作用
7.5.3 b_lock、*b_wait的作用
7.5.4 i_lock、i_wait、s_lock、*s_wait的作用
7.5.5 補充request的作用
7.6 實例1:關於緩衝塊的進程等待隊列
7.7 總體來看緩衝塊和請求項
7.8 實例2:多進程操作文件的綜閤實例
7.9 本章小結
第8章進程間通信
8.1 管道機製
8.1.1 管道的創建過程
8.1.2 管道的操作
8.2 信號機製
8.2.1 信號的使用
8.2.2 信號對進程執行狀態的影響
8.3 本章小結
第9章操作係統的設計指導思想
9.1 運行一個最簡單的程序,看操作係統為程序運行做瞭哪些工作
9.2 操作係統的設計指導思想--主奴機製
9.2.1 主奴機製中的進程及進程創建機製
9.2.2 操作係統的設計如何體現主奴機製
9.3 實現主奴機製的三種關鍵技術
9.3.1 保護和分頁
9.3.2 特權級
9.3.3 中斷
9.4 建立主奴機製的決定性因素--先機
9.5 軟件和硬件的關係
9.5.1 非用戶進程--進程0、進程1、shell進程
9.5.2 文件與數據存儲
9.6 父子進程共享頁麵
9.7 操作係統的全局中斷與進程的局部中斷--信號
9.8 本章小結
結束語
“新設計團隊”簡介
· · · · · · (收起)

讀後感

評分

想学习了解Linux内核方面的知识,抱着虚心虔诚的态度,鬼使神差的买了如题这本书。 开始阅读... 读完前言,读完第一章还没什么感觉, 第二章开始感觉有点不对头,等读到50页彻底崩溃,要疯了。 CPU 操作系统两个概念都搞混了,把中断处理机制乱讲一通......实在怀疑是计算机...  

評分

恭喜出版社,成功忽悠我买了这本书。网上评论大量水军,真令人失望。这本书对linux0.11的剖析,看似大篇代码,其实理解不高,真正让人迷惑的地方一笔带过,不该讲解的地方拼命的讲解。比如,第38页末到39页,讲一个怎么返回到main函数,自以为精妙的废话连篇了一页多的纸。如果...  

評分

评论英文原文: This book has lot of details, I mean lot of details. Linux kernel 0.11 has been dissected and explained in very detailed way in this book,The reason I am giving a 4 star is not because it focuses on 0.11 version which is over 20 years, but I ...  

評分

该书特点:对linux 0.11的启动过程和重要的文件系统、内存管理做了流程性的讲解;有助于从运行的层次来帮助理解0.11的源代码。 不过遗憾的是该流程性的讲解很多时候没有把握到重点和疑点,该详细讲解的地方没有讲,不该详细讲解的地方讲了很多,条理也不太清楚。 所以在看第2...  

評分

刚刚到手,太仔细看,试读版中用的字色加重,实体书用的是绿色,觉得不如试读版明显。另外机械工业的书纸太差,发脆而且透明。 对于内容的印象停留在试读版本,觉得还不错,适合我这样没什么基础的人看,讲得比较细致,配图理解起来确实要好一些。至于说讲得0.11的内核,我觉得...  

用戶評價

评分

作為完全的外行人,翻閱過,感覺誠意不少;有機會再翻。。。

评分

非常詳細的源碼解讀。準備根據ucore做實驗重新理解一遍

评分

上學期有幸聽瞭楊力祥講瞭一學期的這本書,老師確實講得很好,不過無奈課時太少,就講瞭一百多頁。最近花一禮拜把這本書後麵的部分看完瞭,不夠清楚的地方可以配閤趙炯的《Linux內核完全注釋》來看。這本書讓你對linux進程、內存管理、緩衝區、中斷、文件係統等有更深認識,值得一讀。

评分

很形象的圖,跟趙炯的"內核完全解析"可以一起結閤來看

评分

作為完全的外行人,翻閱過,感覺誠意不少;有機會再翻。。。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有