一个以 Linux 驱动学习 + 实验环境搭建 + 阶段交付收口 为主线的项目仓库。
这套仓库不是只放单个 demo,而是把:
- 内核与 BusyBox 实验环境准备
- 每日驱动代码与脚本
- 回归记录与证据归档
- 阶段总结与交付文档
放在同一个项目里持续演进。
driver-lab/
├── kernel-src/ 内核 / BusyBox 环境准备说明与目录骨架
└── linux-driver-lab/ foundation / netdev / track 专题的代码、脚本、文档、records、阶段报告
负责说明实验环境依赖,包括:
- Linux 内核源码与构建目录
- BusyBox 源码与最小 rootfs 产物
- x86 / arm64 的基础目录约定
负责真正的学习主线,当前已经覆盖:
- W1:字符设备基础闭环(day01 ~ day07)
- W2:platform / DT / IRQ / regmap / ftrace(day08 ~ day14)
- W3:baseline / profile / perf / 回归收口(day15 ~ day21)
- W4:PCIe 基本功作品线(day22 ~ day28)
- W5:DMA / mmap / bench / perf / ftrace / stability(day29 ~ day35)
- netdev 主线(stage00 ~ stage14):net_device / skb / NAPI / ring / XDP
- 专题 track:real-driver / virtual-net / DPDK / AF_XDP / eBPF observability
- 下一主线规划:DPDK Advanced → RDMA → SmartNIC/DPU
- P2 保留支线:block I/O / storage I/O(bio / request / blk-mq / fio / observability)
也就是说,仓库当前状态已经不再是“入门样例集合”,而是一条比较完整的驱动实验型学习路线。
第一次看这个仓库,建议按下面顺序进入:
kernel-src/README.mdlinux-driver-lab/docs/05_START_HERE.mdlinux-driver-lab/docs/01_PROGRAMS.mdlinux-driver-lab/docs/03_PROGRESS.mdlinux-driver-lab/README.md- 按阶段阅读:
- W3 总结入口:
linux-driver-lab/foundation/day21/FINAL_SUBMISSION.md - W4 总结入口:
linux-driver-lab/foundation/day28/README.md - W5 总结入口:
linux-driver-lab/foundation/day35/README.md - netdev 总入口:
linux-driver-lab/netdev/README.md - track 总览:
linux-driver-lab/docs/01_PROGRAMS.md
- W3 总结入口:
从 linux-driver-lab/foundation/day01 开始按 day 阅读与复现。
如果你不是第一次看,建议直接看:
- W1~W5 总评审:
linux-driver-lab/docs/07_FOUNDATION_REVIEWS.md - W3:
linux-driver-lab/foundation/day21/FINAL_SUBMISSION.md - W4:
linux-driver-lab/foundation/day28/README.md - W5:
linux-driver-lab/foundation/day35/README.md - netdev:
linux-driver-lab/netdev/README.md - track:
linux-driver-lab/docs/01_PROGRAMS.md
优先看:
linux-driver-lab/docs/05_START_HERE.mdlinux-driver-lab/docs/01_PROGRAMS.mdlinux-driver-lab/docs/03_PROGRESS.md
这 3 个文件是当前项目总览、阶段定位和完成度矩阵的主要入口。
当前仓库已经完成从字符设备基础,到 platform/DT/IRQ,再到 PCIe/DMA/性能分析与稳定性验证的主线闭环; AF_XDP 四阶段实验(XDP redirect → socket/rings → zero-copy → mini forwarder)全部复测通过(2026-06-07); network data plane 作品集已通过
network-data-plane-v1标签封版; 下一阶段主线调整为 DPDK Advanced → RDMA → SmartNIC/DPU,面向高性能网络、RDMA 和数据中心网络加速方向; block I/O / storage I/O 规划先作为 P2 支线保留。
仓库中不提交 Linux 和 BusyBox 的完整源码内容。
使用时请先根据 kernel-src/README.md 准备本地内核与 BusyBox 目录,再按 linux-driver-lab/ 中各 day 的说明执行。