1.linux目录介绍
linux版本4.9.229
arch
:cpu体系相关的代码,不同的体系架构汇编代码是不一样的
documention
:内核内部的技术文档,是开发的第一手资料
init
:内核启动相关的代码
其中,main.c
中函数start_kernel
是c语言的入口函数,从汇编跳转到C语言,从start_kernel开始执行的就是c代码
block
:是块设备的一些代码
drivers
:代码量占比最大的一部分,80%左右,是外设驱动
ipc
:是进程通信的代码
security
:安全相关的代码
net
:里面是网络协议栈的代码
sound
:是声音相关的代码
fs
:是文件系统相关的代码
kernel
:主要是内核调度的一些代码
include
:是内核头文件
mm
:内核中内存管理相关的代码
2.编译内核
1.指定硬件体系架构,这里以x86
架构为例
export ARCH=x86
2.配置board config,此处配置为x86_64_defconfig
,每个board的外设是不一样的,所以需要配置
make x86_64_defconfig
3.配置内核,对上一部分配置的一种微调和补充
make menuconfig
4.编译
make
编译生成的文件位于:arch/架构名称/boot/xxx