Linux典藏大系:ARM嵌入式Linux系統(tǒng)開發(fā)詳解(第2版) [弓雷著] pd
168MB / 05-12
ARM嵌入式Linux系統(tǒng)開發(fā)詳解 (弓雷) 中文PDF掃描版 71.5M
71.5MB / 09-07
精通ARM嵌入式Linux系統(tǒng)開發(fā) PDF掃描版[122MB]
122.64MB / 03-02
ARM LINUX入門與實踐 PDF掃描版[41MB]
41.53KB / 12-17
-
Linux 新服務器高效運維部署筆記詳解 完整版PDF Linux_unix / 7.03MB
-
-
Kali Linux Revealed完美版(掌握滲透測試) 官方教程 pdf完整版 Linux_unix / 25.0MB
-
嵌入式Linux應用開發(fā)完全手冊 完整版PDF Linux_unix / 30.8MB
-
Kali Linux系統(tǒng)使用基礎教程(大學霸) V2.0 中文PDF完整版 Linux_unix / 65MB
-
-
韓順平2021圖解Linux升級 + 一周內(nèi)學會linux 完整版PDF Linux_unix / 32.0MB
-
跟老男孩學linux三劍客命令(awk sed grep全攻略) v1.5 中文PDF版 Linux_unix / 933KB
-
Linux應急手冊 中文PDF完整版 Linux_unix / 158MB
-
Linux系統(tǒng)編程學習筆記 完整版PDF Linux_unix / 11.7MB
詳情介紹
《ARM Linux內(nèi)核源碼剖析》是多位作者在3年Liunx內(nèi)核分析經(jīng)驗和龐大資料基礎上寫成的,收錄了其他同類書未曾講解的內(nèi)容并進行逐行分析,一掃當前市場中其他理論書帶給讀者的郁悶。書中詳細的代碼分析與大量插圖能夠使讀者對Linux內(nèi)核及ARM獲得正確認識,自然而然習得如何有效分析定期發(fā)布的Linux內(nèi)核。
《ARM Linux內(nèi)核源碼剖析》適合想從Linux內(nèi)核啟動開始透徹分析全部啟動過程的讀者,因Linux代碼量龐大而束手無策的人、想要了解Linux實際運行過程的人、渴求OS實操理論的人,本書必將成為他們不可或缺的參考書。
目錄
第一部分 ARMLinux內(nèi)核——分析內(nèi)核前需要做的準備
第1章 內(nèi)核介紹及2.6版和3.2版之間的差異 2
1.1 內(nèi)核的誕生、作用以及內(nèi)部結(jié)構(gòu) 2
1.1.1 Linus創(chuàng)造的Linux 2
1.1.2 由多種子系統(tǒng)集成運行的單內(nèi)核 3
1.1.3 全世界最著名的通用操作系統(tǒng) 5
1.2 內(nèi)核2.6版和3.2版之間的差異 5
第2章 內(nèi)核構(gòu)建系統(tǒng) 8
2.1 內(nèi)核初始化 8
2.2 內(nèi)核配置 9
2.3 內(nèi)核構(gòu)建 11
2.4 內(nèi)核安裝 17
第3章 了解ARM處理器 19
3.1 處理器概要和特征 19
3.2 處理器架構(gòu)與核心 19
3.3 處理器命名規(guī)則 21
3.4 處理器內(nèi)部結(jié)構(gòu) 21
3.5 處理器模式和寄存器 23
3.6 處理器異常 25
3.7 硬件擴展功能 26
3.7.1 緩存 26
3.7.2 內(nèi)存管理裝置 26
3.7.3 協(xié)處理器 26
第4章 構(gòu)建分析環(huán)境 28
4.1 下載并安裝Linux源內(nèi)核 28
4.1.1 下載源內(nèi)核 28
4.1.2 安裝源內(nèi)核 30
4.2 安裝ctags+cscope 31
4.2.1 用ctags制作源代碼標簽 31
4.2.2 制作cscope標簽數(shù)據(jù)庫 33
4.3 vim插件下載及環(huán)境設置 34
4.3.1 下載vim插件 34
4.3.2 vim+plugin的環(huán)境結(jié)構(gòu) 37
4.3.3 vim環(huán)境設置 38
4.4 查看源碼分析環(huán)境工具 40
第二部分 內(nèi)核的啟動——start_kernel調(diào)用方法
第5章 準備解壓內(nèi)核 48
5.1 進入啟動加載后結(jié)束首個啟動——start標簽 49
5.2 BSS系統(tǒng)域初始化——not_relocated標簽 50
5.3 激活緩存——cache_on標簽 53
5.4 頁目錄項初始化——__setup_mmu標簽 56
5.5 指令緩存激活及緩存策略適用——__common_mmu_cache_on標簽 58
第6章 從壓縮的內(nèi)核zImage還原內(nèi)核映像 60
6.1 解壓內(nèi)核并避免覆寫——wont_overwrite、decompress_kernel標簽 61
6.2 調(diào)用已解壓內(nèi)核——call_kernel標簽 62
6.3 緩存清理及清除——cache_clean_flush標簽 62
6.4 緩存禁用——cache_off標簽 64
第7章 調(diào)用start_kernel() 65
7.1 初始化指向——stext標簽 65
7.2 處理器信息搜尋——__look_processor_type 69
7.2.1 __lookup_processor_type標簽 69
7.2.2 __proc_info_begin和__proc_info_end中保存的信息 71
7.2.3 在MMU禁用狀態(tài)下將虛擬地址轉(zhuǎn)換為物理地址 73
7.2.4 查找proc_info_list結(jié)構(gòu)體并比較處理器信息 74
7.3 搜尋我的機型——__lookup_machine_type 75
7.3.1 __lookup_machine_type標簽 75
7.3.2 保存在__arch_info_begin和__arch_info_end中的machine_desc信息及訪問路徑 76
7.3.3 查找machine_desc結(jié)構(gòu)體并比較機器信息 77
7.4 源自啟動加載項的atags——__vet_atags標簽 78
7.5 對虛擬內(nèi)存進行基礎創(chuàng)建——__create_page_tables標簽 81
7.6 設置核心(core)——v6_setup標簽 85
7.7 打開MMU并使用虛擬地址——__enable_mmu/__turn_mmu_on標簽 86
7.8 跳轉(zhuǎn)至start_kernel——__mmap_switched標簽 90
第三部分 內(nèi)核的執(zhí)行——內(nèi)核的起始與結(jié)束位置
第8章 start_setup_processor_id()~~lock_kernel() 94
8.1 smp_setup_processor_id()、lockdep_init()、debug_objects_early_init() 95
8.1.1 smp_setup_processor_id() 95
8.1.2 lockdep_init() 95
8.1.3 debug_objects_early_init() 96
8.2 棧溢出感應——__boot_init_stack_canary 98
8.3 初始化提供進程集成方法的cgroup——__cgroup_init_early() 98
8.3.1 cgroupfs_root和cgroup的關聯(lián)初始化——init_cgroup_root() 102
8.3.2 初始化子系統(tǒng)——cgroup_init_subsys() 103
8.4 禁用IRQ 104
8.5 early_boot_irqs_off()、early_init_irq_lock_class() 104
8.6 大內(nèi)核鎖——lock_kernel() 106
第9章 注冊針對時鐘事件的處理器 111
9.1 函數(shù)的聲明和定義——tick_init() 111
9.2 注冊處理事件的處理器——_clockevents_register_notifier() 113
9.2.1 為clockevents_lock添加自旋鎖 114
9.2.2 clockevents_chain生成原理 115
9.2.3 在clockevents_chain中注冊tick_notifier的方法 116
9.2.4 對clockevents_lock解除自旋鎖的原理 117
第10章 在CPU位圖中注冊當前運行CPU/初始化HIGHMEM管理 119
10.1 在包含熱插拔信息的位圖上添加執(zhí)行init_task的CPU——boot_cpu_init() 119
10.2 管理高端內(nèi)存——page_address_init() 121
第11章 整體指向——setup_arch 123
第12章 unwind_init()~~early_trap_init() 126
12.1 棧回溯——unwind_init() 126
12.2 求出包含機器信息的machine_desc結(jié)構(gòu)體——setup_machine() 126
12.3 處理ATAG信息——setup_arch() 127
12.4 處理啟動參數(shù)——parse_cmdline() 129
12.5 構(gòu)建源代碼樹——request_standard_resources() 131
12.6 初始化cpupossible位圖——smp_init_cpus() 136
12.7 用棧指定各ARM異常模式——cpu_init() 137
12.8 初始化以處理異常——early_trap_init() 138
12.9 查看中斷處理器函數(shù) 143
12.9.1 調(diào)用IRQ處理器——asm_do_IRQ() 147
12.9.2 返回中斷之前——ret_to_user標簽 147
第13章 設置處理器——setup_processor() 150
13.1 查看setup_processor()結(jié)構(gòu) 150
13.2 查找CPUID——read_cpuid_id() 151
13.3 查找處理器信息——lookup_processor_type() 153
13.4 查找處理器結(jié)構(gòu)信息——cpu_architecture() 153
13.5 查找處理器緩存類型_cacheid_init() 156
13.6 調(diào)用處理器初始化函數(shù)——cpu_proc_init() 160
第14章 準備內(nèi)存分頁——paging_init() 163
14.1 查看paging_init()的整體結(jié)構(gòu) 163
14.2 設置內(nèi)存類型表——build_mem_type_table() 165
14.3 檢驗內(nèi)存信息——sanity_check_meminfo() 166
14.4 準備頁表——prepare_page_table() 168
14.4.1 prepare_page_table() 168
14.4.2 Linux的分頁結(jié)構(gòu) 170
14.4.3 求出頁目錄項 170
14.4.4 pmd_clear() 172
14.5 設備區(qū)域映射準備——devicemaps_init() 174
14.6 準備使用高端內(nèi)存——kmap_init() 177
14.7 初始化零頁 178
14.7.1 分配內(nèi)存——__alloc_bootmem_nopanic() 179
14.7.2 在指定節(jié)點使用fallback分配內(nèi)存——alloc_bootmem_core 180
14.7.3 將虛擬地址變換為page結(jié)構(gòu)體——virt_to_page 182
14.8 保持數(shù)據(jù)緩存一致性——flush_dcache_page() 182
第15章 在啟動時初始化內(nèi)存分配器 184
15.1 bootmem函數(shù)流和數(shù)據(jù)結(jié)構(gòu) 185
15.2 查看bootmem_init()結(jié)構(gòu) 188
15.3 查找虛擬內(nèi)存盤位置——check_initrd() 189
15.4 將節(jié)點的BANK信息反映到頁目錄——bootmem_init_node() 191
15.4.1 map_memory_bank() 192
15.4.2 bootmem_bootmap_pages() 195
15.4.3 find_bootmap_pfn() 196
15.4.4 node_set_online() 197
15.4.5 NODE_DATA宏 198
15.4.6 init_bootmem_node() 200
15.4.7 free_bootmem_node() 202
15.4.8 reserve_bootmem_node() 202
15.5 排除0號節(jié)點——reserve_node_zero() 203
15.6 排除虛擬內(nèi)存盤節(jié)點——bootmem_reserve_initrd() 204
15.7 設置為無可用頁——bootmem_free_node() 205
15.8 初始化free_area區(qū)域 207
15.8.1 free_area結(jié)構(gòu)體 207
15.8.2 free_area_init_node() 208
15.8.3 free_area_init_core() 209
15.8.4 init_currently_empty_zone() 211
15.8.5 memmap_init() 212
第16章 mm_init_owner()~~preempt_disable() 217
第17章 構(gòu)建借用內(nèi)存的后臺 233
第18章 page_alloc_init()~~pidhash_init() 253
第19章 init_timers()~~page_cgroup_init() 273
第20章 終止bootmem分配器并替換為伙伴系統(tǒng) 297
第21章 初始化以支持CPU熱插拔 315
第22章 激活slab內(nèi)存分配器——kmem_cache_init() 318
第23章 kmem_trace_init()~~security_init() 344
第24章 初始化VFS中使用的多種緩存——vfs_cache_init() 367
第25章 radix_tree_init()~~ftrace_init() 382
第26章 同步內(nèi)存與后備存儲——pagewriteback 394
第27章 查看啟動內(nèi)核的最終函數(shù)結(jié)構(gòu)——rest_init() 405
第28章 生成執(zhí)行函數(shù)的內(nèi)核線程——kernel_thread() 407
第29章 喚醒新生成的任務 419
第30章 準備使用內(nèi)核 426
第31章 內(nèi)核線程守護進程 453
第32章 find_task_by_pid_ns()~~cpu_idle() 469
附錄
附錄A 匯編語言、gas關鍵詞總結(jié) 480
附錄B 內(nèi)核分析常見API 485
附錄C 淺談ext2文件系統(tǒng) 487
附錄D Linux線程模型 497
附錄E 鏈接器腳本文件結(jié)構(gòu) 500
后記 510
索引 513
下載地址
人氣書籍
UNIX網(wǎng)絡編程 卷1:套接字聯(lián)網(wǎng)API(第3版) 中文 PDF版 [85M]
深入理解Linux內(nèi)核(第三版) 帶完整書簽 PDF掃描版[56MB]
Ubuntu Linux從入門到精通 PDF 掃描版[59M]
unix環(huán)境高級編程(第3版) 中文版 pdf掃描版[21MB]
KVM虛擬化技術:實戰(zhàn)與原理解析 PDF掃描版[108MB]
鳥哥的Linux私房菜 Linux基礎學習篇(第三版)
Linux/UNIX系統(tǒng)編程手冊 PDF掃描版[262MB]
Linux內(nèi)核設計與實現(xiàn)(原書第3版)pdf掃描版[36.7MB]
Linux命令行大全 ((美)William E.shotts,Jr) 中文PDF高清掃描版
linux命令大全(15部最全面的CHM文檔) linux命令手冊集合
下載聲明
☉ 解壓密碼:chabaoo.cn 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
☉ 如果這個軟件總是不能下載的請在評論中留言,我們會盡快修復,謝謝!
☉ 下載本站資源,如果服務器暫不能下載請過一段時間重試!或者多試試幾個下載地址
☉ 如果遇到什么問題,請評論留言,我們定會解決問題,謝謝大家支持!
☉ 本站提供的一些商業(yè)軟件是供學習研究之用,如用于商業(yè)用途,請購買正版。
☉ 本站提供的ARM Linux內(nèi)核源碼剖析 尹錫訓著 完整版PDF(帶書簽目錄)資源來源互聯(lián)網(wǎng),版權(quán)歸該下載資源的合法擁有者所有。