Linux内核之vmlinux与vmlinuz

因为是初次系统的学习Linux内核,过程中遇到了一些常常出现的名词。似曾相识,但对他们的含义又不是非常清楚。因此,将搜索到的内容进行一下汇总。

1.vmlinux

  vmlinux是一个包括linux kernel的静态链接的可运行文件。文件类型是linux接受的可运行文件格式之中的一个(ELF、COFF或a.out)。

 
2.vmlinuz
  vmlinuz是可引导的,压缩的linux内核,“vm”代表的“virtual memory”。

vmlinuz是vmlinux经过gzip和objcopy(*)制作出来的压缩文件。vmlinuz不仅是一个压缩文件,并且在文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解包vmlinuz。

vmlinuz是一个统称。有两种详细的表现形式:zImage和bzImage(big zImage)。

 zImage和bzImage的差别在于本身的大小和载入到内存的地址不同。zImage是0~640KB,bzImage是1M以上。假设内核比較小。那么能够採用zImage 或bzImage之中的一个,两种方式引导的系统运行时是同样的。大的内核採用bzImage。不能採用zImage。


3. 综述
总结起来就是例如以下的几句话:
vmlinux 是ELF文件。即编译出来的最原始的文件。

 
vmlinuz应该是由ELF文件vmlinux经过OBJCOPY后。并经过压缩后的文件 
zImage是vmlinuz经过gzip压缩后的文件,适用于小内核
bzImage是vmlinuz经过gzip压缩后的文件,适用于大内核


*objcopy:将一种目标文件的内容拷贝到还有一种目标文件里。

posted @   ldxsuanfa  阅读(7623)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示