第一部分 Linux 内核源代码
arch/i386/kernel/entry.S 2
arch/i386/kernel/init_task.c 8
arch/i386/kernel/irq.c 8
arch/i386/kernel/irq.h 19
arch/i386/kernel/process.c 22
arch/i386/kernel/signal.c 30
arch/i386/kernel/smp.c 38
arch/i386/kernel/time.c 58
arch/i386/kernel/traps.c 65
arch/i386/lib/delay.c 73
arch/i386/mm/fault.c 74
arch/i386/mm/init.c 76
fs/binfmt-elf.c 82
fs/binfmt_java.c 96
fs/exec.c 98
include/asm-generic/smplock.h 107
include/asm-i386/atomic.h 108
include/asm-i386/current.h 109
include/asm-i386/dma.h 109
include/asm-i386/elf.h 113
include/asm-i386/hardirq.h 114
include/asm-i386/page.h 114
include/asm-i386/pgtable.h 115
include/asm-i386/ptrace.h 122
include/asm-i386/semaphore.h 123
include/asm-i386/shmparam.h 124
include/asm-i386/sigcontext.h 125
include/asm-i386/siginfo.h 125
include/asm-i386/signal.h 127
include/asm-i386/smp.h 130
include/asm-i386/softirq.h 132
include/asm-i386/spinlock.h 133
include/asm-i386/system.h 137
include/asm-i386/uaccess.h 139
include/linux/binfmts.h 146
include/linux/capability.h 147
include/linux/elf.h 150
include/linux/elfcore.h 156
include/linux/interrupt.h 157
include/linux/kernel.h 158
include/linux/kernel_stat.h 159
include/linux/limits.h 160
include/linux/mm.h 160
include/linux/module.h 164
include/linux/msg.h 168
include/linux/personality.h 169
include/linux/reboot.h 169
include/linux/resource.h 170
include/linux/sched.h 171
include/linux/sem.h 179
include/linux/shm.h 180
include/linux/signal.h 181
include/linux/slab.h 184
include/linux/smp.h 184
include/linux/smp_lock.h 185
include/linux/swap.h 185
include/linux/swapctl.h 187
include/linux/sysctl.h 188
include/linux/tasks.h 194
include/linux/time.h 194
include/linux/timer.h 195
include/linux/times.h 196
include/linux/tqueue.h 196
include/linux/wait.h 198
init/main.c 198
init/version.c 212
ipc/msg.c 213
ipc/sem.c 218
ipc/shm.c 227
ipc/util.c 236
kernel/capability.c 237
kernel/dma.c 240
kernel/exec_domain.c 241
kernel/exit.c 242
kernel/fork.c 248
kernel/info.c 255
kernel/itimer.c 255
kernel/kmod.c 257
kernel/module.c 259
kernel/panic.c 270
kernel/printk.c 271
kernel/sched.c 275
kernel/signal.c 295
kernel/softirq.c 307
kernel/sys.c 307
kernel/sysctl.c 318
kernel/time.c 330
mm/memory.c 335
mm/mlock.c 345
mm/mmap.c 348
mm/mprotect.c 358
mm/mremap.c 361
mm/page_alloc.c 363
mm/page_io.c 368
mm/slab.c 372
mm/swap.c 394
mm/swap_state.c 395
mm/swapfile.c 398
mm/vmalloc.c 406
mm/vmscan.c 409
第二部分 Linux 内核源代码分析
第1章 Linux简介 416
1.1 Linux和Unix的简明历史 416
1.2 GNU通用公共许可证 418
1.3 Linux开发过程 419
第2章 代码初识 421
2.1 Linux内核源程序的部分特点 421
2.1.1 gcc特性的使用 421
2.1.2 内核代码习惯用语 422
2.1.3 减少#if和#ifdef的使用 423
2.2 代码样例 424
2.2.1 printk 424
2.2.2 等待队列 429
2.2.3 内核模块 432
2.3 配置与编译内核 434
2.3.1 配置内核 434
2.3.2 构建内核 436
2.3.3 备份的重要性 436
2.3.4 发布你的改进 437
第3章 内核体系结构概述 439
3.1 内核设计目标 439
3.1.1 清晰性 439
3.1.2 兼容性 439
3.1.3 可移植性 440
3.1.4 健壮性和安全性 440
3.1.5 速度 441
3.2 内核体系结构初识 441
3.3 内核体系结构的深入了解 442
3.4 Linux 内核的类型 444
3.5 设计和实现的关系 446
3.5.1 内核源程序目录结构 446
3.5.2 体系结构相关和体系结构无关的
代码 450
第4章 系统初始化 451
4.1 引导PC机 451
4.2 初始化Linux内核 452
4.2.1 BogoMIPS 455
4.2.2 分析内核选项 456
4.3 init 459
第5章 系统调用 462
5.1 什么是系统调用 462
5.2 如何激活系统调用 463
5.2.1 system_call 464
5.2.2 lcall7 468
5.3 系统调用样例 469
第6章 信号、中断和时间 474
6.1 锁的概述 474
6.2 信号 474
6.2.1 数据结构 475
6.2.2 应用函数 476
6.2.3 传送信号 480
6.2.4 其他有关信号的函数 489
6.2.5 内核如何区分实时信号和非
实时信号 491
6.3 中断 492
6.3.1 中断请求:IRQ 492
6.3.2 下半部分 493
6.3.3 数据结构 493
6.3.4 操作和IRQ 496
6.3.5 硬件中断处理程序和下半部分 499
6.4 时间 502
第7章 进程和线程 505
7.1 调度和时间片 505
7.2 实时进程 506
7.3 优先级 506
7.4 进程ID:PID 506
7.5 引用计数 506
7.6 权能 507
7.7 进程在内核中是如何表示的 508
7.8 进程来源:fork和_ _clone 511
7.9 运行新程序 514
7.10 可执行格式 517
7.11 调度及它们是如何运行的 519
7.11.1 调度函数和调度策略 519
7.11.2 计算goodness值 522
7.11.3 非实时优先级 523
7.11.4 实时优先级 525
7.12 遵守限制 526
7.12.1 权能 526
7.12.2 用户ID和组ID 529
7.12.3 资源限制 530
7.13 进程的结束 530
7.13.1 exit 530
7.13.2 wait 532
第8章 内存 535
8.1 虚拟内存 535
8.1.1 交换和分页 536
8.1.2 地址空间 537
8.1.3 内存管理单元 537
8.1.4 页目录和页表 538
8.1.5 转换后备缓存 540
8.1.6 段 540
8.2 进程的内存组织 541
8.2.1 struct vm_area_struct 541
8.2.2 struct vm_operations_struct 542
8.2.3 struct mm_struct 542
8.2.4 VMA的操作 542
8.3 分页 544
8.3.1 页面保护详述 544
8.3.2 写拷贝 545
8.3.3 页面错误 546
8.3.4 页面调出 551
8.4 交换设备 552
8.5 内存映射mmap 556
8.6 用户空间和内核空间的动态内存 560
8.6.1 brk 561
8.6.2 vmalloc和vfree 562
8.7 主存储器信息转储 565
第9章 System V IPC 568
9.1 消息队列 568
9.2 信号量 581
9.3 共享内存 590
第10章 对称多处理 596
10.1 并行程序设计概念及其原语 597
10.1.1 原子操作 597
10.1.2 test-and-set 599
10.1.3 信号量 600
10.1.4 自旋锁 604
10.2 APIC和CPU-To-CPU通信 607
10.3 SMP支持如何影响内核 607
10.3.1 对调度的影响 607
10.3.2 smp_local_timer_interrupt 610
10.3.3 lock_kernel和unlock_kernel 611
10.3.4 softirq_trylock 612
10.3.5 cli和sti 612
10.3.6 irq_enter和irq_exit 613
第11章 可调内核参数 614
11.1 /proc/sys 支持 616
11.2 sysctl系统调用 621

