Linux内核源码分析代码详解
链接:https://pan.baidu.com/s/1MxbVZAKtDzW_ig1Njvb5Vw
提取码:ho3a
链接无效了的话请加Q群:832218493免费领取!
免费学习地址:https://ke.qq.com/course/417774?flowToken=1017067
本系列文章主要是近期针对Linux进程调度源码进行阅读与分析后的经验总结,分析过程中可能结合部分Linux网络编程的相关知识以便于理解,加深对Linux进程调度的理解和知识分享。
本系列文章主要结合Linux3.10.1内核版本源代码以及部分Linux2.4内核版本源代码进行分析,主要涉及fork(),vfork(),clone()应用层函数的底层实现原理,schedule调度器的实现以及CFS完全公平调度策略算法的分析。
文章目录
1、进程管理专题
1.1进程原理
进程生命周期
task_struct结构
进程优先级
进程系统调用
1.2进程调度机制
调度器实现schedule()
完全公平调度类CFS
实时调度类原理
多核模式调度SMP
1.3进程竞争机制
RCU机制原理
内存优化与屏障
大内核锁
per_CPU计数器
1.4进程系统调用
写时复制原理
进程内存布局
进程堆栈管理
系统调用实现流程
2.内存管理专题
2.1内存原理
(N)UMA模型组织
页表原理
处理器高速缓存
TLB工作原理
2.2物理内存
伴伙算法
slab/slub/slob分配器
内存映射
分配器原理
不连续页原理
2.3虚拟内存
进程内存映射
进程堆栈管理
用户空间缺页异常
内核空间与用户空间
2.4内存系统调用
kmalloc/vmaloc
BRK
内存池机制
内存优化
3.设备驱动专题
3.1设备子系统原理
字符设备子系统
块设备子系统
网络适配器子系统
I/O原理
3.2字符设备驱动
file_operations原理
系统调用流程
ioctl流程
请求中断
3.3块设备驱动
资源管理
I/O调度
BIO结构原理
PCI总线原理
3.4网卡设备驱动
net_device/net_device_ops
sk_buff原理
网卡数据中断
网络适配器映射
3.5内核模块架构
模块添加与删除
自动化与热插拔
主从设备号
版本控制
4.网络协议专题
4.1网络系统架构
接收缓冲区
发送缓冲区
netfilter
iptables
4.2网络协议栈
TCP/UDP
TCP控制块
IP协议
netlink机制
4.3系统API
POSIX网络API
epoll实现原理
socket初始化
网络系统参数设置
5.内核组件专题
5.1时间管理
通用时间子系统
高分辨率定时器
动态时钟结构
定时器系统调用实现
6.2系统缓存
页缓存实现
块缓存实现
7.3数据同步
数据同步原理
inode同步与拥塞
强制回写与完全同步
8.文件系统专题
8.1虚拟文件系统VFS
通用文件模型
VSF结构
文件操作系统调用
file/inode原理
8.2无存储文件系统
proc文件系统
文件系统数据结构
管理/proc数据项
系统控制机制
sysfs文件分析
sysfs数据结构
装载文件系统
文件目录 操作
向sysfs增加数据
8.3磁盘文件系统
Ext2文件系统
Ext3文件系统
Ext4文件系统
8.4用户态文件系统
FUSE使用场景
FUSE原理
FUSE实现
用户态文件接口实现
9.内核项目实战专题
1、手把手实现进程间通信
2、网络适合器实现
3、无存储文件系统实现
4、为内核添加自己系统调用
5、添加进程调度器
6、用户态文件系统实现
7、为内核防火墙做贡献之iptables
8、用slab实现内存池
9、内核定制化系统
10、向VFS添加自定义文件系统
10.Linux内核学习参考书籍
1、《深入理解LINUX内核》 第三版 [美] 博韦等著()
2、《Linux设备驱动开发详解》 宋宝华 编著
3、《Linux内核设计与实现》 原书第3版 拉芙 (RobertLove) 著
4、《深入理解LINUX网络内幕》 [意] Benvenuti 著
5、《Linux设备驱动程序》 [美] 科波特(Corbet J.) 著