一,Linux内核组成Linux内核主要由 进程管理、内存管理、设备驱动、文件系统、网络协议栈 外加一个 系统调用。
二,源码组织结构三,Linux内核知识体系
(1)内存管理内存原理
SMP/NUMA模型组织页表/页表缓存CPU缓存内存映射
虚拟内存伙伴分配器块分配器巨型页页回收页错误异常处理与反碎片技术连续内存分配器技术原理不连续页分配器原理与实现内存系统调用kmalloc/vmalloc内存池原理与实现内存优化与实现(2)文件系统虚拟文件系统VFS通用文件模型数据结构文件系统调用挂载文件系统无存储文件系统磁盘文件系统Ext2/Ext3/Ext4文件系统日志JBD2用户空间系统FUSE原理机制/接口与实现(3)进程管理进程基础进程原理及状态生命周期及系统调用task_struct数据结构进程调度调度策略进程优先级调度类分析SMP调度(4)网络协议栈网络基础架构SKB/net_device网络层分析Linux邻近子系统netlink套接字iptables套接字netfilter框架内核NIC接口分析mac80211无线子系统网络协议栈internet控制消息协议(ICMP)用户数据报协议(UDP)传输控制协议(TCP)流控制传输协议(SCTP)数据报拥塞控制协议(DCCP)IPv4路由选择子系统*组播/策略/多路径路由选择接收/发送(IPv4/IPv6)数据报infiniBand栈的架构系统API调用POSIX网络API调用epoll内核原理与实现网络系统参数配置
(5)设备驱动
设备子系统I/O机制原理设备模型字符设备子系统网络接口卡驱动Linux设备模型LDM设备模型和sysfs字符设备驱动主设备与次设备设备文件操作分配与注册字符设备写文件操作实现网卡设备驱动数据结构设备方法驱动程序块设备驱动资源管理I/O调度BIO结构原理PCI总线原理蓝牙子系统HCI层/连接L2CAPBNEP蓝牙数据包接收架构