注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Linux源碼趣讀

Linux源碼趣讀

Linux源碼趣讀

定 價:¥158.00

作 者: 閃客
出版社: 電子工業(yè)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787121462870 出版時間: 2023-09-01 包裝: 平塑勒單襯
開本: 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  用讀一本小說的心態(tài)來閱讀本書,你會對整個操作系統(tǒng)的體系結(jié)構(gòu)和邏輯細(xì)節(jié)有非常清晰的認(rèn)識,從此愛上并閱讀更多的操作系統(tǒng)源碼。第1部分:進(jìn)入內(nèi)核前的苦力活。覆蓋從開機(jī)到運行到Linux中的main函數(shù)的關(guān)鍵流程解析,幫你清晰認(rèn)識Intel CPU的體系結(jié)構(gòu)。第2部分:“大戰(zhàn)”前期的初始化工作。講述main中的各種初始化函數(shù),這些函數(shù)是操作系統(tǒng)各個模塊的交互橋梁,為理解后續(xù)操作系統(tǒng)各個模塊的運作原理打好基礎(chǔ)。第3部分:一個新進(jìn)程的誕生。講述從內(nèi)核態(tài)切換至用戶態(tài),并建立起第一個用戶進(jìn)程的全部過程。學(xué)完這部分,你將會理解一個多進(jìn)程的操作系統(tǒng)是如何建立和運作的。第4部分:shell程序的到來。主要討論如何將磁盤中存儲的shell程序加載到內(nèi)存中來,并最終交給CPU去執(zhí)行。通過這個過程你會看清一個程序從存儲到硬盤到最終被執(zhí)行的全部過程。第5部分:一條shell命令的執(zhí)行。讓我們跟著一條shell命令“走南闖北”,從用戶輸入給計算機(jī)一個字符串開始,一直到該程序的最終執(zhí)行,這一過程能幫你把前面所學(xué)的知識融會貫通,整個操作系統(tǒng)的啟動流程與運作原理,將會生動形象地浮現(xiàn)在你的腦海中。

作者簡介

  閃客,平時樂于研究計算機(jī)底層技術(shù)與技術(shù)分享。作為“無聊的”微信公眾號作者,兩年時間積累近10萬粉絲,擅長使用通俗易懂的語言講解復(fù)雜的技術(shù)原理,他的“破玩意”系列、“降妖除魔”系列、“操作系統(tǒng)源碼”系列等,都深受讀者喜愛。

圖書目錄

第1 部分 進(jìn)入內(nèi)核前的苦力活
第1回 最開始的兩行代碼  / 2
開機(jī)后初始化指向BIOS  / 3
讀取硬盤啟動區(qū)(第一扇區(qū))  / 4
加載到內(nèi)存 0x7c00 位置,并跳轉(zhuǎn)到這里  / 5
第2回 從0x7c00 到0x90000  / 8
第3回 做好訪問內(nèi)存的基礎(chǔ)準(zhǔn)備工作  / 13
這些寄存器是干什么的  / 14
CPU 訪問內(nèi)存的三種途徑  / 15
再次回顧一下前三回的內(nèi)容  / 16
第4回 把全部的操作系統(tǒng)代碼從硬盤搬到內(nèi)存  / 17
把剩下的操作系統(tǒng)代碼從硬盤請到內(nèi)存  / 17
聊聊操作系統(tǒng)的編譯過程  / 21
挪來挪去的真討厭  / 22
擴(kuò)展閱讀:什么是中斷  / 23
擴(kuò)展閱讀:什么是軟中斷  / 38
第5回 將重要的操作系統(tǒng)代碼放在零地址處  / 48
第6回 解決段寄存器的歷史包袱問題  / 56
保護(hù)模式下的物理地址計算方式  / 57
全局描述符表  / 59
第7回 六行代碼進(jìn)入保護(hù)模式  / 63
第8回 重新設(shè)置中斷描述符表與全局描述符表  / 69
第9回 開啟分頁機(jī)制  / 75
第10 回 進(jìn)入main 函數(shù)前的最后一躍  / 86
第1 部分總結(jié)與回顧  / 92
第2 部分 “大戰(zhàn)”前期的初始化工作
第11 回 整個操作系統(tǒng)就二十幾行代碼  / 98
第12 回 管理內(nèi)存前先劃分出三個邊界值  / 103
第13 回 主內(nèi)存初始化mem_init  / 106
第14 回 中斷初始化trap_init  / 110
第15 回 塊設(shè)備請求項初始化blk_dev_init  / 116
第16 回 控制臺初始化tty_init  / 123
第17 回 時間初始化time_init  / 132
第18 回 進(jìn)程調(diào)度初始化sched_init  / 138
第19 回 緩沖區(qū)初始化buffer_init  / 147
第20 回 硬盤初始化hd_init  / 155
第2 部分總結(jié)與回顧  / 159
第3 部分 一個新進(jìn)程的誕生
第21 回 第3 部分全局概述  / 172
move_to_user_mode  / 173
fork  / 174
init  / 174
pause  / 175
第22 回 從內(nèi)核態(tài)切換到用戶態(tài)  / 176
讓進(jìn)程無法跳出用戶態(tài)  / 176
內(nèi)核態(tài)與用戶態(tài)的本質(zhì)—特權(quán)級  / 177
特權(quán)級轉(zhuǎn)換的方式  / 178
除了改變特權(quán)級還做了哪些事  / 181
第23 回 如果讓你來設(shè)計進(jìn)程調(diào)度  / 184
整體流程設(shè)計  / 185
上下文環(huán)境  / 186
運行時間信息  / 188
優(yōu)先級  / 188
進(jìn)程狀態(tài)  / 189
第24 回 從一次定時器滴答來看進(jìn)程調(diào)度  / 192
第25 回 通過fork 看一次系統(tǒng)調(diào)用  / 197
第26 回 fork 函數(shù)中進(jìn)程基本信息的復(fù)制  / 205
第27 回 透過fork 來看進(jìn)程的內(nèi)存規(guī)劃  / 213
LDT 的賦值  / 214
頁表的復(fù)制  / 217
第28 回 番外篇——我居然會認(rèn)為權(quán)威著作寫錯了  / 221
第29 回 番外篇——寫時復(fù)制就這么幾行代碼  / 227
儲備知識  / 227
寫時復(fù)制的本質(zhì)  / 230
看看代碼是怎么寫的  / 232
第30 回 番外篇——你管這破玩意兒叫文件系統(tǒng)  / 237
第3 部分總結(jié)與回顧  / 251
第4 部分展望  / 254

