注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)庖丁解牛Linux內(nèi)核分析

庖丁解牛Linux內(nèi)核分析

庖丁解牛Linux內(nèi)核分析

定 價(jià):¥49.00

作 者: 孟寧,婁嘉鵬,劉宇棟 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787115491862 出版時(shí)間: 2018-10-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)從理解計(jì)算機(jī)硬件的核心工作機(jī)制(存儲(chǔ)程序計(jì)算機(jī)和函數(shù)調(diào)用堆棧)和用戶(hù)態(tài)程序如何通過(guò)系統(tǒng)調(diào)用陷入內(nèi)核(中斷異常)入手,通過(guò)上下兩個(gè)方向雙向夾擊的策略,并利用實(shí)際可運(yùn)行程序的反匯編代碼從實(shí)踐的角度理解操作系統(tǒng)內(nèi)核,分析Linux內(nèi)核源代碼,從系統(tǒng)調(diào)用陷入內(nèi)核、進(jìn)程調(diào)度與進(jìn)程切換開(kāi)始,最后返回到用戶(hù)態(tài)進(jìn)程。本書(shū)配有豐富的實(shí)驗(yàn)指導(dǎo)材料和練習(xí),適合作為高等院校計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的指導(dǎo)用書(shū),也適合Linux操作系統(tǒng)開(kāi)發(fā)人員自學(xué)。

作者簡(jiǎn)介

  孟寧,高校教師、資 深碼農(nóng),主講課程獲國(guó)家精品在線(xiàn)開(kāi)放課程認(rèn)定。在讀行學(xué)、網(wǎng)易云課堂、學(xué)堂在線(xiàn)、實(shí)驗(yàn)樓等在線(xiàn)教育平臺(tái)的累計(jì)注冊(cè)學(xué)員達(dá)10萬(wàn)余人次,專(zhuān)注于Linux內(nèi)核、互聯(lián)網(wǎng)架構(gòu)、軟件工程、區(qū)塊鏈、人工智能等技術(shù)領(lǐng)域,與華為、IBM等多家國(guó)內(nèi)外知名企業(yè)和創(chuàng)業(yè)公司有技術(shù)合作。婁嘉鵬,高校教師,曾榮獲北京市優(yōu) 秀教師,藍(lán)墨云平臺(tái)北京市十大魅力教師等稱(chēng)號(hào),講授Java程序設(shè)計(jì)、Linux內(nèi)核原理與分析、網(wǎng)絡(luò)攻防實(shí)戰(zhàn)、移動(dòng)平臺(tái)開(kāi)發(fā)等課程,研究方向包括Linux內(nèi)核及安全、密碼系統(tǒng)、軟件工程等。劉宇棟,高校教師,主要研究方向包括網(wǎng)絡(luò)攻防技術(shù)、系統(tǒng)安全、社交網(wǎng)絡(luò)分析等。并講授操作系統(tǒng)、Linux內(nèi)核原理與分析、網(wǎng)絡(luò)對(duì)抗技術(shù)等課程。

圖書(shū)目錄

