当前位置:首页 > 操作系统 >
《ARM Linux内核源码剖析》电子书封面

ARM Linux内核源码剖析

  • 发布时间:2020年09月23日 09:06:40
  • 作者:尹锡训 著;崔范松
  • 大小:101 MB
  • 类别:Linux电子书
  • 格式:PDF
  • 版本:高清版
  • 评分:7.4

    ARM Linux内核源码剖析 PDF 高清版

      给大家带来的一篇关于Linux相关的电子书资源,介绍了关于ARM、Linux、内核源码方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小101 MB,尹锡训 著;崔范松编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.3。

      内容介绍

      《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

      学习笔记

      Python、 Pycharm、Django安装详细教程(图文)

      最近做项目要用到python,那么不用说就得先配置好python环境 以及选择好python工具。接下来分享自己的安装过程。 (一)、Python的安装 1.先进入官网下载python版本,https://www.python.org/downloads/ 2.下载完成后双击.exe文件进行安装,可以自定义安装,也可以默认安装,我选择的是自定义安装,注意:我这里是选择自动生成环境变量,所以我把Add Python3.6 to Path勾选上了。 3.默认安装,Next 4.选择自定义安装路径 5.安装完成界面 6.为了检查我们的python是否安装成功,可以在命令窗口中输入python进行查询,如显示下图一的信息则表示成功了。 (二)、Django 安装 1.下载django源码包 官网下载需要的Django版本https://www.d……

      Pycharm 创建 Django admin 用户名和密码的实例

      1. 问题 使用PyCharm 创建完Django 项目 想登录admin 页面 却不知道用户名和密码。 用的默认sqlit 2.解决办法 2.1 打开manage.py 控制界面 2.2 初始化数据库表 manage.py@HelloDj makemigrations manage.py@HelloDj migrate 2.3 创建admin user manage.py@HelloDj createsuperuser 输入用户。。密码。。 http://127.0.0.1:8000/admin 以上这篇Pycharm 创建 Django admin 用户名和密码的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

      以上就是本次介绍的Linux电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:NFC:Arduino、Android与PhoneGap近场通信

      下一篇:项目管理知识体系指南(pmbok带批注)

      展开 +

      收起 -

      下载地址:百度网盘下载
      读者留言
      方哲瀚

      方哲瀚 提供上传

      资源
      43
      粉丝
      12
      喜欢
      114
      评论
      19

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com