第4 部分 shell 程序的到來
第31 回 拿到硬盤信息   / 258
第32 回 加載根文件系統(tǒng)  / 264
硬盤中的文件系統(tǒng)格式是怎樣的  / 266
內(nèi)存中用于文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)有哪些  / 267
第33 回 打開終端設(shè)備文件  / 272
第34 回 進(jìn)程2 的創(chuàng)建   / 281
fork  / 282
close  / 285
open  / 285
execve  / 286
第35 回 execve 加載并執(zhí)行shell 程序   / 287
讀取文件開頭 1KB 的數(shù)據(jù)  / 289
將這 1KB 的數(shù)據(jù)解析為 exec 結(jié)構(gòu)  / 290
判斷是腳本文件還是可執(zhí)行文件  / 291
準(zhǔn)備參數(shù)空間  / 291
設(shè)置 eip 和 esp,完成搖身一變  / 296
計算機(jī)的世界沒有魔法  / 297
第36 回 缺頁中斷  / 301
跳轉(zhuǎn)到一個不存在的地址會發(fā)生什么  / 302
缺頁中斷do_no_page  / 304
缺頁中斷返回  / 309
第37 回 shell 程序跑起來了  / 311
第38 回 操作系統(tǒng)啟動完畢!  / 317
第39 回 番外篇——調(diào)試Linux 最早期的代碼  / 322
整體思路和效果  / 322
第一步:配置虛擬機(jī)  / 324
第二步:安裝qemu  / 324
第三步:下載并運行可調(diào)試的 Linux-0.11 源碼  / 325
第四步:通過 vscode 遠(yuǎn)程調(diào)試  / 327
第40 回 番外篇——為什么有些技術(shù)原理你怎么看也看不懂  / 331
第4 部分總結(jié)與回顧  / 333
第5 部分 一條shell 命令的執(zhí)行
第41 回 一條shell 命令的執(zhí)行過程概述   / 338
第42 回 用鍵盤輸入一條命令  / 342
第43 回 shell 程序讀取你的命令  / 352
第44 回 進(jìn)程的阻塞與喚醒  / 359
第45 回 解析并執(zhí)行shell 命令  / 364
第46 回 讀硬盤數(shù)據(jù)全流程  / 375
如果讓你來設(shè)計這個函數(shù)  / 375
鳥瞰操作系統(tǒng)的讀操作函數(shù)  / 376
執(zhí)行讀操作file_read  / 382
第47 回 讀取硬盤數(shù)據(jù)的細(xì)節(jié)  / 391
第48 回 信號  / 400
第49 回 番外篇——為什么你學(xué)得比別人慢  / 406
第5 部分總結(jié)與回顧  / 411

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號