Linux内核源码结构
首先分析一下源码目录下的重要的三个单独文件
其中第一个问Kbuild(就是kernel build)就是内核编译,这个文件就是Linux内核编译体系需要用到的文件
第二个Kconfig就是和内核配置有关的,主要的在每个文件夹中都有Kconfig文件(主要是配置方便)
第三个Makefile,这个是整个LINUX内核的总的makefile ,在每个文件夹下面也有Makefile文件。
Linux内核源码目录结构
(1)arch(archtecture)意思是架构,arch目录下有很多个不同架构的cpu子目录
比如下面的这些
我们主要的是arm目录,arm目录下面又有arm不同构架
(2)binary存放的二进制文件
(3)block在Linux中block表示块设备譬如SD卡,iNand,Nand、硬盘等都是块设备
(4)crypto(加密文件)
里面有常见的crc32校验,compress等等
(5)Documentation里面放了一些文档
(6)drivers,驱动目录,分门别类列出来Linux内核支持的所有硬件设备的驱动源代码
比如常用到的iic spi mmc等等。这部分重要。
(7)fs fs就是file system 文件系统,里面列出了Linux支持的各种文件系统
(8)fireware固件,固件就是固化到IC里面运行的叫固件。
(9)include 头文件目录 公用的(各种CPU构架共用的)头文件都在这里,每种CPU架构特有的一些头文件在arch/arm/include目录及其子目录下
(10)init init为初始化的意思,这个目录下的代码就是Linux内核启动时初始化内核的代码
(11)ipc inter process communication 进程间通信,里面都是Linux支持的ipc的代码实现
(12)kernel 就是Linux内核,这个文件夹下放的就是Linux内核本身需要的一些代码文件
(13)lib lib是库的意识,这里面都是一些公用的有用的库函数,注意应该会C语言的区别开
(14)mm memory management内存管理,Linux的内存管理代码在这里实现
(15)net 该目录下是网络有关的代码,比如TCP/IP协议栈都在这里
(16)scripts这个目录下全部是脚本文件,这些脚本文件不是Linux内核工作时使用的,而是用来辅助对Linux内核运行配置编译生成的
(17)security安全相关的代码
(18)sounds 音频处理有关的
(19)tools Linux中用到的一些有用工具
(20)usr 目录下是initramfs相关的和Linux内核的启动有关
(21)virt内核虚拟机有关的