内核技术点合辑
Linux内核源代码包括三个主要部份:
1.内核核心代码,包括第3章所描述的各个子系统和子模块,以及其它的支撑子系统,例
如电源管理、Linux初始化等
2.其它非核心代码linux内核24版源代码分析大全(清晰版),比如库文件(由于Linux内核是一个自包含的内核,即内核不依赖其它
的任何软件linux源代码分析,自己就可以编译通过)、固件集合、KVM(虚拟机技术)等
3.编译脚本、配置文件、帮助文档、版权说明等辅助性文件
右图示使用ls命令听到的内核源代码的顶楼目录结构,具体描述如下。
include/----内核头文件,须要提供给外部模块(比如用户空间代码)使用。
kernel/----Linux内核的核心代码,包含了2.2小节所描述的进程调度子系统linux内核24版源代码分析大全(清晰版),以及和进程调
度相关的模块。
mm/----显存管理子系统(2.3小节)。
fs/----VFS子系统(2.4小节)。
net/----不包括网路设备驱动的网路子系统(2.5小节)。
ipc/----IPC(进程间通讯)子系统。
arch//----体系结构相关的代码,譬如arm,x86等等。
arch//mach-----具体的machine/board相关的代码。
arch//include/asm----体系结构相关的头文件。
arch//boot/dts----设备树(DeviceTree)文件。
init/----Linux系统启动初始化相关的代码。
block/----提供块设备的层次。
sound/----音频相关的驱动及子系统,可以看作“音频子系统”。
drivers/----设备驱动
lib/----实现须要在内核中使用的库函数查看linux是什么系统,比如CRC、FIFO、list、MD5等。
crypto/-----加密、解密相关的库函数。
security/----提供安全特点(SELinux)。
virt/----提供虚拟机技术(KVM等)的支持。
usr/----用于生成initramfs的代码。
firmware/----保存用于驱动第三方设备的固件。
samples/----一些示例代码。
tools/----一些常用工具,如性能分析、自测试等。
Kconfig,Kbuild,Makefile,scripts/----用于内核编译的配置文件、脚本等。