要进行嵌入式Linux产品的内核驱动开发,需要先了解内核目录的各文件夹下源码的作用,本文介绍Linux内核源码目录树下的各目录文件的作用。
解压Linux内核源码压缩包,将得到内核源码。内核源码很复杂,包含多级目录,形成一个庞大的树状结构,通常称为Linux源码目录树。进入源码所在目录,可以看到目录树顶层通常包含如下目录和文件:
arch/ crypto/ fs/
Kbuild MAINTAINERS README
security/ virt/ block/
Documentation/ include/
Kconfig Makefile REPORTING-BUGS
sound/ COPYING drivers/ init/
kernel/ mm/ samples/ tools/
CREDITS firmware/ ipc/ lib/
net/ scripts/ usr/
各个目录文件的简要说明如表1所列。
表1 Linux源码顶层目录简要说明
| 目录 |
内容 |
| arch/ |
包含各体系结构特定的代码,如arm、x86、ia64、mips等,在每个体系结构目录下通常都有:
-boot 内核需要的特定平台代码
-kernel 体系结构特有的代码
-lib 通用函数在特定体系结构的实现
-math-emu 模拟FPU的代码,在ARM中,使用mach-xxx代替
-mm 特定体系结构的内存管理实现
-include 特定体系的头文件
|
| block/ |
存放块设备相关代码 |
| crypto/ |
存放加密、压缩、CRC校验等算法相关代码 |
| Documentation/ |
存放相关说明文档,很多实用文档,包括驱动编写等 |
| drivers/ |
存放Linux内核设备驱动程序源码。驱动源码在Linux内核源码中站了很大比例,常见外设几乎都有可参考源码,对驱动开发而言,该目录非常重要。该目录包含众多驱动,目录按照设备类别进行分类,如char、block、input、i2c、spi、pci、usb等 |
| firmware/ |
存放处理器相关的一些特殊固件 |
| fs/ |
存放所有文件系统代码,如fat、ext2、ext3、ext4、ubifs、nfs、sysfs等 |
| include/ |
存放内核所需、与平台无关的头文件,与平台相关的头文件已经被移动到arch平台的include目录,如ARM的头文件目录 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|
|