Linux内核源代码分析-目录相关推荐

  1. Linux 内核源代码的目录结构

    Linux 内核源代码的目录结构 Linux 内核源代码包含如下目录. ● arch :包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386.arm. arm64.powerpc.mip ...

  2. linux内核源代码分析----内核基础设施之klist

    概述 klist是list的线程安全版本,他提供了整个链表的自旋锁,查找链表节点,对链表节点的插入和删除操作都要获得这个自旋锁.klist的节点数据结构是klist_node,klist_node引入 ...

  3. python源码提取_Python提取Linux内核源代码的目录结构实现方法

    今天用Python提取了Linux内核源代码的目录树结构,没有怎么写过脚本程序,我居然折腾了2个小时,先是如何枚举出给定目录下的所有文件和文件夹,os.walk可以实现列举,但是os.walk是只给出 ...

  4. Linux内核源代码分析——可执行文件header处理(二进制文件读写范例,写DUL工具入门指引)...

    在把Linux内核源代码生成Image之前,需要把执行文件头结构信息剔除出来.这个过程对理解Linux内核具有很大的帮助.同时,由于是对可执行文件进行直接读写操作,想写DUL工具的童鞋可以在这里学习到 ...

  5. Linux内核源代码分析经验

      Linux的最大的好处之一就是它的源码公开.同时,公开的核心源码也吸引着无数的电脑爱好者和程序员:他们把解读和分析Linux的核心源码作为自己的 最大兴趣,把修改Linux源码和改造Linux系统 ...

  6. Linux内核源代码分析-第三章 内核体系结构概述-1

    第3章 内核体系结构概述 本章从较高层次上对内核进行说明.从顺序上来说,本章首先介绍内核设计目标,接下来 介绍内核体系结构,最后介绍内核源程序目录结构. 3.1 内核设计目标 Linux 的内核展现出 ...

  7. Linux内核源代码分析——fork()原理多进程网络模型

    今晚和一位500强的leader喝喝小酒吃吃烤鱼,生活乐无边.这位兄弟伙才毕业2年,已经做到管理层了,机遇和能力不可谓不好.喝酒之余,聊到Linux内核的两个问题--fork().exec()的原理. ...

  8. Linux内核源代码分析-第三章 内核体系结构概述-3

    3.5 设计和实现的关系 接下来的部分将介绍一些内核设计和实现之间的关系.本部分最重要的内容是对于内核源 程序目录结构的概述,这一点随后就会提到.本章最后以实现中体系结构无关代码和体系 结构相关代码的 ...

  9. Linux内核源代码分析——Linux内核的入口

    Jack:hi,淫龙,在Linux内核的源代码里,有几段汇编代码,那几段代码是负责Linux内核引导的. 我:是的.早期的Linux内核引导代码只有bootsect.s.setup.s.head.s这 ...

