王者歸來: 和大師一起動手撰寫一個完整的作業系統 | 誠品線上

內容簡介

內容簡介 作業系統並不深奧,本書給予權威解讀● 用6000多行程式碼建立一個完整的作業系統。● 徹底剖析作業系統的原理,實現核心執行緒、特權等級變換、使用者處理程序、系統呼叫、檔案系統等作業系統基本的組成單元。● 用實際程式碼解釋了鎖、號誌、生產者消費者問題。● 實現一個簡單的shell,幫助大家理解內部命令、外部命令、管線等操作。作業系統是一切電腦運作的基礎,不管是你我熟悉的Windows、伺服器用的Linux,綜合兩者的Mac OS,當然還有手機上的iOS或是Android,甚至是車載、機載的系統,都是作業系統的一種。一般認為作業系統是最複雜的軟體,但隨著工具的進步,再加上資訊的流通,作業系統的底層運作方式也不再是祕密。本書使用C語言及少量的組合語言,用最簡單易懂的方式,讓你建立一個自己的作業系統,解說清楚,程式碼詳盡,從前視為巨型公司的頂尖工程團隊才能完成的艱鉅任務,現在由大師帶你動手,撰寫自己的作業系統!適用:程式師、系統底層開發人員、作業系統愛好者。

作者介紹

作者介紹 ■作者簡介鄭鋼畢業於北京大學,前百度運維高級工程師,對作業系統有深入的研究。愛運動,喜鑽研,熱衷於嘗試前沿技術,樂於分享學習成果。

產品目錄

產品目錄 前言Chapter 00 一些你可能正感到迷惑的問題0.1 作業系統是什麼0.2 你想研究到什麼程度0.3 撰寫作業系統,哪些需要我來做0.4 軟體是如何存取硬體的0.5 應用程式是什麼,和作業系統是如何配合到一起的0.6 為什麼稱為「陷入」核心0.7 記憶體存取為什麼要分段0.8 程式中為什麼分為程式碼片段、資料段?這和記憶體存取機制中的段是一回事嗎0.9 實體位址、邏輯位址、有效位址、線性位址、虛擬位址的區別0.10 什麼是段重疊0.11 什麼是平坦模型0.12 cs、ds 這種sreg 段暫存器,位寬是多少0.13 什麼是專案,什麼是協定0.14 為什麼Linux 系統下的應用程式不能在Windows 系統下執行0.15 區域變數和函數參數為什麼要放在堆疊中0.16 為什麼說組合語言比C 語言快0.17 先有的語言,還是先有的編譯器,第1 個編譯器是怎麼產生的0.18 編譯型程式與直譯型程式的區別0.19 什麼是大端位元組序、小端位元組序0.20 BIOS 中斷、DOS 中斷、Linux 中斷的區別0.21 Section 和Segment 的區別0.22 什麼是魔術參數0.23 作業系統是如何識別檔案系統的0.24 如何控制CPU 的下一行指令0.25 指令集、系統結構、微架構、程式語言0.26 函數庫函數是使用者處理程序與核心的橋樑0.27 逸出字元與ASCII 碼0.28 MBR、EBR、DBR 和OBR各是什麼Chapter 01 部署工作環境1.1 工欲善其事,必先利其器1.2 我們需要哪些編譯器1.3 作業系統的宿主環境1.4 設定bochs1.5 執行bochsChapter 02 撰寫MBR 主啟動記錄,讓我們開始掌權2.1 電腦的啟動過程2.2 軟體接力第一棒,BIOS2.3 讓MBR 先飛一會兒Chapter 03 增強MBR3.1 地址、section、vstart 淺嘗即止3.2 CPU 的真實模式3.3 讓我們直接對顯示器說點什麼吧3.4 bochs 偵錯方法3.5 硬碟介紹3.6 讓MBR 使用硬碟Chapter 04 保護模式入門4.1 保護模式概述CPU,變成了16 位元4.2 初見保護模式4.3 通用描述元表4.4 處理器微架構簡介4.5 使用遠跳躍指令清空管線,更新段描述符號緩衝暫存器4.6 保護模式之記憶體段的保護Chapter 05 保護模式進階,向核心邁進5.1 取得實體記憶體容量5.2 啟用記憶體分頁機制,暢遊虛擬空間5.3 載入核心5.4 特權等級深入淺出Chapter 06 增強核心6.1 函數呼叫約定簡介6.2 組合語言和C 語言混合程式設計6.3 實現自己的列印函數6.4 內聯組合語言Chapter 07 中斷7.1 中斷是什麼,為什麼要有中斷7.2 作業系統是中斷驅動的7.3 中斷分類7.4 中斷描述符號表7.5 可程式化中斷控制器8259A7.6 撰寫中斷處理常式7.7 可程式化計數器 計時器8253 簡介7.8 加強時脈中斷的頻率,讓中斷來得更猛烈一些Chapter 08 記憶體管理系統8.1 makefile 簡介8.2 實現assert 斷言8.3 實現字串操作函數8.4 點陣圖bitmap 及其函數的實現8.5 記憶體管理系統Chapter 09 執行緒9.1 實現核心執行緒9.2 在核心空間實現執行緒9.3 核心資料結構,雙向鏈結串列9.4 多執行緒排程Chapter 10 輸入輸出系統10.1 同步機制——鎖10.2 用鎖實現終端輸出10.3 從鍵盤取得輸入10.4 撰寫鍵盤驅動10.5 環狀輸入緩衝區Chapter 11 使用者處理程序11.1 為什麼要有工作狀態段TSS11.2 定義並初始化TSS11.3 實現使用者處理程序11.3 執行時期註釋Chapter 12 進一步增強核心12.1 Linux 系統呼叫淺析.12.2 系統呼叫的實現12.3 讓使用者處理程序「說話」12.4 增強堆積記憶體管理Chapter 13 撰寫硬碟驅動程式13.1 硬碟及分區表13.2 撰寫硬碟驅動程式Chapter 14 檔案系統14.1 檔案系統概念簡介14.2 建立檔案系統14.3 檔案描述符號簡介14.4 檔案操作相關的基礎函數14.5 建立檔案14.6 檔案的開啟與關閉14.7 實現檔案寫入14.8 讀取檔案14.9 實現檔案讀寫指標定位功能14.10 實現檔案刪除功能14.11 建立目錄14.12 檢查目錄14.13 刪除目錄14.14 工作的工作目錄14.15 獲得檔案屬性Chapter 15 系統互動15.1 fork 的原理與實現15.2 增加read 系統呼叫,取得鍵盤輸入15.3 增加putchar、clear 系統呼叫15.4 實現一個簡單的shell15.5 載入使用者處理程序15.6 實現系統呼叫wait 和exit15.7 管線

王者歸來: 和大師一起動手撰寫一個完整的作業系統:作業系統並不深奧,本書給予權威解讀贯用6000多行程式碼建立一個完整的作業系統。贯徹底剖析作業系統的原理,實現核心執

書名 / 王者歸來: 和大師一起動手撰寫一個完整的作業系統
簡介 / 王者歸來: 和大師一起動手撰寫一個完整的作業系統:作業系統並不深奧,本書給予權威解讀贯用6000多行程式碼建立一個完整的作業系統。贯徹底剖析作業系統的原理,實現核心執
作者 / 鄭鋼
出版社 / 佳魁資訊股份有限公司
誠品26碼 / 2681462034000
ISBN13 / 9789863795070
ISBN10 / 9863795070
EAN / 9789863795070
用電 / N
開數 / 18K
級別 /
語言 / 中文 繁體
頁數 / 1120
裝訂 / 平裝