第 1章 計(jì)算機(jī)工作原理 1
1.1 存儲(chǔ)程序計(jì)算機(jī)工作模型 1
1.2 x86-32匯編基礎(chǔ) 3
1.2.1 x86-32 CPU的寄存器 4
1.2.2 數(shù)據(jù)格式 6
1.2.3 尋址方式和常用匯編指令 7
1.2.4 匯編代碼范例解析 11
1.3 匯編一個(gè)簡(jiǎn)單的C語(yǔ)言程序并分析其匯編指令執(zhí)行過(guò)程 13
1.4 單元測(cè)試題 26
1.5 實(shí)驗(yàn) 27
第 2章 操作系統(tǒng)是如何工作的 29
2.1 函數(shù)調(diào)用堆棧 29
2.2 借助Linux內(nèi)核部分源代碼模擬存儲(chǔ)程序計(jì)算機(jī)工作模型及時(shí)鐘中斷 32
2.2.1 內(nèi)嵌匯編 32
2.2.2 虛擬一個(gè)x86的CPU硬件平臺(tái) 34
2.3 在mykernel基礎(chǔ)上構(gòu)造一個(gè)簡(jiǎn)單的操作系統(tǒng)內(nèi)核 36
2.3.1 代碼范例 36
2.3.2 代碼分析 42
2.4 單元測(cè)試題 48
2.5 實(shí)驗(yàn) 48
第3章 MenuOS的構(gòu)造 50
3.1 Linux內(nèi)核源代碼簡(jiǎn)介 50
3.2 構(gòu)造一個(gè)簡(jiǎn)單的Linux內(nèi)核 56
3.3 跟蹤調(diào)試Linux內(nèi)核的啟動(dòng)過(guò)程 60
3.4 單元測(cè)試題 65
3.5 實(shí)驗(yàn) 66
第4章 系統(tǒng)調(diào)用的三層機(jī)制(上) 67
4.1 用戶(hù)態(tài)、內(nèi)核態(tài)和中斷 67
4.2 系統(tǒng)調(diào)用概述 70
4.2.1 操作系統(tǒng)提供的API和系統(tǒng)調(diào)用的關(guān)系 70
4.2.2 觸發(fā)系統(tǒng)調(diào)用及參數(shù)傳遞方式 71
4.3 使用庫(kù)函數(shù)API和C代碼中嵌入?yún)R編代碼觸發(fā)同一個(gè)系統(tǒng)調(diào)用 72
4.3.1 使用庫(kù)函數(shù)API觸發(fā)一個(gè)系統(tǒng)調(diào)用 72
4.3.2 內(nèi)嵌匯編語(yǔ)法簡(jiǎn)介 73
4.3.3 C代碼中嵌入?yún)R編代碼觸發(fā)一個(gè)系統(tǒng)調(diào)用 75
4.3.4 含兩個(gè)參數(shù)的系統(tǒng)調(diào)用范例 76
4.3.5 通用的觸發(fā)系統(tǒng)調(diào)用的庫(kù)函數(shù)syscall 78
4.4 單元測(cè)試題 79
4.5 實(shí)驗(yàn) 80
第5章 系統(tǒng)調(diào)用的三層機(jī)制(下) 81
5.1 給MenuOS增加命令 81
5.2 使用gdb跟蹤系統(tǒng)調(diào)用內(nèi)核函數(shù)sys_time 83
5.3 系統(tǒng)調(diào)用在內(nèi)核代碼中的處理過(guò)程 85
5.3.1 中斷向量0x80和system_call中斷服務(wù)程序入口的關(guān)系 86
5.3.2 在system_call匯編代碼中的系統(tǒng)調(diào)用內(nèi)核處理函數(shù) 87
5.3.3 整體上理解系統(tǒng)調(diào)用的內(nèi)核處理過(guò)程 88
5.4 單元測(cè)試題 91
5.5 實(shí)驗(yàn) 92
第6章 進(jìn)程的描述和進(jìn)程的創(chuàng)建 93
6.1 進(jìn)程的描述 93
6.2 進(jìn)程的創(chuàng)建 97
6.2.1 0號(hào)進(jìn)程的初始化 98
6.2.2 內(nèi)存管理相關(guān)代碼 99
6.2.3 進(jìn)程之間的父子、兄弟關(guān)系 100
6.2.4 保存進(jìn)程上下文中CPU相關(guān)的一些狀態(tài)信息的數(shù)據(jù)結(jié)構(gòu) 101
6.2.5 進(jìn)程的創(chuàng)建過(guò)程分析 103
6.3 單元測(cè)試題 120
第7章 可執(zhí)行程序工作原理 122
7.1 ELF目標(biāo)文件格式 122
7.1.1 ELF概述 122
7.1.2 ELF格式簡(jiǎn)介 123
7.1.3 相關(guān)操作指令 128
7.2 程序編譯 129
7.2.1 預(yù)處理 129
7.2.2 編譯 130
7.2.3 匯編 131
7.2.4 鏈接 133
7.3 鏈接與庫(kù) 134
7.3.1 符號(hào)與符號(hào)解析 134
7.3.2 重定位 137
7.3.3 靜態(tài)鏈接與動(dòng)態(tài)鏈接 139
7.4 程序裝載 143
7.4.1 程序裝載概要 143
7.4.2 fork與execve內(nèi)核處理過(guò)程 148
7.4.3 莊周夢(mèng)蝶 153
7.4.4 小結(jié) 154
7.5 單元測(cè)試題 155
7.6 實(shí)驗(yàn) 156
第8章 進(jìn)程的切換和系統(tǒng)的一般執(zhí)行過(guò)程 158
8.1 進(jìn)程調(diào)度的時(shí)機(jī) 158
8.1.1 硬中斷與軟中斷 158
8.1.2 進(jìn)程調(diào)度時(shí)機(jī) 159
8.2 調(diào)度策略與算法 161
8.2.1 進(jìn)程的分類(lèi) 161
8.2.2 調(diào)度策略 162
8.2.3 CFS調(diào)度算法 164
8.3 進(jìn)程上下文切換 165
8.3.1 進(jìn)程執(zhí)行環(huán)境的切換 165
8.3.2 核心代碼分析 167
8.4 Linux系統(tǒng)的運(yùn)行過(guò)程 172
8.5 Linux系統(tǒng)構(gòu)架與執(zhí)行過(guò)程概覽 174
8.5.1 Linux操作系統(tǒng)的構(gòu)架 174
8.5.2 ls命令執(zhí)行過(guò)程即涉及操作系統(tǒng)相關(guān)概念 175
8.6 進(jìn)程調(diào)度相關(guān)源代碼跟蹤和分析 176
8.6.1 配置運(yùn)行MenuOS系統(tǒng) 176
8.6.2 配置gdb遠(yuǎn)程調(diào)試和設(shè)置斷點(diǎn) 177
8.6.3 使用gdb跟蹤分析schedule()函數(shù) 177
8.7 單元測(cè)試題 179

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)