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文件。

  
Linux内核在PC上以文件的形式存在(保存成磁盘文件形式),就是所谓的“映像文件”。Linux内核映像文件最终是要烧录到目标板的flash中。   Linux 内核映像文件有两种:一种是非压缩版本,叫Image;另一种是它的压缩版本,叫zImage。zImage是Image经过压缩形成的,所以它的大小比Image小。为了能使用zImage这个压缩版本,必须在它的开头加上解压缩的代码,将zImage 解压缩之后才能执行,因此它的执行速度比Image要慢。但考虑到嵌入式系统的存储空容量一般都比较小,内核要常驻内存,采用zImage可以占用较少的存储空间,因此牺牲一点性能上的代价也是值得的,所以一般嵌入式系统均采用压缩的内核映像文件,即zImage。


zimage、uimage、vmlinuz区别

vmlinux是内核文件, zImage是一般情况下默认的压缩内核映像文件,压缩vmlinux,加上一段解压启动代码得到,只能从0X0地址运行。 uImage是u-boot使用bootm命令引导的Linux压缩内核映像文件格式, 使用工具mkimage对普通的压缩内核映像文件(zImage)加工而得。可以由bootm命令从任意地址解压启动内核。 由于bootloader一般要占用0X0地址,所以,uImage相比zImage的好处就是可以和bootloader共存。 制作uImage的mkimage软件,如果uClinux-dist有的话,一般放在uClinux-dist的tools目录中


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值