欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ARM Linux內核源碼剖析 尹錫訓著 完整版PDF(帶書簽目錄)

ARM Linux內核源碼剖析

  • 書籍大?。?span>101MB
  • 書籍語言:簡體中文
  • 書籍類型:國產軟件
  • 書籍授權:免費軟件
  • 書籍類別:Linux_unix
  • 應用平臺:PDF
  • 更新時間:2017-11-24
  • 購買鏈接:
  • 網友評分:
360通過 騰訊通過 金山通過

情介紹

《ARM Linux內核源碼剖析》是多位作者在3年Liunx內核分析經驗和龐大資料基礎上寫成的,收錄了其他同類書未曾講解的內容并進行逐行分析,一掃當前市場中其他理論書帶給讀者的郁悶。書中詳細的代碼分析與大量插圖能夠使讀者對Linux內核及ARM獲得正確認識,自然而然習得如何有效分析定期發(fā)布的Linux內核。

《ARM Linux內核源碼剖析》適合想從Linux內核啟動開始透徹分析全部啟動過程的讀者,因Linux代碼量龐大而束手無策的人、想要了解Linux實際運行過程的人、渴求OS實操理論的人,本書必將成為他們不可或缺的參考書。

目錄
第一部分 ARMLinux內核——分析內核前需要做的準備
  第1章 內核介紹及2.6版和3.2版之間的差異 2
  1.1 內核的誕生、作用以及內部結構 2
  1.1.1 Linus創(chuàng)造的Linux 2
  1.1.2 由多種子系統集成運行的單內核 3
  1.1.3 全世界最著名的通用操作系統 5
  1.2 內核2.6版和3.2版之間的差異 5
  第2章 內核構建系統 8
  2.1 內核初始化 8
  2.2 內核配置 9
  2.3 內核構建 11
  2.4 內核安裝 17
  第3章 了解ARM處理器 19
  3.1 處理器概要和特征 19
  3.2 處理器架構與核心 19
  3.3 處理器命名規(guī)則 21
  3.4 處理器內部結構 21
  3.5 處理器模式和寄存器 23
  3.6 處理器異常 25
  3.7 硬件擴展功能 26
  3.7.1 緩存 26
  3.7.2 內存管理裝置 26
  3.7.3 協處理器 26
  第4章 構建分析環(huán)境 28
  4.1 下載并安裝Linux源內核 28
  4.1.1 下載源內核 28
  4.1.2 安裝源內核 30
  4.2 安裝ctags+cscope 31
  4.2.1 用ctags制作源代碼標簽 31
  4.2.2 制作cscope標簽數據庫 33
  4.3 vim插件下載及環(huán)境設置 34
  4.3.1 下載vim插件 34
  4.3.2 vim+plugin的環(huán)境結構 37
  4.3.3 vim環(huán)境設置 38
  4.4 查看源碼分析環(huán)境工具 40
  第二部分 內核的啟動——start_kernel調用方法
  第5章 準備解壓內核 48
  5.1 進入啟動加載后結束首個啟動——start標簽 49
  5.2 BSS系統域初始化——not_relocated標簽 50
  5.3 激活緩存——cache_on標簽 53
  5.4 頁目錄項初始化——__setup_mmu標簽 56
  5.5 指令緩存激活及緩存策略適用——__common_mmu_cache_on標簽 58
  第6章 從壓縮的內核zImage還原內核映像 60
  6.1 解壓內核并避免覆寫——wont_overwrite、decompress_kernel標簽 61
  6.2 調用已解壓內核——call_kernel標簽 62
  6.3 緩存清理及清除——cache_clean_flush標簽 62
  6.4 緩存禁用——cache_off標簽 64
  第7章 調用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)下將虛擬地址轉換為物理地址 73
  7.2.4 查找proc_info_list結構體并比較處理器信息 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結構體并比較機器信息 77
  7.4 源自啟動加載項的atags——__vet_atags標簽 78
  7.5 對虛擬內存進行基礎創(chuàng)建——__create_page_tables標簽 81
  7.6 設置核心(core)——v6_setup標簽 85
  7.7 打開MMU并使用虛擬地址——__enable_mmu/__turn_mmu_on標簽 86
  7.8 跳轉至start_kernel——__mmap_switched標簽 90
  第三部分 內核的執(zhí)行——內核的起始與結束位置
  第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的關聯初始化——init_cgroup_root() 102
  8.3.2 初始化子系統——cgroup_init_subsys() 103
  8.4 禁用IRQ 104
  8.5 early_boot_irqs_off()、early_init_irq_lock_class() 104
  8.6 大內核鎖——lock_kernel() 106
  第9章 注冊針對時鐘事件的處理器 111
  9.1 函數的聲明和定義——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 管理高端內存——page_address_init() 121
  第11章 整體指向——setup_arch 123
  第12章 unwind_init()~~early_trap_init() 126
  12.1 ?;厮?mdash;—unwind_init() 126
  12.2 求出包含機器信息的machine_desc結構體——setup_machine() 126
  12.3 處理ATAG信息——setup_arch() 127
  12.4 處理啟動參數——parse_cmdline() 129
  12.5 構建源代碼樹——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 查看中斷處理器函數 143
  12.9.1 調用IRQ處理器——asm_do_IRQ() 147
  12.9.2 返回中斷之前——ret_to_user標簽 147
  第13章 設置處理器——setup_processor() 150
  13.1 查看setup_processor()結構 150
  13.2 查找CPUID——read_cpuid_id() 151
  13.3 查找處理器信息——lookup_processor_type() 153
  13.4 查找處理器結構信息——cpu_architecture() 153
  13.5 查找處理器緩存類型_cacheid_init() 156
  13.6 調用處理器初始化函數——cpu_proc_init() 160
  第14章 準備內存分頁——paging_init() 163
  14.1 查看paging_init()的整體結構 163
  14.2 設置內存類型表——build_mem_type_table() 165
  14.3 檢驗內存信息——sanity_check_meminfo() 166
  14.4 準備頁表——prepare_page_table() 168
  14.4.1 prepare_page_table() 168
  14.4.2 Linux的分頁結構 170
  14.4.3 求出頁目錄項 170
  14.4.4 pmd_clear() 172
  14.5 設備區(qū)域映射準備——devicemaps_init() 174
  14.6 準備使用高端內存——kmap_init() 177
  14.7 初始化零頁 178
  14.7.1 分配內存——__alloc_bootmem_nopanic() 179
  14.7.2 在指定節(jié)點使用fallback分配內存——alloc_bootmem_core 180
  14.7.3 將虛擬地址變換為page結構體——virt_to_page 182
  14.8 保持數據緩存一致性——flush_dcache_page() 182
  第15章 在啟動時初始化內存分配器 184
  15.1 bootmem函數流和數據結構 185
  15.2 查看bootmem_init()結構 188
  15.3 查找虛擬內存盤位置——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 排除虛擬內存盤節(jié)點——bootmem_reserve_initrd() 204
  15.7 設置為無可用頁——bootmem_free_node() 205
  15.8 初始化free_area區(qū)域 207
  15.8.1 free_area結構體 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章 構建借用內存的后臺 233
  第18章 page_alloc_init()~~pidhash_init() 253
  第19章 init_timers()~~page_cgroup_init() 273
  第20章 終止bootmem分配器并替換為伙伴系統 297
  第21章 初始化以支持CPU熱插拔 315
  第22章 激活slab內存分配器——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章 同步內存與后備存儲——pagewriteback 394
  第27章 查看啟動內核的最終函數結構——rest_init() 405
  第28章 生成執(zhí)行函數的內核線程——kernel_thread() 407
  第29章 喚醒新生成的任務 419
  第30章 準備使用內核 426
  第31章 內核線程守護進程 453
  第32章 find_task_by_pid_ns()~~cpu_idle() 469
  附錄
  附錄A 匯編語言、gas關鍵詞總結 480
  附錄B 內核分析常見API 485
  附錄C 淺談ext2文件系統 487
  附錄D Linux線程模型 497
  附錄E 鏈接器腳本文件結構 500
  后記 510
  索引 513

載地址

下載錯誤?【投訴報錯】

ARM Linux內核源碼剖析 尹錫訓著 完整版PDF(帶書簽目錄)

      氣書籍

      載聲明

      ☉ 解壓密碼:www.dbjr.com.cn 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
      ☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
      ☉ 如果這個軟件總是不能下載的請在評論中留言,我們會盡快修復,謝謝!
      ☉ 下載本站資源,如果服務器暫不能下載請過一段時間重試!或者多試試幾個下載地址
      ☉ 如果遇到什么問題,請評論留言,我們定會解決問題,謝謝大家支持!
      ☉ 本站提供的一些商業(yè)軟件是供學習研究之用,如用于商業(yè)用途,請購買正版。
      ☉ 本站提供的ARM Linux內核源碼剖析 尹錫訓著 完整版PDF(帶書簽目錄)資源來源互聯網,版權歸該下載資源的合法擁有者所有。