最新文章

  1. bitset类型, 标准库类型
  2. Searchable(搜索功能)(转)
  3. wxWidgets:wxTextWrapper类用法
  4. 计算机组成原理模拟试题,计算机组成原理模拟试题及答案
  5. nodejs常用模块-url
  6. Lind.DDD.Manager里的3,7,15,31,63,127,255,511,1023,2047
  7. OpenCV学习笔记——多种Smooth平滑处理
  8. vmpalyer虚拟机的使用教程,小白也能看懂
  9. gma 教程 | 气候气象 | 基于 彭曼-蒙提斯法(Penman-Monteith)计算日作物参考蒸散量(ET0)
  10. 陈丹琦“简单到令人沮丧”的屠榜之作:关系抽取新SOTA!
  11. opengl绘制太阳、地球、月亮,贴上纹理,设置光照,符合自转和公转规律
  12. Android挂逼修练之行--微信聊天消息修改器插件开发详解
  13. 2.7UiPath Flowchart的介绍和使用
  14. Outlook 点击邮箱签名没有反应卡死
  15. 微信小程序之订阅消息推送
  16. node.js毕业设计安卓校园代办助手app(程序+APP+LW)
  17. ado控件连接mysql_Delphi中用ADO控件连接数据库例子
  18. 电化学方法激励电压波形
  19. OpenCV stitching_detailed.cpp 笔记
  20. 机器人社社长事迹_科技之星事迹材料

热门文章

  1. AWS 给负载均衡器配置侦听器并上传IAM证书
  2. STL源码剖析 heap堆结构
  3. ubuntu修改字体 样式
  4. Java基础——Java多线程中sleep()、wait()和notify()
  5. 开发人员眼中最好的代码编辑器是谁?
  6. 英语中十二个月名称的由来
  7. Linux 上 安装 nginx、 阿里云服务器上安装 nginx
  8. Spring Boot结合thymeleaf
  9. unittest核心要素
  10. UESTC 1636 梦后楼台高锁,酒醒帘幕低垂