include/ ----> 内核头文件, 需要提供给外部模块(例如用户空间代码)使用;
kernel/ ----> Linux内核的核心代码, 包含进程调度子系统以及进程调度相关的模块;
mm/ ----> 内核管理子系统;
fs/ ----> VFS子系统;
net/ ----> 不包括网络设备驱动的网络子系统;
ipc/ ----> IPC(进程间通信)子系统;
arch// ----> 体系结构相关的代码, eg. arm x86 ...
arch/mach/ ----> 具体的machine/board相关的代码;
arch/include/asm ----> 体系结构相关的头文件;
arhc/boot/dts ----> 设备树(Device Tree)文件;
init/ ----> Linux系统启动初始化相关的代码;
block/ ----> 提供块设备的层次;
sound/ ----> 音频相关的驱动和子系统, 可以看做"音频子系统";
drivers/ ----> 设备驱动(代码量占比最大的部分);
lib/ ----> 实现需要在内核中使用的库函数, eg. CRC, FIFO, LIST, MD5 ...
crypto/ ----> 加密, 解密相关的库函数;
security/ ----> 提供安全特性(SELinux);
virt/ ----> 提供虚拟技术(KVM等)的支持;
usr/ ----> 用于生成initramfs的代码;
firmware/ ----> 保存用于驱动第三方设备的固件;
samples/ ----> 一些示例代码;
tools/ ----> 一些常用工具, eg. 性能剖析, 自测试等;
Kconfig, Kbuild, Makefile, scripts/ ----> 用于内核编译的配置文件, 脚本等;
COPYING ----> 版权声明;
MAINTAINERS ----> 维护者名单;
CREDITS ----> Linux主要的贡献者名单;
REPORTING-BUGS ----> Bug上报的指南;
Documentation, README ----> 帮助, 说明文档;