Linux内核-源码目录结构分析

我们拿到一个Linux内核源码后,必先熟悉其目录大概的结构。其目录结构

图如下所示:


arch:这个为目录是架构相关,里面存放了许多CPU架构,比如arm,x86,MIPS,PPC等,

block:在linux中block表示块设备(以块(多个字节组成的整体,类似于扇

区)为单位来整体访问),譬如说SD卡、iNand、Nand、硬盘等都是块设备。你几乎可以

认为块设备就是存储设备。block目录下放的是一些linux存储体系中关于块设备管理的代码。

crypto:英文意思是加密。这个目录下放了一些各种常见的加密算法的C语言代码实现。譬

如crc32、md5、sha1等。

Documentation:里面放了一些文档。

drivers:驱动目录,里面分门别类的列出了linux内核支持的所有硬件设备的驱动源代码。

firmware:固件。什么是固件?固件其实是软件,不过这个软件是固话到IC里面运行的

叫固件:就像S5PV210里的iROM代码。

fs:fs就是file system,文件系统,里面列出了linux支持的各种文件系统的实现。

include:头文件目录,公共的(各种CPU架构共用的)头文件都在这里。每种CPU架构

特有的一些头文件在arch/arm/include目录及其子目录下。

init:init是初始化的意思,这个目录下的代码就是linux内核启动时初始化内核的代码。

ipc:ipc就是inter process commuication,进程间通信,里面都是linux支持的IPC的

代码实现。

kernel:kernel就是内核,就是linux内核,所以这个文件夹下放的就是内核本身需要的

一些代码文件。

lib:lib是库的意思,这里面都是一些公用的有用的库函数,注意这里的库函数和C语言

的库函数不一样的。在内核编程中是不能用C语言标准库函数,这里的lib目录下的库函

数就是用来替代那些标准库函数的。譬如在内核中要把字符串转成数字用atoi,但是内

核编程中只能用lib目录下的atoi函数,不能用标准C语言库中的atoi。譬如在内核中要打

印信息时不能用printf,而要用printk,这个printk就是我们这个lib目录下的。

mm:mm是memory management,内存管理,linux的内存管理代码都在这里。

net:该目录下是网络相关的代码,譬如TCP/IP协议栈等都在这里。

scripts:脚本,这个目录下全部是脚本文件,这些脚本文件不是linux内核工作时使用的,

而是用来辅助对linux内核进行配置编译生产的。我们并不会详细进入分析这个目录下的

脚本,而是通过外围来重点学会配置和编译linux内核即可。

security:安全相关的代码。不用去管。

sound:音频处理相关的。

tools:linux中用到的一些有用工具

usr:目录下是initramfs相关的,和linux内核的启动有关,暂时不用去管。

virt:内核虚拟机相关的,暂时不用管。

Kbuild:Kbuild是kernel build的意思,就是内核编译的意思。这个文件就是linux内核特有

的内核编译体系需要用到的文件。

Makefile:这个是linux内核的总makefile,整个内核工程用这个Makefile来管理的。


  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Linux内核源码情景分析目录是一个用于分析Linux内核源码目录结构。该目录包含了对内核源码进行深入了解和分析所需的各个部分。 1. arch目录:该目录下包含了不同体系结构的特定代码,如x86、ARM、MIPS等,用于支持不同的硬件平台。 2. block目录:该目录包含了与块设备(磁盘)相关的代码,如磁盘调度器、缓存管理等。 3. crypto目录:该目录包含了加密算法和密码学方面的代码,用于对内核中的数据进行加密和解密。 4. fs目录:该目录是文件系统相关的代码目录,包括各种类型的文件系统,如ext4、FAT、NTFS等。 5. include目录:该目录包含了与编译和头文件相关的代码,如宏定义、数据结构、函数声明等。 6. ipc目录:该目录包含了与进程间通信(IPC)相关的代码,如信号量、消息队列、共享内存等。 7. kernel目录:该目录包含了内核的核心代码,如进程调度、中断处理、内存管理等。 8. lib目录:该目录包含了内核使用的一些通用的库函数,如字符串处理、数据结构操作等。 9. net目录:该目录包含了与网络相关的代码,如TCP/IP协议栈、网络设备驱动等。 10. security目录:该目录包含了与系统安全相关的代码,如访问控制、权限管理等。 11. sound目录:该目录包含了与音频设备相关的代码,如声卡驱动、音频编解码等。 12. tools目录:该目录包含了一些用于分析、调试和测试内核的工具。 通过对这些目录的深入了解,可以更好地理解和分析Linux内核源码,并且可以针对特定的问题和需求进行相应的修改和优化。从而帮助我们更好地理解和应用Linux内核

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值