arm linux内核_arm Linux

arm linux内核_arm LinuxARM Linux内核源码剖析 尹锡训著 完整版PDF(带书签目录)《ARM Linux内核源码剖析》是多位作者在3年Liunx内核分析经验和庞大资料基础上写成的,收录了其他同类书未曾讲解的内容并进行逐行分析,一扫当前市场中其他

ARM Linux内核源码剖析 尹锡训著 完整版PDF(带书签目录)   《ARM Linux内核源码剖析》是多位作者在3年Liunx内核分析经验和庞大资料基础上写成的,收录了其他同类书未曾讲解的内容并进行逐行分析,一扫当前市场中其他理论书带给读者的郁闷。书中详细的代码分析与大量插图能够使读者对Linux内核及ARM获得正确认识,自然而然习得如何有效分析定期发布的Linux内核。   《ARM Linux内核源码剖析》适合想从Linux内核启动开始透彻分析全部启动过程的读者,因Linux代码量庞大而束手无策的人、想要了解Linux实际运行过程的人、渴求OS实操理论的人,本书必将成为他们不可或缺的参考书。   目录   第一部分 ARMLinux内核——分析内核前需要做的准备   第1章 内核介绍及2.6版和3.2版之间的差异 2   1.1 内核的诞生、作用以及内部结构 2   1.1.1 Linus创造的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 处理器命名规则 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章 构建分析环境 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插件下载及环境设置 34   4.3.1 下载vim插件 34   4.3.2 vim+plugin的环境结构 37   4.3.3 vim环境设置 38   4.4 查看源码分析环境工具 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禁用状态下将虚拟地址转换为物理地址 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 对虚拟内存进行基础创建——__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   第三部分 内核的执行——内核的起始与结束位置   第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 在包含热插拔信息的位图上添加执行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 栈回溯——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 设备区域映射准备——devicemaps_init() 174   14.6 准备使用高端内存——kmap_init() 177   14.7 初始化零页 178   14.7.1 分配内存——__alloc_bootmem_nopanic() 179   14.7.2 在指定节点使用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 将节点的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号节点——reserve_node_zero() 203   15.6 排除虚拟内存盘节点——bootmem_reserve_initrd() 204   15.7 设置为无可用页——bootmem_free_node() 205   15.8 初始化free_area区域 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章 生成执行函数的内核线程——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内核_arm Linux

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/51903.html

(0)
上一篇 2024年 9月 2日 下午5:10
下一篇 2024年 9月 2日 下午5:14

相关推荐

关注微信