0%

linux 内核源码各目录的功能

linux 内核源码各目录的功能

1 arch

  • arch 目录下主要存放用于支持不同体系结构的代码
  • 不同的子目录存放对应平台的初始化代码,例如
1
2
3
4
$ ls arch/
Kconfig arm blackfin frv ia64 metag mn10300 parisc score tile x86
alpha arm64 c6x h8300 m32r microblaze nios2 powerpc sh um x86_64
arc avr32 cris hexagon m68k mips openrisc s390 sparc unicore32 xtensa

2 Documentation

  • 内核参数、配置、特性的技术说明文档

3 firmware

  • 固件相关的代码,比如 wifi、flash 等硬件的固件代码可能就存放于此

4 init

  • 内核启动相关的代码
  • 在 init/main.c 文件中,

img

start_kernel函数在汇编指令之后执行启动内核

5 security

  • 安全相关的代码

6 block

  • 块设备相关的代码
  • 在 linux 内核中,块设备子系统是很重要的一部分
  • 如果是做存储设备相关的开发,可能会比较关注这部分代码

7 driver

  • 外部设备驱动相关的代码,比如 gpio、gpu、i2c、video 等
  • 如果是做驱动开发,可能会比较关注这部分代码

8 fs

  • 文件系统相关的代码

9 ipc

  • 进程间通信相关的代码

10 kernel

  • 进程管理、调度等核心代码

11 net

  • 网络协议栈相关的代码
  • 如果是做通讯设备开发,可能会比较关注这部分代码

12 sound

  • 声卡相关的代码

13 crypto

  • 加密、解密相关的代码
  • linux 内核不能依赖于外部的 c 库,所以其封装了一些加、解密代码存放在此目录下

14 mm

  • 内存管理相关的代码

15 include

  • 内核头文件相关的代码

16 lib

  • 内核的通用库,可被其他内核程序调用

17 scripts

  • 内核编译脚本