Linux 内核版本号及源代码目录树结构
一、linux内核版本号的命名机制
Linux内核版本有两种:稳定版和开发版。稳定的内核具有工业级的强度,可以广泛地应用和部署。新的稳定内核相对于较旧的只是修正一些bug或加入一些新的驱动程序。而开发版内核由于要试验各种解决方案,所以变化很快。这两种版本是相互关联,相互循环的。蜜蜂的简笔画
Linux内核的命名机制:
num.num.num
其中第一个数字是主版本号,第二个数字是次版本号,第三个数字是修订版本号。如果次版本号是偶数,那么该内核就是稳定版的;若是奇数,则是开发版的。头两个数字合在一齐可以描述内核系列。如稳定版的2.6.0,它是2.6版内核系列。最新的内核源代码可以在www.kernel以tar包或者增量补丁的形式下载.。
Linux还有各种发行版本,除了最熟悉的Redhat,Debian,Bluepoint,红旗,还有 Slackware,Mandarke,Turbo。
二、linux源代码目录树结构
Linux用来支持各种体系结构的源代码包含大约4500个C语言程序,存放在270个左右的子目录下,总共大约包含200万行代码,大概占用58MB磁盘空间。
在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下:
arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。
include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
init目录包含核心的初始化代码(不是系统的引导代码),有main.c和version.c两个文件。这是研究核心如何工作的好起点。mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。
ipc目录包含了核心进程间的通信代码。modules目录存放了已建好的、可动态加载的模块。fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3
茫茫苍苍子目录。Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在
arch/*/lib/目录下。scripts目录包含用于配置核心的脚本文件。
documentation目录下是一些文档,是对每个目录作用的具体说明。
一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。
源代码目录图解:
高中日记
ini
ker
mm
arc
i3
ke
mm
ma
li
bo
co
黄玉貔貅to
alpha 康柏的Alpha体系结构
s3
sp
spa
mi
ppc Motorola-IBM的基于PowerPC的体系结构 m6
ar
fs
唱歌发音pr
devpts /dev/pts虚拟文件系统
ex
is
nf
nf
fat 基于FAT的文件系统的通用代码
ms
vf
nl
nt
sm
um
minix MINIX文件系统
hp
sy
nc
uf
affs Amiga的快速文件系统(FFS) co
hf国防科技大学专业
ad
ef
qnx4 QNX4 OS使用不的文件系统
ro
au
lo妙味多
Net
Ipc System V的进程间通信
Dri
bl
pa
sc
ch
jo
ftape 磁带流设备
hf
ip
ne
so
video 视频卡设备
cd
is
ap
ma
sgi SGI的设备
fc
ac
mi
pn
usb 通用串行总线(USB)的支持 pc
sb
nu
zo
教育感言一句话di
tc
Lib 通用内核函数
Inc
li
lo
nf
sunrpc Sun的远程过程调用
by
mo
as
as
asm-alpha 康柏的Alpha体系结构 as
as
as
as
asm-sparc Sun的SPARC体系结构 as
as