一、常见linux内核文件的区别
1、vmlinux
编译出来的最原始的内核文件,未压缩。
2、zImage
vmlinux 经过gzip 压缩后的文件。
3、bzImage
bz 表示“ big zImage”,不是用bzip2 压缩的。两者的不同之处在于, zImage 解压缩内核到低端内存(第一个640K),bzImage 解压缩内核到高端内存(1M 以上)。如果内核比较小,那么采用zImage 或bzImage 都行,如果比较大应该用bzImage。
4、uImageU-boot 专用的映像文件,它是在zImage 之前加上一个长度为0x40 的tag。
5、vmlinuzbzImage/zImage 文件的拷贝或指向bzImage/zImage 的链接。
6、initrd
“ initial ramdisk ”的简写。一般被用来临时的引导硬件到实际内核vmlinuz 能够接管并继续引导的状态。
二、linux 内核源码目录结构
1、arch 目录
包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux 支持的体系结构, 例如i386 就是Intel CPU 及与之相兼容体系结构的子目录。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 目录该目录是对其它每个目录作用的具体说明。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !