Linux内核源码分析代码详解

链接:https://pan.baidu.com/s/1MxbVZAKtDzW_ig1Njvb5Vw提取码:ho3a链接无效了的话请加qun:832218493免费领取!

免费学习地址:「链接」

本系列文章主要是近期针对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.) 著