@@ -18,6 +18,109 @@ document!document!document!document!document!document!document!document!
1818document!document!document!document!document!document!document!document!
1919
2020
21+ kernel目录树
22+ ------------
23+
24+ 当你从官方网站(www.kernel.org)取来一份kernel拷贝解压出来时是一个目录树,这会让
25+ 你感到手足无措,我该从哪里开始呢?敲上两条命令编译一下就能用,NO,这是一个操作系统
26+ 并且是一个大工程,先让我们大致看一下目录树中各个目录是做什么的.
27+
28+
29+ arch(架构)
30+
31+ 包含和硬件体系结构相关的代码,每种平台占一个相应的目录.各个特定体系结构的目录只
32+ 是少有不同,其结构类似与内核的顶层目录.
33+
34+ block(块)
35+
36+ 用于实现块设备的基本框架和块设备的I/O调度算法.
37+
38+ crypto(加密)
39+
40+ 包含了各种密码算法的实现,内核的加密层实现.
41+
42+ Documentation(文档)
43+
44+ 包含了大量文本文件,主要是内核各个方面相关的文档.
45+
46+ drivers(驱动)
47+
48+ 这里包含了每个设备的驱动程序,每种设备占用一个目录,所占的空间相当大,但其中只有
49+ 少量成员会出现在编译后的内核中,尽管linux现在支持大量的驱动程序,但是对于每一个
50+ 具体的系统而言,进需要少量驱动程序.
51+
52+ firmware(固件)
53+
54+ 这些固件通常是一种写入ROM中的一些机器码,内核本身不加载任何固件,而只是发一个通
55+ 知给用户空间,等待用户空间程序将固件的镜像文件推送给内核.
56+
57+ fs(file system 文件系统)
58+
59+ 所有kernel支持的文件系统的源代码,每一种文件系统占一个子目录.
60+
61+ include(头文件)
62+
63+ 知道C代码怎么编写,这个目录就不难理解,包含了所有具备公开导出函数的头文件,内核目
64+ 录树的头文件,各个部分的头文件都集中在这里,并且用子目录将这些头文件清晰的分割开
65+ 来.
66+
67+ init(初始化)
68+
69+ 用于初始化内核的代码.
70+
71+ ipc(System V IPC 进程间通信)
72+
73+ 进程间通信的手段有:管道 信号 消息队列 共享内存 信号量 套接口
74+
75+ kernel(内核)
76+
77+ 包含了内核的核心组件的代码,这些包括进程管理,进程调度,中断处理,系统时钟管理,同
78+ 步机制,在线补丁,事件管理,电源管理等等.
79+
80+ lib(库)
81+
82+ 包含了通用库,可用于内核的所有部分,包括用于实现各种树的数据结构和数据压缩并且还
83+ 实现了一个C库的子集.
84+
85+ mm(内存管理)
86+
87+ 和平台无关的内存管理代码,和平台有关的代码放在arch/*/mm下,包括通用的分页模型的
88+ 框架,伙伴算法的实现和对象缓冲器slab的实现代码.
89+
90+ net(网络)
91+
92+ 所实现的各种各样的网络协议,每种协议占用一个子目录.
93+
94+ samples(样例)
95+
96+ 就是一些特性的样例.
97+
98+ scripts(脚本)
99+
100+ 该目录不包括任何内核核心代码,包含了配置和编译内核或进行其它任务所需的所有的脚
101+ 本和实用程序.
102+
103+ security(安全)
104+
105+ 该目录下的文件主要用于安全框架和密钥管理.
106+
107+ sound(声音)
108+
109+ 存放了声音系统架构,包含ALSA(Advanced Linux Sound Architecture)音频框架,以及具
110+ 体声卡的设备驱动程序,其中还有OSS(Open Sound System)音频框架.
111+
112+ tools(工具)
113+
114+ 关于内核的各种各样的工具.
115+
116+ usr(用户)
117+
118+ 该目录中的代码为内核尚未完全启动时执行用户空间代码提供了支持.
119+
120+ virt(虚拟化)
121+
122+ 内核虚拟化的代码,主要是kvm内核虚拟化.
123+
21124
22125==============================================================================
23126==============================================================================
0 commit comments