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

Linux源碼趣讀

  • 作者:閃客|責編:張月萍
  • 出版社:電子工業
  • ISBN:9787121462870
  • 出版日期:2023/09/01
  • 裝幀:平裝
  • 頁數:412
人民幣:RMB 158 元      售價:
放入購物車
加入收藏夾

內容大鋼
    用讀一本小說的心態來閱讀本書,你會對整個操作系統的體系結構和邏輯細節有非常清晰的認識,從此愛上並閱讀更多的操作系統源碼。
    第1部分:進入內核前的苦力活。覆蓋從開機到運行到Linux中的main函數的關鍵流程解析,幫你清晰認識Intel CPU的體系結構。
    第2部分:「大戰」前期的初始化工作。講述main中的各種初始化函數,這些函數是操作系統各個模塊的交互橋樑,為理解後續操作系統各個模塊的運作原理打好基礎。
    第3部分:一個新進程的誕生。講述從內核態切換至用戶態,並建立起第一個用戶進程的全部過程。學完這部分,你將會理解一個多進程的操作系統是如何建立和運作的。
    第4部分:shell程序的到來。主要討論如何將磁碟中存儲的shell程序載入到內存中來,並最終交給CPU去執行。通過這個過程你會看清一個程序從存儲到硬碟到最終被執行的全部過程。
    第5部分:一條shell命令的執行。讓我們跟著一條shell命令「走南闖北」,從用戶輸入給電腦一個字元串開始,一直到該程序的最終執行,這一過程能幫你把前面所學的知識融會貫通,整個操作系統的啟動流程與運作原理,將會生動形象地浮現在你的腦海中。

作者介紹
閃客|責編:張月萍
    閃客,平時樂於研究電腦底層技術與做技術分享。作為「無聊的閃客」微信公眾號作者,兩年時間積累近10萬粉絲,擅長使用通俗易懂的語言講解複雜的技術原理,他的「破玩意兒」系列、「降妖除魔」系列、「操作系統重磅系列」等,都深受讀者喜愛。

目錄
第1部分  進入內核前的苦力活
  第1回  最開始的兩行代碼
    開機后初始化指向BIOS
    讀取硬碟啟動區(第一扇區)
    載入到內存0x7c00位置,並跳轉到這裡
  第2回  從0x7c00到0x90000
  第3回  做好訪問內存的基礎準備工作
    這些寄存器是幹什麼的
    CPU訪問內存的三種途徑
    再次回顧一下前三回的內容
  第4回  把全部的操作系統代碼從硬碟搬到內存
    把剩下的操作系統代碼從硬碟請到內存
    聊聊操作系統的編譯過程
    挪來挪去的真討厭
  擴展閱讀:什麼是中斷
  擴展閱讀:什麼是軟中斷
  第5回  將重要的操作系統代碼放在零地址處
  第6回  解決段寄存器的歷史包袱問題
    保護模式下的物理地址計算方式
    全局描述符表
  第7回  六行代碼進入保護模式
  第8回  重新設置中斷描述符表與全局描述符表
  第9回  開啟分頁機制
  第10回  進入main函數前的最後一躍
  第1部分總結與回顧
第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
  第2部分總結與回顧
第3部分  一個新進程的誕生
  第21回  第3部分  全局概述
    move_to_user_mode
    fork
    init
    pause
  第22回  從內核態切換到用戶態
    讓進程無法跳出用戶態
    內核態與用戶態的本質—特權級
    特權級轉換的方式
    除了改變特權級還做了哪些事
  第23回  如果讓你來設計進程調度
    整體流程設計

    上下文環境
    運行時間信息
    優先順序
    進程狀態
  第24回  從一次定時器滴答來看進程調度
  第25回  通過fork看一次系統調用
  第26回  fork函數中進程基本信息的複製
  第27回  透過fork來看進程的內存規劃
    LDT的賦值
    頁表的複製
  第28回  番外篇——我居然會認為權威著作寫錯了
  第29回  番外篇——寫時複製就這麼幾行代碼
    儲備知識
    寫時複製的本質
    看看代碼是怎麼寫的
  第30回  番外篇——你管這破玩意兒叫文件系統
    1.分塊
    2.點陣圖
    3.inode
    4.間接索引
    5.超級塊與塊描述符
    6.文件分類
    7.文件名
    8.根目錄
  第3部分總結與回顧
  第4部分展望
第4部分  shell程序的到來
  第31回  拿到硬碟信息
  第32回  載入根文件系統
    硬碟中的文件系統格式是怎樣的
    內存中用於文件系統的數據結構有哪些
  第33回  打開終端設備文件
  第34回  進程2的創建
    fork
    close
    open
    execve
  第35回  execve載入並執行shell程序
    讀取文件開頭1KB的數據
    將這1KB的數據解析為exec結構
    判斷是腳本文件還是可執行文件
    準備參數空間
    設置eip和esp,完成搖身一變
    電腦的世界沒有魔法
  第36回  缺頁中斷
    跳轉到一個不存在的地址會發生什麼
    缺頁中斷do_no_page
    缺頁中斷返回
  第37回  shell程序跑起來了
  第38回  操作系統啟動完畢!

  第39回  番外篇——調試Linux最早期的代碼
    整體思路和效果
    第一步:配置虛擬機
    第二步:安裝qemu
    第三步:下載並運行可調試的Linux-0.11源碼
    第四步:通過vscode遠程調試
  第40回  番外篇——為什麼有些技術原理你怎麼看也看不懂
  第4部分總結與回顧
第5部分  一條shell命令的執行
  第41回  一條shell命令的執行過程概述
  第42回  用鍵盤輸入一條命令
  第43回  shell程序讀取你的命令
  第44回  進程的阻塞與喚醒
  第45回  解析並執行shell命令
  第46回  讀硬碟數據全流程
    如果讓你來設計這個函數
    鳥瞰操作系統的讀操作函數
    執行讀操作file_read
  第47回  讀取硬碟數據的細節
  第48回  信號
  第49回  番外

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