内核篇:Linux 内核源代码的目录结构

内核篇:Linux 内核源代码的目录结构

内核一般要做到 drivers 与 arch 的软件架构分离,驱动中不包含板级信息,让驱动跨平台。同时内核的通用部分(如 kernel、 fs、 ipc、 net 等)则与具体的硬件(arch 和 drivers)剥离。

1.arch :包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如 i386、arm、arm64、powerpc、mips 等。Linux 内核目前已经支持 30 种左右的体系结构。在 arch目录下,存放的是各个平台以及各个平台的芯片对 Linux 内核进程调度、内存管理、中断等的支持,以及每个具体的 SoC 和电路板的板级支持代码。

2.block:块设备驱动程序 I/O 调度。

3.crypto:常用加密和散列算法(如 AES、SHA 等),还有一些压缩和 CRC 校验算法。

4.documentation:内核各部分的通用解释和注释。

5.drivers : 设 备 驱 动 程 序, 每 个 不 同 的 驱 动 占 用 一 个 子 目 录, 如 char、block、net、
mtd、i2c 等。

6.fs:所支持的各种文件系统,如 EXT、FAT、NTFS、JFFS2 等。

7.include:头文件,与系统相关的头文件放置在 include/linux 子目录下。

8.init:内核初始化代码。著名的 start_kernel() 就位于 init/main.c 文件中。

9.ipc:进程间通信的代码。

10.kernel :内核最核心的部分,包括进程调度、定时器等,而和平台相关的一部分代码
放在 arch/*/kernel 目录下。

11.lib:库文件代码。

12.mm:内存管理代码,和平台相关的一部分代码放在 arch/*/mm 目录下。

13.net:网络相关代码,实现各种常见的网络协议。

14.scripts:用于配置内核的脚本文件。

15.security:主要是一个 SELinux 的模块。

16.sound:ALSA、OSS 音频设备的驱动核心代码和常用设备驱动。

17.usr:实现用于打包和压缩的 cpio 等。

18.include:内核 API 级别头文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值