linux内核源码目录简介
简介
了解了linux内核源码个目录的功能,就可以更好对linux内核进行功能添加、修改、移植与编译。
linux内核目录简介
目录 | 开发关注度 | 描述 | 存放功能 |
---|---|---|---|
arch | 5⭐ | 即architecture,意为架构的意思, 常见的一些架构有mips、x86、arm。 适配一款芯片的linux内核,首先需要知道芯片属于什么架构 | dts、内存管理,系统调用,动态调频,主频率设置、库文件等 |
block | 4⭐ | block,意为块,与块设备相关的功能,如SD卡、iNand、Nand、硬盘等块设备相关的操作 | 块设备相关代码 |
crypto | 4⭐ | 可以记为encryption,与加密相关的功能,如md5、sha1、 hash等 | 各类加密算法相关的功能代码 |
Documentation | 5⭐ | linux内核各类机制相关的文档,全英文,可以查阅各类机制的实现说明 | 官方文档 |
drivers | 5⭐ | 即驱动,linux的驱动代码, 如GPIO、网络、usb、蓝牙等驱动源码,一般做开发都需要修改或添加该目录下的文件 | 驱动源码相关 |
frimware | 3⭐ | 存放一些固件代码(.bin) | 笔者未知其具体作用 |
fs | 4⭐ | 即files system, linux的文件系统, 如ext2-4、jffs2、nfs、squashfs、ramfs、romfs等文件系统的实现代码 | 文件系统相关源码 |
include | 5⭐ | linux库文件的头文件,如fs.h、mdio.h、mm.h等, include/linux存放与平台无关的功能的头文件 | linux内核功能相关的头文件 |
init | 5⭐ | 即initialization ,初始化相关源码,main.c也在其中 | linux初始化相关 |
ipc | 4⭐ | 即Inter-Process Communication,进程间通信, 如共享内存、信号量、消息队列等 | 进程间通信相关代码 |
kernel | 5⭐ | 即内核,linux内核相关的功能实现源码,如panic、pid、module、irq、cpu相关 | 内核功能源码 |
lib | 4⭐ | 即library, 实现一些库功能,如decompress、crc32、atomic等 | 库功能实现源码 |
mm | 5⭐ | 即memory management,内存管理相关功能实现 ,mmap、page、mempool等 | 内存管理相关源码 |
net | 5⭐ | network, 网络功能相关的源码,如tcp/ip、dns、ipv4/v6、802.11、ethernet等 | 网络协议功能 |
samples | 3⭐ | 一些linux功能代码使用的标准实例 | 示例参考代码 |
scripts | 3⭐ | 与内核无关的脚本代码,如内核编译相关、menuconfig相关 | 内核无关的脚本 |
security | 2⭐ | SELinux的模块。安全相关 | 安全相关代码,具体未知 |
sound | 3⭐ | 声卡与声音驱动相关代码,包含i2c、spi、usb等接口 | 音频功能实现代码 |
tools | 3⭐ | 与c编译、链接生成一个完整内核镜像相关的工具 | 编译相关 |
usr | 3⭐ | 未知 | 未知 |
virt | 3⭐ | 虚拟化相关的代码,允许搭建虚拟机环境,运行多个系统 | 虚拟化相关代码实现 |
参考文章:https://blog.csdn.net/u012010054/article/details/113360202
作为开发者,一般都需要往内核添加自定义功能,我们比较需要关注arch、driver、net、init的这几个目录。 一个内核基本功能围绕着架构、驱动代码、网络、初始化的功能,所以需要重点关注以上目录。