百科问答小站 logo
百科问答小站 font logo



关于vmlinux,vmlinuz,bzImage,zImage的区别和联系? 第1页

  

user avatar   18173189507 网友的相关建议: 
      

1、vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。

2、vmlinuz的建立有两种方式。一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot/vmlinuz”产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。二是内核编译时通过命令make bzImage创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz”产生。bzImage是压缩的内核映像,需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”。 bzImage中的b是“big”意思。

3、zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解包vmlinuz。

内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage 或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。

vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。

vmlinux 是ELF文件,即编译出来的最原始的文件。

vmlinuz应该是由ELF文件vmlinux经过OBJCOPY后,并经过压缩后的文件

zImage是vmlinuz经过gzip压缩后的文件,适用于小内核

bzImage是vmlinuz经过gzip压缩后的文件,适用于大内核

通常情况下是不能用vmlinuz解压缩得到vmlinux的




  

相关话题

  固态硬盘适不适合Linux呀? 
  为啥物理内存越大,windows占用的内存就越大? 
  malloc一次性最大能申请多大内存空间? 
  开启分页的x86保护模式和长模式下,操作系统是如何管理分页的? 
  为什么 Java 和 JS 等语言需要 VM,不能直接操作内存堆栈空间? 
  Linux主机中增加一块内存条后,物理地址如何扩展? 
  java中,堆的运行速度为什么比栈慢? 
  关于vmlinux,vmlinuz,bzImage,zImage的区别和联系? 
  Linux 内核的 C 代码风格是怎样的? 
  是否有办法在malloc的hook函数中调用原生malloc? 

前一个讨论
如果未来发现宇宙从始至终只有一个粒子,且所有粒子都是它的不同时间态。会对人类看待宇宙产生怎样影响?
下一个讨论
去酒店开一两百块一天的房间,带几十台矿机进去挖矿,一天用他个三五百的电费,这样违法吗?





© 2025-04-01 - tinynew.org. All Rights Reserved.
© 2025-04-01 - tinynew.org. 保留所有权利