内核源码目录

liyongjun@Box:~/project/board/buildroot-2021.05/override/linux-5.10.9$ tree -L 1 -d
.
├── arch	// 此目录下所有子目录都是体系架构特有的代码。每个体系架构特有目录下面至少包含 3 个子目录:kernel、lib、mm。
│   ├── arm
|	│   ├── kernel	// 不同体系架构内核特有的实现方式
|	│   ├── lib		// 不同体系架构下的高性能通用代码实现
|	│   ├── mm		// 不同体系架构特有的内存管理程序的实现
│   ├── mips
│   ├── x86
├── block
├── certs
├── crypto
├── Documentation	// 此目录下没有内核代码,有一套有用的内核文档。
├── drivers			// 驱动程序代码。占内核代码量的大部分。包括显卡、PCI、网卡等外围设备的驱动代码
├── fs				// 文件系统代码。ext2、ext3、ext4、nfs 等
├── include			// 包含内核中大部分头文件
│   ├── linux
|	│   ├── skbuff.h
├── init			// 内核初始化过程的代码
├── ipc				// 进程间通信的代码
├── kernel			// 内核中最重要的代码,包含内核中平台无关的基本功能,主要包含进程创建、销毁和调度等
├── lib				// 主要包含内核中其它模块使用的通用函数和内核自解压的函数
├── LICENSES
├── mm				// 实现了平台无关的内存管理代码
├── net				// 网络协议栈代码
│   ├── 802
│   ├── bluetooth	// 蓝牙
│   ├── ethernet	// 以太网(L2)
│   ├── ipv4		// IP 层(L3)
│   │   ├── arp.c
│   │   ├── icmp.c
│   │   ├── igmp.c
│   │   ├── ipc.c
│   │   ├── ip_forward.c
│   │   ├── ip_input.c
│   │   ├── ip_output.c
│   │   ├── ip_tunnel.c
│   │   ├── ping.c
│   │   ├── proc.c
│   │   ├── raw.c
│   │   ├── raw_diag.c
│   │   ├── route.c
│   │   ├── sysctl_net_ipv4.c
│   │   ├── tcp.c	// 传输层(L4)
│   │   ├── tcp_*.c
│   │   ├── udp.c
│   │   ├── udp_*.c
│   ├── ipv6
│   ├── llc
│   ├── mac80211
│   ├── netfilter
│   ├── netlink
│   ├── nfc
│   ├── tls
│   ├── wimax
│   ├── wireless	// 无线
├── samples
├── scripts
├── security
├── sound
├── tools
├── usr
└── virt

22 directories

-L 1 只列一层目录(上面显示的二、三级目录为手动添加,为了充实)

-d 只列出目录,不列出文件(Makefile 等文件不关心)

参考

Linux内核源码——Linux内核网络协议栈