分享

几种linux内核文件的区别

 guitarhua 2011-12-31
几种linux内核文件的区别
 
 

之前很少关心内核文件的区别,偶然的机会接触到这些东西,从网上查了些资料,整理了一下,

供大家参考学习,不足之处,欢迎回帖补充

几种linux内核文件的区别
一、vmlinux:
 
编译出来的最原始的内核文件,未压缩。
二、vmlinuz
vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。位于/boot/vmlinuz,是bzImage/zImage文件的拷贝或指向bzImage/zImage的链接。
三、zImage
编译内核时通过“make zImage”创建,手动拷贝到/boot目录下面。它的存在是为了向后的兼容性。zImage解压缩内核到低端内存(第一个640K),适用于小内核(zImage的内核最大只能512K)的情况。
四、bzImage
编译时通过“make bzImage”创建,然后手动拷贝至/boot目录下。bzImage是压缩的内核映像(不是用bzip2压缩,bz表示“big zImage”)。 zImage和bzImage都是用gzip压缩的。在这两个文件的开头部分内嵌有 gzip解压缩代码,用于解压缩并引导内核。不能用gunzip 或 gzip –dc解包。bzImage解压缩内核到高端内存(1M以上)。
五、initrd-x.x.x.img
initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。
  比如,使用scsi硬盘引导,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但 scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正 scsi引导问题。initrd实现加载一些模块和安装文件系统等功能。initrd映象文件由mkinitrd二进制工具创建。
六、uImage文件
uImage使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。它是uboot专用的映像文件,zImage加上一个长度为64(0x40)字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage完全一样。有了uImage头部的描述,u-boot就知道对应Image的信息,如果没有头部则需要自己手动去添加那些参数。
Mkimage工具一般存在uboot的/tools目录,把其copy到系统/usr/local/bin目录下,在内核目录下运行make uImage,生存uImage文件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多