我的博客列表

2012年6月3日星期日

vmlinuz介绍

vmlinuz介绍

说明:本文内容来自于:http://www.linfo.org/vmlinuz.html

vmlinuz是可执行的Linux内核 的名称。

内核是构成计算机操作系统的最核心的程序。它是系统启动过程中第一个被载入内存的,它在一台电脑被引导(或者说启动)并且在运行的整个时间里都存在于内存中。可执行(文件),是指可以象程序一样运行的文件。

vmlinuz是一个被压缩的Linux内核,并且它是可引导 的。可引导意味着它有能力把操作系统装载进内存而使电脑能够使用并且软件程序可以运行。

vmlinuz不应该和vmlinux混淆,后者是指没有压缩并且不可引导的的内核,vmlinux通常存在于生成vmlinuz的中间步骤中。

vmlinuz位于 /boot 目录,该目录包含了一些启动系统时需要的文件。名为 vmlinuz 的文件可能是可引导自身的真实内核,也可能是一个到可引导内核的链接,该链接可能有一个类似 /boot/vmlinuz-2.4.18-19.8.0 (内核的特定的版本号)的名称。可以使用 带 -l (告诉ls提供指定目录中的每一个对象的详细信息) 选项的 ls 命令(该命令的作用是列出指定目录的内容)方便的确认,例如:

ls -l /boot

如果vmlinuz是一个普通的(可执行)文件,关于它的信息的第一列会以一个连字号(-)开始,如果是一个链接,将以字母 l 开始。

通过执行以下命令可以编译 Linux内核:

make bzImage

该命令的结果会在如 /usr/src/linux/arch/i386/linux/boot/ 的目录中创建一个名为bzImage的文件。

编译是把内核的源代码(由人编写的内核的最初的形式)转换为目标代码(可被计算机处理器直接理解)的过程。转换过程是由一个称为 编译器 的专门的程序执行,通常是GCC(GNU编译器集合)中的某一个编译器。

然后使用cp(复制)命令把bzImage文件复制到/boot目录中并重命名新文件为vmlinuz,命令如下:

cp /usr/src/linux/arch/i386/linux/boot/bzImage /boot/vmlinuz

vmlinuz不仅仅是一个压缩的镜像,在其中还构建了gzip 解压缩代码。gzip 是在类Unix操作系统中最常用的压缩程序之一。

名为zImage的压缩的内核文件是在一些老系统上构建的,而且为了保持向后的兼容性依然保留在一些新系统上。zImage和bzImage文件都是由gzip压缩的,不同之处在于zImage可以在较少的内存空间 中解压缩(例如,内存的第一个640KB),而bzImage解压时需要要更多的内存空间(超过1MB)。有一个通常的误解就是bzImage是用bzip2 程序压缩的,事实上,在这里b 代表big(大的)。

vmlinuz 的名称来历有一个历史。由Bell实验室开发的最初的UNIX系统的二进制码内核被称为unix,后来加州大学伯克利分校(UCB)写了包含虚拟内存支持的新内核,该内核二进制码被重命名为vmunix

虚拟内存是使用硬盘空间模拟额外的内存的能力。几乎从一开始Linux内核就支持虚拟内存,与此相对的,是当时使用的一些其他的通用操作系统,如MS-DOS却还不支持。

因此,Linux内核以此类推自然就被称为vmlinux。又因为可执行的Linux内核被转换成一个压缩文件,而典型的压缩文件在类Unix系统中有一个 z gz 的扩展名,压缩的可执行内核就变成了vmlinuz

没有评论:

发表评论