Skip to content

withesse/linux-kernel-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux 内核源码深度分析文档集

生成日期:2026-03-20 基于 Linux Kernel 源码(当前分支:master)


文档列表

文件 模块 核心内容
00_overall_architecture.md 整体架构 目录结构、架构图、启动流程、系统调用、核心数据结构、设计模式
01_cgroup_namespace.md cgroup+namespace 八种namespace、nsproxy、PID/网络NS、cgroup v2、css_set、memcg、容器隔离全流程
02_memory_management.md 内存管理 NUMA/Zone/Page、伙伴系统、SLUB、VMA、缺页异常、COW、Swap、OOM
03_process_scheduling.md 进程调度 task_struct、状态机、fork/exec、CFS红黑树、RT/DL调度、负载均衡、信号
04_network_stack_netfilter.md 网络栈+Netfilter sk_buff、收发路径、Netfilter hooks、xtables模块深度分析
05_vfs_filesystem.md VFS文件系统 superblock/inode/dentry/file、路径查找、页缓存、挂载树
06_device_model_drivers.md 设备模型+驱动 kobject体系、bus/device/driver三角、中断子系统、DMA、电源管理
07_synchronization_memory_model.md 同步+内存模型 spinlock/mutex/RCU、内存屏障、LKMM、litmus test分析
08_ebpf.md eBPF 指令集、verifier、JIT、Map类型、BTF/CO-RE、XDP/kprobe/LSM程序类型
09_io_uring.md io_uring SQ/CQ ring、io_kiocb、SQPOLL/IOPOLL模式、io-wq、零拷贝、链式请求
10_block_layer.md 块设备层+I/O调度 bio/request/blk-mq、mq-deadline/BFQ/Kyber、NVMe多队列、I/O合并
11_time_subsystem.md 时间子系统 clocksource/hrtimer/timer wheel、NO_HZ tickless、vDSO加速、NTP
12_interrupt_softirq.md 中断与软中断 irq_desc/irq_chip、softirq/tasklet/workqueue、中断线程化、ksoftirqd
13_kernel_module.md 内核模块系统 .ko ELF结构、符号导出/解析、模块参数、签名验证、加载状态机
14_lsm_security.md LSM安全框架 capability、hook机制、SELinux/AppArmor/BPF-LSM、seccomp、cred
15_crypto.md 内核加密框架 Crypto API、算法注册、AES-NI硬件加速、dm-crypt/TLS/WireGuard应用
16_tracing_observability.md 追踪与可观测性 ftrace/kprobe/tracepoint/perf、ring buffer、bpftrace、火焰图
17_kvm.md KVM 虚拟化 VM entry/exit、VCPU循环、VMX/SVM、EPT内存虚拟化、vAPIC、kvmclock
18_tcp_ip_deep.md TCP/IP 协议栈深度 tcp_sock、三次握手、状态机、CUBIC/BBR拥塞控制、TSO/GSO、RACK重传
19_kernel_hardening.md 内核安全加固 KASLR/KPTI、SMEP/SMAP、KASAN/UBSAN、栈保护、CFI、Spectre缓解
20_acpi_power.md ACPI 与电源管理 ACPI表/AML、S/D状态、Runtime PM、cpufreq/cpuidle、suspend/hibernate
21_xdp_afxdp.md XDP / AF_XDP xdp_buff/frame、Native/Generic/Offload模式、UMEM零拷贝、redirect机制
22_virtio_paravirt.md virtio 与半虚拟化 split/packed ring、feature协商、virtio-net/blk、vhost内核后端、paravirt_ops
23_iommu_dma.md IOMMU 与 DMA VT-d/AMD-Vi、IOVA映射、SWIOTLB bounce buffer、VFIO设备直通
24_cpu_hotplug_percpu.md CPU热插拔与per-CPU per-CPU变量布局、CPU状态机、NUMA自动均衡、isolcpus/nohz_full
25_scsi.md SCSI 子系统 Scsi_Host/scsi_cmnd、EH错误恢复、libata/ATA转换、DM-Multipath
26_drm_gpu.md DRM / GPU 框架 GEM内存管理、KMS显示管线、原子提交、GPU调度器、i915/amdgpu
27_rust_in_linux.md Rust in Linux bindgen绑定、KBox/KVec、泛型锁框架、module!宏、Nova驱动
28_kdump_kexec.md kdump / kexec kimage、crashkernel预留、NMI shootdown、/proc/vmcore、crash分析
29_ext4_btrfs.md ext4 与 btrfs extent树、jbd2日志、CoW B树、子卷快照、RAID、事务机制对比
30_tc_traffic_control.md TC 流量控制 Qdisc框架、HTB/FQ-CoDel/CAKE、BPF分类器、ingress/clsact
31_usb.md USB 子系统 URB传输、设备枚举、xHCI控制器、gadget框架、autosuspend
32_ipc.md IPC 机制 pipe环形缓冲区、UNIX socket fd传递、SysV IPC、POSIX IPC、memfd
33_fuse_overlayfs.md FUSE / OverlayFS FUSE协议7.45、fuse_conn/req、Copy-Up、whiteout、容器分层
34_alsa_audio.md ALSA 音频 snd_card/PCM、环形缓冲区、DMA传输、ASoC/DAPM、PipeWire
35_preempt_rt.md PREEMPT_RT 实时内核 RT spinlock/mutex、优先级继承PI链、中断线程化、softirq线程化
36_netlink.md Netlink 协议 nlmsghdr/nlattr、rtnetlink、Generic Netlink、nl80211/cfg80211
37_livepatch.md 内核热补丁 livepatch ftrace trampoline替换、状态转换栈检查、shadow变量、累积补丁
38_psi_memory_pressure.md PSI 内存压力 stall time度量、SOME/FULL、触发器、kswapd/OOM协作、LMKD
39_mac80211_wireless.md mac80211 / 无线网络 cfg80211/mac80211层次、ieee80211_hw/vif/sta、扫描/关联、TX/RX路径、minstrel_ht速率控制
40_input_subsystem.md Input 输入子系统 input_dev/handler/handle、evdev接口、HID子系统、Multi-touch协议、force_feedback
41_thermal.md Thermal 热管理 thermal_zone/cooling_device/governor、step_wise/IPA算法、cpufreq_cooling、Intel RAPL/DPTF
42_printk_logging.md printk 与内核日志 printk_ringbuffer无锁实现、nbcon控制台架构、日志级别、/dev/kmsg、PREEMPT_RT线程化
43_ip_routing.md IP 路由子系统 FIB/LC-trie查找、dst_entry缓存、策略路由、ECMP、IPv6路由、VRF、eBPF LWT
44_gpio_i2c_spi.md GPIO / I2C / SPI gpio_chip/gpiod API、i2c_adapter/client/driver、spi_controller/message、regmap集成
45_memory_hotplug.md 内存热插拔 SPARSEMEM/mem_section、add/online/offline/remove流程、页面迁移、ZONE_MOVABLE、virtio-mem
46_audit.md Audit 审计子系统 audit_context、三级队列、kauditd、规则过滤链、syscall审计、SELinux AVC审计、Netlink通信
47_cxl_memory.md CXL 内存互联 CXL 1.1/2.0/3.0、三种子协议、Type 1/2/3设备、HDM Decoder、Region管理、NUMA/HMAT集成
48_bpf_networking.md BPF 高级网络 sockmap/sk_psock、sk_msg/sk_skb、cgroup BPF、SOCK_OPS、sk_reuseport、struct_ops拥塞控制
49_arm64_arch.md ARM64 架构深度 异常级别/向量表、四级页表/TCR_EL1、cpu_switch_to、GICv3、KASLR、PAC/BTI/MTE/SVE
50_dma_engine.md DMA Engine 框架 dma_device/chan/descriptor、四种传输类型、cookie机制、Slave DMA、async_tx RAID加速、virt-dma
51_nfs.md NFS 文件系统 nfs_client/server/inode、RPC层rpc_task/xprt、属性缓存、NFSv4状态机、pNFS、nfsd服务端
52_md_raid.md MD 软件 RAID mddev/md_rdev/personality、stripe_head、RAID5/6奇偶校验、写洞问题、Journal/PPL、位图同步
53_mm_compaction.md 内存规整与碎片整理 双扫描器算法、compact_zone、migratetype/pageblock、kcompactd、主动规整、THP、CMA
54_rdma_infiniband.md RDMA / InfiniBand IB Verbs API、QP/CQ/MR、QP状态机、RDMA Read/Write、rdma_cm连接管理、SoftRoCE、nvme-rdma
55_riscv_arch.md RISC-V 架构 特权级U/S/M、CSR寄存器、Sv39/48/57页表、SBI/OpenSBI、RVV向量扩展、Zicbom、启动流程
56_hugetlb_thp.md HugeTLB 与透明大页 hstate/subpool、预分配池、hugetlbfs、THP策略、khugepaged折叠、split_huge_page、文件页THP
57_clk_framework.md Common Clock Framework clk_core/clk_hw/clk三层、clk_ops、分频/mux/gate/PLL、使能计数、clk_notifier、DT binding
58_regulator.md Regulator 电源轨框架 regulator_dev/desc/ops、linear_range电压表、级联供电树、使能引用计数、DRMS、PMIC/MFD
59_pinctrl.md Pin Control 子系统 pinctrl_dev/desc、pin/group/function三级抽象、pinmux/pinconf ops、DT binding、GPIO整合
60_nvdimm_pmem.md NVDIMM / 持久内存 ACPI NFIT、nd_region/namespace、fsdax/devdax模式、DAX直接映射、BTT原子写、持久化写顺序
61_v4l2_media.md V4L2 / Media 子系统 video_device/v4l2_subdev、videobuf2缓冲区、DMABUF共享、Media Controller、Request API
62_bluetooth.md Bluetooth 蓝牙子系统 hci_dev/conn、HCI传输(USB/UART)、L2CAP、LE低功耗、AF_BLUETOOTH、MGMT接口、SMP配对
63_pci_subsystem.md PCI/PCIe 子系统 pci_dev/bus/driver、配置空间、BAR资源分配、MSI/MSI-X、ACS/IOMMU、ASPM、SR-IOV、P2P DMA
64_mtd_nand.md MTD / NAND Flash mtd_info/nand_chip、ECC校验、坏块管理、UBI磨损均衡、UBIFS、SPI NOR/SFDP自动识别
65_watchdog.md Watchdog 看门狗 watchdog_device/ops、魔幻字符、NOWAYOUT、pretimeout governor、iTCO/SP805、softlockup/hardlockup
66_virtiofs_9p.md virtiofs / 9P virtio ring传输、FUSE协议、DAX零拷贝映射、SETUPMAPPING、9P2000.L协议、Fid状态机
67_mm_reclaim.md 内存回收 / kswapd 水位MIN/LOW/HIGH、kswapd/balance_pgdat、LRU四链表、MGLRU世代、workingset_refault、shrink_slab
68_devfreq_opp.md devfreq + OPP dev_pm_opp V-F对、opp_table、升降频安全顺序、devfreq框架、五种governor、DRAM/GPU案例
69_genpd.md Generic Power Domains generic_pm_domain、电源域树、级联上/下电、空闲状态、QoS governor、Runtime PM集成、SCMI后端
70_maple_tree_vma.md Maple Tree 与 VMA 区间B-Tree、maple_range_64/arange_64、RCU遍历、ma_state游标、vma_iterator、VMA查找/分裂/合并
71_mptcp.md MPTCP 多路径TCP mptcp_sock/subflow_context、DSN-SSN映射、DSS选项、路径管理器、调度器、ADD_ADDR、发送/接收路径
72_openvswitch.md OpenvSwitch 内核数据面 sw_flow/flow_table、EMC/SMC双缓存、dp_process_packet、Action执行、Upcall、CT集成、TC offload
73_nftables.md nftables 框架 nft_table/chain/rule/expr、虚拟机执行、集合(hash/rbtree)、事务提交、flowtable软件加速
74_conntrack_nat.md Conntrack / NAT nf_conn五元组、TCP状态机、expect机制、FTP ALG、nf_nat_setup_info、ct offload卸载
75_zswap_zram.md zswap / zram / zsmalloc zswap_entry/pool、压缩写入/读取路径、二次机会shrinker、zsmalloc size class、zram writeback
76_ksm.md KSM 内核同页合并 ksm_rmap_item/stable_node、双红黑树、write_protect_page、replace_page、EWMA自动调速、侧信道防护
77_ima_evm.md IMA / EVM 完整性 度量/评估/审计三功能、ima_iint_cache、TPM PCR扩展、策略引擎、EVM HMAC、签名验证链
78_futex_epoll.md futex / epoll futex_q/哈希桶、PI优先级继承、robust futex、futex2、epitem/eventpoll、ET/LT差异、EPOLLEXCLUSIVE
79_sched_ext.md sched_ext BPF 调度器 sched_ext_ops全回调、scx_task_state、DSQ分发队列、与CFS共存、watchdog防死锁、scx_simple实现
80_eas_autonuma.md EAS + AutoNUMA em_perf_domain、find_energy_efficient_cpu、compute_energy、task_numa_fault、NUMA扫描与迁移
81_device_mapper.md Device Mapper mapped_device/dm_table/dm_target、bio映射路径、dm-verity Merkle树、dm-integrity、dm-cache、dm-thin
82_f2fs_erofs.md F2FS + EROFS F2FS日志温度/GC/双CP检查点/原子写/压缩、EROFS只读设计/compact inode/pcluster压缩/fscache
83_keyring_tpm.md Key Management + TPM struct key/keyring层次、request_key、系统密钥环、TPM2 PCR扩展、tpm2_seal_trusted、vTPM
84_vxlan_tunnels.md VXLAN / Geneve / GRE 隧道 vxlan_dev/fdb/发送接收路径、FDB学习、Geneve可变选项、GRE解复用、ip_tunnel元数据、UDP GSO
85_ipvs_bonding.md IPVS/LVS + Bonding/VLAN ip_vs_service/dest/conn、NAT/DR/TUN模式、调度算法、Bonding七种模式、LACP、VLAN/MACVLAN/IPVLAN
86_userfaultfd.md userfaultfd userfaultfd_ctx、MISSING/WP/MINOR三模式、handle_userfault时序、UFFDIO_COPY/CONTINUE、QEMU热迁移
87_memory_tiering.md 内存分层(Memory Tiering) memory_tier/demotion_nodes、adistance距离模型、DRAM/CXL/PMEM层级、热页降级/升级迁移、HMAT解析、DAX kmem集成
88_x86_arch.md x86/x86-64 体系结构 entry_SYSCALL_64汇编流程、pt_regs、__switch_to进程切换、四级/五级页表、KPTI双页表、GDT/IDT/TSS、PCID、Spectre缓解
89_device_tree.md 设备树(Device Tree) DTB格式/FDT解析、unflatten_device_tree两遍算法、device_node树、compatible加权匹配、of_platform_populate、DT overlay动态插拔
90_firmware_loading.md 固件加载子系统 request_firmware API、fw_priv/firmware_cache、5级加载路径(内建→FS→EFI→sysfs fallback)、休眠缓存、IMA安全校验
91_hwmon_power_rtc.md hwmon + Power Supply + RTC hwmon动态sysfs属性、11种传感器类型、power_supply充放电状态机、80+属性、RTC alarm/rtc_class_ops、thermal联动
92_namespace_deep.md 网络/用户命名空间深度 struct net生命周期、pernet_operations、veth跨ns通信、user_ns uid/gid映射双模式、32层嵌套、rootless容器
93_kunit_testing.md KUnit 内核单元测试 kunit_test_suite/KUNIT_CASE宏、TAP输出、kunit_resource RAII、静态桩、KASAN/KCSAN集成、kselftest对比
94_io_uring_advanced.md io_uring 高级特性 固定缓冲区/文件注册、链式超时/Multishot、io_uring_cmd NVMe passthrough、sendmsg zerocopy双CQE、Buffer Ring

