预购商品
书目分类
特别推荐
用讀一本小說的心態來閱讀本書,你會對整個作業系統的體系結構和邏輯細節有非常清晰的認識,從此愛上並閱讀更多的作業系統源碼。 第1部分:進入內核前的苦力活。覆蓋從開機到運行到Linux中的main函數的關鍵流程解析,幫你清晰認識Intel CPU的體系結構。 第2部分:“大戰”前期的初始化工作。講述main中的各種初始化函數,這些函數是作業系統各個模組的交互橋樑,為理解後續作業系統各個模組的運作原理打好基礎。 第3部分:一個新進程的誕生。講述從內核態切換至用戶態,並建立起第一個使用者進程的全部過程。學完這部分,你將會理解一個多進程的作業系統是如何建立和運作的。 第4部分:shell程式的到來。主要討論如何將磁片中存儲的shell程式載入到記憶體中來,並最終交給CPU去執行。通過這個過程你會看清一個程式從存儲到硬碟到最終被執行的全部過程。 第5部分:一條shell命令的執行。讓我們跟著一條shell命令“走南闖北”,從使用者輸入給電腦一個字串開始,一直到該程式的最終執行,這一過程能幫你把前面所學的知識融會貫通,整個作業系統的啟動流程與運作原理,將會生動形象地浮現在你的腦海中。
第1部分 進入內核前的苦力活 第1回 最開始的兩行代碼 第2回 從0x7c00到0x90000 第3回 做好訪問記憶體的基礎準備工作 第4回 把全部的作業系統代碼從硬碟搬到記憶體 第5回 將重要的作業系統代碼放在零位址處 第6回 解決段寄存器的歷史包袱問題 第7回 六行代碼進入保護模式 第8回 重新設置中斷描述符表與通用描述元表 第9回 開啟分頁機制 第10回 進入main函數前的最後一躍 第2部分 “大戰”前期的初始化工作 第11回 整個作業系統就二十幾行代碼 第12回 管理記憶體前先劃分出三個邊界值 第13回 主記憶體初始化mem_init 第14回 中斷初始化trap_init 第15回 塊設備請求項初始化blk_dev_init 第16回 控制台初始化tty_init 第17回 時間初始化time_init 第18回 進程調度初始化sched_init 第19回 緩衝區初始化buffer_init 第20回 硬碟初始化hd_init 第3部分 一個新進程的誕生 第21回 第3 部分全域概述 第22 回 從內核態切換到用戶態 第23回 如果讓你來設計進程調度 第24回 從一次計時器滴答來看進程調度 第25回 通過fork 看一次系統調用 第26回 fork 函數中進程基本資訊的複製 第27回 透過fork 來看進程的記憶體規劃 第28回 番外篇——我居然會認為權威著作寫錯了 第29回 番外篇——寫時複製就這麼幾行代碼 第30回 番外篇——你管這破玩意兒叫檔案系統 第4部分 shell程式的到來 第31回 拿到硬碟資訊 第32回 載入根檔案系統 第33回 打開終端設備文件 第34回 進程2的創建 第35回 execve 載入並執行shell程式 第36回 缺頁中斷 第37回 shell程式跑起來了 第38回 作業系統啟動完畢! 第39回 番外篇——調試Linux最早期的代碼 第40回 番外篇——為什麼有些技術原理你怎麼看也看不懂 第5部分 一條shell命令的執行 第41回 一條shell命令的執行過程概述 第42回 用鍵盤輸入一條命令 第43回 shell程式讀取你的命令 第44回 進程的阻塞與喚醒 第45回 解析並執行shell命令 第46回 讀硬碟資料全流程 第47回 讀取硬碟資料的細節 第48回 信號 第49回 番外篇——為什麼你學得比別人慢
閃客,平時樂於研究電腦底層技術與技術分享。作為“無聊的閃客”自媒體作者,兩年時間積累近10萬粉絲,擅長使用通俗易懂的語言講解複雜的技術原理,他的“破玩意”系列、“降妖除魔”系列、“作業系統源碼”系列等,都深受讀者喜愛。
客服公告
热门活动
订阅电子报