作 者:王柏生,王晟寒 著
定 價:99
出 版 社:機械工業出版社
出版日期:2023年09月01日
頁 數:400
裝 幀:平裝
ISBN:9787111732884
(1)作者背景資深:在百度等企業一線從事操作繫統研發20餘年,對操作繫統有極為深入的理解,是行業裡知名的專家。(2)作者善於布道:一直致力於操作繫統的教育和布道,深知學習操作繫統的難點和痛點,能將復雜的操作繫統知識化繁為簡、舉重若輕,讓學習過程事半功倍。(3)成功實踐復盤:作者指導自己9歲的孩子學習操作繫統,並成功從0到1編寫出操作繫統,本書內容是整個學習過程的深度復盤。(4)真正零基礎,人人學得會:即便你是電信號和二進制都不懂的小學生,你也能跟隨本書理解計算機的軟硬件和操作繫統的工作原理,自己等
●前言
第1章 計算機基礎 1
1.1 認識電 1
1.2 信息表示 5
1.2.1 二進制 5
1.2.2 十六進制 6
1.3 計算 7
1.3.1 邏輯運算 8
1.3.2 邏輯門 8
1.3.3 加法器 10
1.4 內存 12
1.4.1 物理實現 12
1.4.2 數學抽像 16
1.5 總線 17
1.6 寄存器 20
1.7 程序 22
1.8 外存 26
1.9 外設及接口 27
1.9.1 I/O地址空間 28
1.9.2 內存映射I/O 29
1.10 地址空間 30
1.11 數學模型到物理世界 31
第2章 認識Linux 34
2.1 什麼是操作繫統 34
2.2 文件繫統 35
2.3 終端 37
2.4 shell 39
2.5 Linux常用命令 40
2.6 ANSI轉義序列 43
2.7 編輯器 45
2.8 準備“物理”計算機 47
第3章 機器語言程序設計 49
3.1 程序及指令 49
3.2 補碼 50
3.3 ASCII碼 52
3.4 串口 53
3.5 “向串口寫字符A”的程序流程 55
3.6 寫外設指令 55
3.7 準備源操作數 57
3.8 準備目的操作數 58
3.9 跳轉指令 59
3.10 創建程序文件 60
3.11 程序執行過程 61
3.12 使用kvmtool運行程序 69
第4章 彙編語言程序設計 71
4.1 初識彙編語言 71
4.2 段及段寄存器 72
4.3 指令指針寄存器 74
4.4 通用寄存器 75
4.5 標志寄存器 76
4.6 彙編指令格式 78
4.7 第一個彙編程序 78
4.7.1 彙編和鏈接 79
4.7.2 運行 80
4.7.3 顯式設置操作數的段寄存器 83
4.7.4 偽指令.code16 85
4.8 構建工具Make 85
4.9 操作數尋址 86
4.9.1 立即數尋址 87
4.9.2 直接尋址 88
4.9.3 ModR/M尋址 89
4.9.4 SIB尋址 94
4.9.5 SIB + disp尋址 98
4.10 程序運行流程控制 101
4.10.1 選擇 101
4.10.2 循環 102
4.11 棧 103
4.12 函數及x86調用約定 107
4.12.1 call和ret指令 108
4.12.2 棧幀 110
4.12.3 多模塊及符號可見性 113
4.12.4 參數傳遞 114
4.12.5 局部變量 116
4.12.6 返回值及參數清理 118
4.12.7 寄存器保存和恢復 119
4.13 鏈接 122
4.13.1 目標文件合並 123
4.13.2 符號解析 125
4.13.3 符號的可見性 128
第5章 C語言程序設計 129
5.1 基本語法 130
5.1.1&emsp素 130
5.1.2 表達式 131
5.1.3 聲明 132
5.1.4 語句 133
5.1.5 標識符 135
5.1.6 對像的存儲類別 138
5.1.7 頭文件 138
5.1.8 預處理指令 139
5.2 C語言入口 141
5.3 第一個C程序 142
5.4 從C語言到機器語言 143
5.5 變量 145
5.5.1 變量類型 146
5.5.2 局部變量 147
5.5.3 全局變量 150
5.5.4 全局變量的鏈接性 151
5.5.5 靜態局部變量 152
5.5.6 變量類型轉換 154
5.5.7 溢出 155
5.6 運算 157
5.6.1 算術運算 157
5.6.2 遞增和遞減 158
5.6.3 關繫運算 159
5.6.4 邏輯運算 161
5.6.5 位運算 163
5.6.6 賦值運算 164
5.6.7 運算的優先級和結合性 165
5.7 程序運行流程控制 166
5.7.1 選擇 166
5.7.2 循環 168
5.8 數組 172
5.9 結構體 175
5.9.1 基本語法 175
5.9.2 內存布局 176
5.9.3 位域 179
5.10 指針 180
5.10.1 基本語法 181
5.10.2 指向結構體的指針 183
5.10.3 指針的+/-運算 185
5.10.4 雙指針 186
5.10.5 void指針 188
5.10.6 空指針 189
5.11 函數 189
5.11.1 基本語法 189
5.11.2 參數的值傳遞和指針傳遞 191
5.11.3 const參數 195
5.11.4 函數指針 195
5.12 內聯彙編 197
第6章 32位引導過程 200
6.1 實模式 200
6.2 保護模式 201
6.3 內核映像組成及布局 203
6.3.1 實模式地址空間 203
6.3.2 內核映像的布局 205
6.3.3 內核映像文件組織 206
6.4 創建保護模式的段描述符 207
6.4.1 段描述符格式 207
6.4.2 保護模式的內核代碼段描述符 208
6.4.3 保護模式的內核數據段描述符 210
6.4.4 創建保護模式的段描述符表 210
6.5 告知處理器段描述符表地址 211
6.6 開啟處理器保護模式 212
6.7 跳轉到內核保護模式部分 213
6.7.1 準備保護模式部分 213
6.7.2 跳轉到保護模式部分 214
6.8 編譯及創建內核映像文件 215
6.8.1 編譯內核 215
……
這是一本能指導零計算機基礎的讀者輕松理解計算機軟硬件和操作繫統工作原理,從而自己動手從0到1編寫出一個操作繫統的著作。作者在操作繫統領域深度耕耘20餘載,不僅一直奮鬥在百度等企業一線,而且一直致力於操作繫統的教育和布道,希望能幫助和指導越來越多的人,尤其是青少年,能從學生時代開始學習操作繫統,能從底層原理真正理解操作繫統,改變我國基礎軟件受制於人的現狀。本書不僅是作者悟透操作繫統本質、厚積薄發的成果,而且是他將復雜的操作繫統原理化繁為簡、舉重若輕,成功指導自己9歲的孩子從0到1編寫出一個操作繫統的過程的全面復盤和復現。本書驅散了操作繫統的迷霧,讓操作繫統不再神秘和高不可攀,讓每一個懷揣操作繫統夢的中國人都能理解並實現自己的操作繫統。全書一共14章,邏輯上分為上下兩篇。上篇(第1~5章) 計算機軟硬件基礎和原理從計算機如何使用電進行計算開始,首先講述了電是如何抽像為信息的,處理器是怎樣進行運等