vmlinux

✍ dations ◷ 2025-10-02 10:58:42 #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)

相关

  • 血管舒张血管舒张是指在血管壁的平滑肌松弛下,令体内血管扩阔的情况。由于空间增大让血液流过,这会降低了血压。它的相反过程称为血管收缩。血管舒张可以自然产生或经由血管舒张剂引起
  • 机率概率,旧称几率,又称机率、机会率或或然率,是数学概率论的基本概念,是一个在0到1之间的实数,是对随机事件发生之可能性的度量。概率常用来量化对于某些不确定命题的想法,命题一般会
  • EINECS欧盟编号(EC Number)是一套在欧盟通用的化学品编号,由形如NNN-NNN-R的七位数字组成。欧盟编号列表由三部分演化而来:随着欧洲化学品管理局的运作,新的欧盟编号已经开始发放。关于
  • 部派最初僧伽 ├ 大众部  ├ 一说部  ├ 说出世部  ├ 灰山住部  ├ 多闻部  ├ 说假部  └ 制多部 └ 上座部  ├ 雪山部  ├ 说一切有部   ├ 说转部   └ 经
  • 1050年重要事件及趋势重要人物
  • 数学常数N ⊆ Z ⊆ Q ⊆ R ⊆
  • 毛舌菌毛舌菌(学名:Trichoglossum hirsutum)是地舌菌纲的一种真菌,俗称黑毛舌(英语:black earth tongues)。毛舌菌是一种生长在土壤中的真菌,其子实体为黑色,呈棒状,高度约3-8公分。子实体上
  • 蜜汁火方蜜汁火方是苏州苏帮菜的著名传统菜式,是一种用火腿制作的菜肴。以金华火腿中品质优良的中方为主料,用冰糖水、蜂蜜反复数次浸蒸数小时之久。辅料包括莲子、松仁及糖桂花。该菜
  • 手工艺人手工艺人(英语:Artisan,或称为匠人、匠师)是指拥有某项熟练技巧,从事传统手工艺的工作者。古时的手工艺是以师徒制度传承,学徒跟随匠师担任助手,在日常工作中学习手工的技术和知识;
  • 吉尔伯特·戈特弗里德吉尔伯特·戈特弗里德(英语:Gilbert Gottfried,1955年2月28日-)是一位美国的栋笃笑喜剧演员、演员以及配音演员。他配音的影视作品角色包括《阿拉丁》中的鹦鹉艾格、儿童卡通数学