Linux内核工程目录分析

1、arch 目录

  这个目录是和架构有关的目录,比如 arm、arm64、avr32、x86 等等架构。每种架构都对应一个目录,在这些目录中又有很多子目录,比如 boot、common、configs 等等。
以 arch/arm 为例其子目录用于控制系统引导、系统调用、动态调频、主频设置等。arch/arm/configs 目录是不同平台的默认配置文件:xxx_defconfig。arch/arm/boot/dts 目录里面是对应开发平台的设备树文件。arch/arm/boot 目录下会保存编译出来的 Image 和 zImage 镜像文件,而 zImage 就是我们要用的 linux 镜像文件。arch/arm/mach-xxx 目录分别为相应平台的驱动和初始化文件,比如 mach-imx 目录里面就是 I.MX 系列 CPU 的驱动和初始化文件。

2、block 目录

  block 是 Linux 下块设备目录,像 SD 卡、EMMC、NAND、硬盘等存储设备就属于块设备,block 目录中存放着管理块设备的相关文件。

3、crypto 目录

  crypto 目录里面存放着加密文件,比如常见的 crc、crc32、md4、md5、hash 等加密算法。

4、Documentation 目录

  此目录里面存放着 Linux 相关的文档,如果要想了解 Linux 某个功能模块或驱动架构的功能,就可以在 Documentation 目录中查找有没有对应的文档。

5、drivers 目录

  驱动目录文件,此目录根据驱动类型的不同,分门别类进行整理,比如 drivers/i2c 就是 I2C相关驱动目录,drivers/gpio 就是 GPIO 相关的驱动目录。

6、firmware 目录

  此目录用于存放固件。

7、fs 目录

  此目录存放文件系统,比如 fs/ext2、fs/ext4、fs/f2fs 等,分别是 ext2、ext4 和 f2fs 等文件系统

8、include 目录

  头文件目录。

9、init 目录

  此目录存放 Linux 内核启动的时候初始化代码。

10、ipc 目录

  IPC 为进程间通信,ipc 目录是进程间通信的具体实现代码。

11、kernel 目录

  Linux 内核代码。

12、lib 目录

  lib 是库的意思,lib 目录都是一些公用的库函。

13、mm 目录

  此目录存放内存管理相关代码。

14、net 目录

  此目录存放网络相关代码。

15、samples 目录

  此目录存放一些示例代码文件。

16、scripts 目录

  脚本目录,Linux 编译的时候会用到很多脚本文件,这些脚本文件就保存在此目录中。

17、security 目录

  此目录存放安全相关的文件。

18、sound 目录

  此目录存放音频相关驱动文件,音频驱动文件并没有存放到 drivers 目录中,而是单独的目录。

19、tools 目录

  此目录存放一些编译的时候使用到的工具。

20、usr 目录

  此目录存放与 initramfs 有关的代码。

21、virt 目录

  此目录存放虚拟机相关文件。

22、.config 文件

  跟 uboot 一样,.config 保存着 Linux 最终的配置信息,编译 Linux 的时候会读取此文件中的配置信息。最终根据配置信息来选择编译 Linux 哪些模块,哪些功能。

23、Kbuild 文件

  有些 Makefile 会读取此文件。

24、Kconfig 文件

  图形化配置界面的配置文件。

25、Makefile 文件

  Linux 顶层 Makefile 文件,建议好好阅读一下此文件。

26、README 文件

  此文件详细讲解了如何编译 Linux 源码,以及 Linux 源码的目录信息。

猜你喜欢

转载自blog.csdn.net/xxxx123041/article/details/120098545
今日推荐