vmlinux

✍ dations ◷ 2025-11-12 17:19:16 #Linux内核

在linux系统中,vmlinux(vmlinuz)是一个包含linux kernel的静态链接的可执行文件,文件类型可能是linux接受的可执行文件格式之一(ELF、COFF或a.out),vmlinux若要用于调试时则必须要在引导前增加symbol table。

一般来说,核心的位置会在文件系统的 /boot 目录下,然而因为bootloader 必须使用 BIOS 的硬盘驱动程序,在一些i386的机器上必须要放在前 1024 个磁柱内。

为了克服这个限制,Linux 发行版鼓励用户创建一个扇区用来存放 bootloader 与核心相关的引导文件,例如 GRUB, LILO 与 SYSLINUX ... 。而这个扇区通常会挂载到系统的/boot 上,这是 FHS (Filesystem Hierarchy Standard) 标准内定义的。

一般来说,当创建一个可引导的核心时,此核心会先经过 zlib 算法压缩,而在核心内会包含一个相当小的解压缩程序 stub,当 stub 解压缩核心程序的时候会对 console 视窗印出"点"来表示解压缩进度。

解压缩所花费的时间在引导时间中所占程度来说其实是相当小的,而在早期的 bzImage 的发展中对于核心的大小会有所限制(特别是 i386 架构),在此情况下压缩则是必须的。

vmlinuz 是vmlinux 经过 gzip和objcopy 制作出来的压缩文件,当然不再是vmlinux的一个简单的压缩版,这么简单。vmlinuz是一种统称,有两种具体的表现形式zImage 和bzImage。bzimage和zImage的区别在于本身的大小,以及加载到内存时的地址不同,zImage在0~640KB,而bzImage则在1M以上的位置。

随着 linux Kernel 的成长,核心的内容日益增加超越了原本的限制大小。bzImage (big zImage) 格式则为了克服此缺点开始发展,利用将核心切割成不连续的存储器区块来克服大小限制。

bzImage 格式仍然是以 zlib 算法来做压缩,虽然有一些广泛的误解就是因为以 bz- 为开头,而让人误以为是使用 bzip2 压缩方式(bzip2 包所带的工具程序通常是以 bz- 为开头的,例如 bzless, bzcat ...)。

bzImage 文件是一个特殊的格式,包含了 bootsect.o + setup.o + misc.o + piggy.o 串接。piggy.o 包含了一个 gzip 格式的 vmlinux 文件(可以参看 arch/i386/boot/下的 compressed/Makefile piggy.o)

相关

  • 手术缝合线手术缝合线是一种医疗器材,用来将受伤或外科手术后的人体组织缝合在一起。一般由一根针附上一定长度的丝状物构成。在千年的历史中,曾开发出不同的形状,大小和材料的缝合线。数
  • 物理量物理量,是物理之中能测量的量,例如质量、体积,或者是测量和通常以数和物理单位(通常偏好国际单位制单位)的积表达的结果。在1971年第十四届国际度量衡大会(General Conference of
  • 莱茵河畔诸国莱茵邦联又称莱茵联盟(德语:Rheinbund;法语:Confédération du Rhin), 是1806年至1813年间于德意志地区的政治实体,法国所领导的藩属国,拿破仑并自命为护国主。最初成员有16个前神
  • 拉托贝大学乐卓博大学(La Trobe University)始建于1967年,是澳大利亚的一所综合型大学。校址坐落于维多利亚州。校总区位于墨尔本市郊的本多拉,另外两大主要校区在维多利亚州的本迪戈和新
  • 雌雄异体雌雄异体是指当一种生物有独立的单一性别个体,一个个体上只有一个性别。确切的定义在动物、植物和真菌中略有不同。在动物中,与雌雄异体相对的是雌雄同体,即一个个体有两个性别
  • 罗宾·汤尼罗宾·东尼(英语:Robin Tunney,1972年6月19日-),是一位美国女演员。罗宾·东尼出生于美国芝加哥伊利诺伊州,父亲是汽车推销员,母亲是调酒师,父母二人也是爱尔兰裔美国人,表哥是芝加哥
  • 啮虫目啮虫目(学名:Psocoptera),亦有简化作
  • 中缅印战区中缅印战区(CBI)是二战期间,美国陆军对其在中国、缅甸、印度驻军的称谓。最高统帅为蒋中正,参谋总长为史迪威。在这一战区知名的部队包括中国远征军、飞虎队、驼峰航线上的运输
  • 盐湖县盐湖县(Salt Lake County, Utah)是美国犹他州西北部的一个县。面积2,092平方公里。根据美国2000年人口普查,共有人口898,387人 (2005年估计为948,172)。本县一共设有15个市与一
  • TOP500TOP500项目是针对全球已知最强大的电脑系统做出排名与详细介绍。此项目始于1993年并且一年出版两次最新的超级计算机排名列表。每年的第一次排名公布总是在六月份的国际超级