热度 1||
?
arch : 包含各种体系结构特定代码,如arm,x86,mips等,在每个体系结构目录下
通常都有:
Ø
boot - 内核需要的特定平台代码
Ø
kernel – 体系结构特有的代码
Ø
lib - 通用函数在特定体系结构的实现
Ø
math-emu
– 模拟FPC的代码,在ARM中,使用mach-xxx代替
Ø
mm - 特定体系结构的内存管理
Ø
include - 特定体系结构的头文件
?
block: 存放块设备相关代码
?
crypto: 存入加密、压缩、CRC校验等相关算法代码
?
Document:
存放相关说明文档,很多实用文档,包括驱动编写
?
driver: 存放linux内核设备驱动程序源码。驱动码在linux内核源码中占有很大的
比例,见外设几乎都有可参考源码,对驱动开发而言,该目录非常重要,该
目录包含众多驱动,目录按照设备类别进行分类,如char、block、input、
i2c、spi、pci、usb等。
?
firmware:
存放处理器相关的一些特殊固件
?
fs: 存放所有文件系统代码,如fat、ext2、ext3、ext4、ubifs、nfs、sysfs等
?
include:
存放内核所需,与平台无关的头文件,与平台相关的头文件已经移动到
arch平台下的include目录。如ARM的头文件目录<arch/arm/include/asm/>
?
init: 包含内核初始化代码
?
ipc: 存放进程间通信代码
?
kernel: 包含linux内核管理代码
?
lib: 库文件代码
?
mm: 存入内存管理代码
?
net: 存入网络相关代码
?
sample: 存放提供一些内核编程范例,如kfifo,后者相关用户态编程范例,如hidraw
?
scripts:存放系统安全性相关代码
?
sound: 存放声音,声卡相关驱动
?
tools: 编译过程中一些主机用到的工具
?
usr:
cpio相关实现
?
virt: 内核虚拟机KVM
?
Copying :目录下是GPL版权申明。对具有GPL版权的源代码改动而形成的程序,
或使用GPL工具产生的程序,具有使用GPL发表的义务,如公开源代码
? Credits:目录下是光荣榜。对Linux做出过很大贡献的一些人的信息。
?
Makefile:目录第一个Makefile文件。用来组织内核的各模块,记录了个模块间的
相互这间的联系和依托关系,编译时使用;仔细阅读各子目录下
的Makefile文件对弄清各个文件这间的联系和依托关系很有帮助。
?
ReadMe: 文件提供内核的各种编译方法;生成文件的查看方法,
如 nm vmlinux | sort |
less
?
Maintainers:
目录存放了维护人员列表,对当前版本的内核各部分都有谁负责。
?
Reporting-bugs
: 目录里是有关报告Bug 的一些内容
?
Rules.make:
目录里是各种Makefilemake所使用的一些共同规则
?
.Config:
这个是隐藏文件,Make oldconfig 和make defconfig会把生成的默认的
configuration放到文件.config中。执行Make之后会根据Makefile上下层
级依赖关系编译整个系统,.config作为编译各个模块的依据。
一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。
最后,再吼一下俺的口号:
每天进步一点点,开心多一点^_^
--2017年3月28日 09:04:31
eric_wang: Hi,可以将您的日志分享到嵌入式Linux板块让更多人看到,还能同大家一起探讨相关问题。板块链接:https://bbs.eeworld.com.cn/forum-131-1.html