王者歸來:和大師一起動手--撰寫一個完整的作業系統

鄭鋼

  • 出版商: 佳魁資訊
  • 出版日期: 2017-05-30
  • 定價: $860
  • 售價: 7.9$679
  • 語言: 繁體中文
  • 頁數: 1120
  • ISBN: 9863795070
  • ISBN-13: 9789863795070
  • 相關標籤: 作業系統

立即出貨 (庫存 > 10)

  • 9789863795070 bc
  • 9789863795070 bi1
  • 9789863795070 bi2
  • 9789863795070 bi3
  • 9789863795070 bi4
  • 9789863795070 bi5
  • 9789863795070 bi6
  • 9789863795070 bi7
  • 9789863795070 bi8
  • 9789863795070 b1
  • 9789863795070 b2
  • 9789863795070 b3
  • 9789863795070 b4
  • 9789863795070 b5
  • 9789863795070 b6
9789863795070 bc

買這商品的人也買了...

產品描述

作業系統並不深奧,本書給予權威解讀
用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 設定bochs
1.5 執行bochs
Chapter 02 撰寫MBR 主啟動記錄,讓我們開始掌權
2.1 電腦的啟動過程
2.2 軟體接力第一棒,BIOS
2.3 讓MBR 先飛一會兒
Chapter 03 增強MBR
3.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 可程式化中斷控制器8259A
7.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 為什麼要有工作狀態段TSS
11.2 定義並初始化TSS
11.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 實現一個簡單的shell
15.5 載入使用者處理程序
15.6 實現系統呼叫wait 和exit
15.7 管線