资料介绍
一、常见linux内核文件的区别
1、vmlinux
编译出来的最原始的内核文件,未压缩。
2、zImage
vmlinux经过gzip压缩后的文件。
3、bzImage
bz表示“bigzImage”,不是用bzip2压缩的。两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么采用zImage或bzImage都行,如果比较大应该用bzImage。
4、uImageU-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的tag。
5、vmlinuzbzImage/zImage文件的拷贝或指向bzImage/zImage的链接。
6、initrd
“iniTIalramdisk”的简写。一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。
二、linux内核源码目录结构
1、arch目录
包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是IntelCPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。
2、include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
3、init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。
4、mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。
5、drivers目录是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。
6、ipc目录包含了核心进程间的通信代码。
7、modules目录存放了已建好的、可动态加载的模块。
8、fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。
9、Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。
10、net目录里面是核心的网络部分代码,其每个子目录对应于网络的一个方面。
11、lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。
12、scripts目录包含用于配置核心的脚本文件。
13、documentaTIon目录该目录是对其它每个目录作用的具体说明。
用户评论
查看全部 条评论
发表评论请先 登录, 还没有账号?免费注册。
发表评论