特别说明:当前修改文件分析

本次分析特别深入覆盖了当前工作分支的修改文件:

netfilter xtables 匹配模块

修改文件 分析位置 功能
net/netfilter/xt_DSCP.c 04文档 §7.1 DSCP/TOS 字段匹配(QoS分类)
net/netfilter/xt_HL.c 04文档 §7.2 TTL/Hop Limit 匹配
net/netfilter/xt_RATEEST.c 04文档 §7.3 速率估计匹配
net/netfilter/xt_TCPMSS.c 04文档 §7.4 TCP MSS 匹配
include/uapi/linux/netfilter/xt_DSCP.h 04文档 §7.1 DSCP 用户空间接口
include/uapi/linux/netfilter/xt_CONNMARK.h 04文档 §7.5 连接标记接口
include/uapi/linux/netfilter/xt_MARK.h 04文档 §6 包标记接口
include/uapi/linux/netfilter/xt_RATEEST.h 04文档 §7.3 速率估计接口
include/uapi/linux/netfilter/xt_TCPMSS.h 04文档 §7.4 TCP MSS 接口
include/uapi/linux/netfilter_ipv4/ipt_ECN.h 04文档 §6 ECN 标记接口
include/uapi/linux/netfilter_ipv4/ipt_TTL.h 04文档 §7.2 TTL 接口
include/uapi/linux/netfilter_ipv6/ip6t_HL.h 04文档 §7.2 Hop Limit 接口

内存模型 litmus test

修改文件 分析位置 说明
tools/memory-model/litmus-tests/Z6.0+pooncelock+poonceLock+pombonce.litmus 07文档 §9 验证"持锁操作对无锁第三方观察者不可见"的内存序特性

架构总览

Linux 内核架构层次:

用户空间 (User Space)
    │ 系统调用(~450个)
    ▼
┌────────────────────────────────────────────────────┐
│             内核核心子系统                          │
│  进程调度   内存管理   VFS    网络栈   安全框架    │
├────────────────────────────────────────────────────┤
│         内核公共基础(中断/同步/RCU/BPF/cgroup)   │
├────────────────────────────────────────────────────┤
│    设备驱动框架   块设备层   加密框架   IOMMU      │
├────────────────────────────────────────────────────┤
│         硬件抽象层(arch/x86, arm64, riscv...)    │
└────────────────────────────────────────────────────┘
    │
    ▼
硬件(CPU, RAM, NVMe, NIC, GPU...)

由 Claude Code 多 agent 并行分析生成

About

Deep-dive analysis of 95 Linux kernel subsystems — memory management, scheduler, networking, eBPF, KVM, filesystems and more. With source references, ASCII diagrams, and Chinese explanations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors