vmlinuz Definition | vmlinuz的定义

vmlinuz is the name of the Linux kernel executable.
vmlinuz是Linux内核可执行文件的名字。

A kernel is a program that constitutes the central core of a computer operating system. It is the first thing that is loaded into memory (which physically consists of RAM chips) when a computer is booted up (i.e., started), and it remains in memory for the entire time that the computer is in operation. An executable, also called an executable file, is a file that can be run as a program.
内核是构成计算机操作系统核心的程序。当计算机启动的时候,内核是一个被加载到内存(物理上由RAM芯片构成)中的,然后在计算机被使用的过程中常驻内存。 "executable"是可执行文件的意思,它是一个可以用来运行的程序。

vmlinuz is a compressed Linux kernel, and it is bootable. Bootable means that it is capable of loading the operating system into memory so that the computer becomes usable and application programs can be run.
vmlinuz是一个压缩的Linux内核,而且它是可以用来启动计算机的。 "Bootable"的意思是它有能力将操作系统加载到内存中去,因此计算机就可以使用了,应用程序就可以跑起来了。

vmlinuz should not be confused with vmlinux, which is the kernel in a non-compressed and non-bootable form. vmlinux is generally just an intermediate step to producing vmlinuz.
不要把vmlinuzvmlinux搞混淆了。 vmlinux是未经过压缩也不能用来启动计算机的内核。vmlinux一般作为中间步骤用来创建vmlinuz

vmlinuz is located in the /boot directory, which is the directory that contains the files needed to begin booting the system. The file named vmlinuz might be the actual kernel executable itself, or it could be a link to the kernel executable, which might bear a name such as /boot/vmlinuz-2.4.18-19.8.0 (i.e., the name of the specific version of the kernel). This can be easily determined by using the ls command (whose purpose is to list the contents of a specified directory) with its -l option (which tells ls to provide detailed information about each object in the specified directory) as follows:
vmlinz的位置在/boot目录,该目录包括了启动系统需要的文件。 叫做vmlinuz的文件可能是实际的启动内核可执行文件,或者是指向启动内核可执行文件(例如:/boot/vmlinuz-2.4.18-19.8.0)的一个软链接。用带-l参数的ls命令可以很容易地探测出来,如下所示:

ls -l /boot

If vmlinuz is an ordinary file (including an executable), the information about it in the first column will begin with a hyphen. If it is a link, it will begin with the letter l.
如果vmlinuz是一个普通文件(包括可执行文件),在显示的信息中的第一列以连字符('-')开始。如果为链接文件,则以字符'l'开始。

The Linux kernel is compiled by issuing the following command:
使用下列命令编译Linux内核:

make bzImage

This results in the creation of a file named bzImage in a directory such as /usr/src/linux/arch/i386/linux/boot/.
编译的结果就是在一个特定的目录(例如:/usr/src/linux/arch/i386/linux/boot/)下面创建一个名字为bzImage的文件。

Compilation is the conversion the kernel's source code (i.e., the original form in which the kernel is written by a human) into object code (which is understandable directly by a computer's processor). It is performed by a specialized program called a compiler, usually one in the GCC (GNU Compiler Collection).
编译是将内核的源代码(即内核是由人类编写的原始形式)转换为目标代码(即可为计算机处理器直接理解)。它由一个被称之为编译器的专门程序执行,通常是GCC。

bzImage is then copied using the cp (i.e., copy) command to the /boot directory and simultaneously renamed vmlinuz with a command such as
然后使用cp命令将文件bzImage拷贝到目录/boot下面,与此同时重新命名为vmlinuz, 例如:

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

vmlinuz is not merely a compressed image. It also has gzip decompressor code built into it. gzip is one of the most popular compression utilities on Unix-like operating systems.
vmlinuz不仅仅是一个压缩镜像。 它还包含了解压缩工具gzip。gizp是在类Unix平台上最流行的压缩压缩/解压缩工具之一。

A compiled kernel named zImage file is created on some older systems and is retained on newer ones for backward compatibility. Both zImage and bzImage are compressed with gzip. The difference is that zImage decompresses into low memory (i.e., the first 640kB), and bzImage decompresses into high memory (more than 1MB). There is a common misconception that bzImage is compressed with the bzip2 utility; actually, the b just stands for big.
在老的系统上,编译后的内核文件名为zImage。这一名字新的系统上仍旧可见,出于向后兼容的原因。 无论是zImage还是bzImage都是使用gzip工具压缩。不同的是,zImage被解压缩到低内存空间(也就是第一个640KB空间), 而bzImage被解压缩到高内存空间(大于1MB)。有一个普遍的误解是bzImage是使用bzip2工具压缩的,而实际上,'b'代表的是"big"(大)。

The name vmlinuz is largely an accident of history. The kernel binary on the original UNIX as developed at Bell Labs was called unix. When a new kernel containing support for virtual memory was subsequently written at the University of California at Berkeley (UCB), the kernel binary was renamed vmunix.
vmlinuz这一名称在很大程度上是一个历史的意外。在贝尔实验室开发的原始的UNIX上的内核二进制被称为unix。支持虚拟内存的新内核后来在加州大学伯克利分校(UCB)被开发出来,内核二进制被更名为vmunix。

Virtual memory is the use of space on a hard disk drive (HDD) to simulate additional RAM (random access memory) capacity. It was supported by the Linux kernel almost from Linux's inception, in contrast to some other popular operating systems in use at the time, such as MS-DOS.
虚拟内存是利用硬盘驱动器(HDD)上的空间来模拟额外的RAM(随机存取存储器)的能力。Linux几乎从创立以来就支持虚拟内存,而其他一些流行的操作系统则不然,例如MS-DOS。

Thus, it was a natural progression for the Linux kernel to be called vmlinux. And because the Linux kernel executable was made into a compressed file and compressed files typically have a z or gz extension on Unix-like systems, the name of the compressed kernel executable became vmlinuz.
因此,对Linux内核来说,这是一个自然的进化,于是被称为vmlinux。由于Linux内核可执行文件被压缩成一个文件,而且在类Unix系统上典型的压缩文件的扩展名为z或者gz,压缩的Linux内核可执行文件的名字也因此就成为了vmlinuz。

扩展阅读:

小结:

vmlinux: A non-compressed and non-bootable Linux kernel file format, just an
intermediate step to producing vmlinuz.
vmlinuz: A compressed and bootable Linux kernel file. It is actually zImage
or bzImage file.
zImage: For old kernels, just fit 640k ram size.
bzImage: Big zImage, no 640k ram size limit, can much larger.

[中英对照]vmlinuz Definition | vmlinuz的定义的更多相关文章

  1. [转]从普通DLL中导出C++类 – dllexport和dllimport的使用方法(中英对照、附注解)

      这几天写几个小程序练手,在准备将一个类导出时,发现还真不知道如果不用MFC的扩展DLL,是怎么导出的.但我知道dllexport可以导出函数和变量,而且MFC扩展DLL就算是使用了MFC的功能,但 ...

  2. eclipse菜单解释及中英对照

    在使用Eclipse作为开发工具的时候,建议使用英文版本的(直接百度从官网下就行,这里不详细描述,如果有问题,咱们私聊).虽然中文版本的对于和我一样对英文是小白的看起来特别爽,但是公司大多是英文版本的 ...

  3. HALCON中的算子大全(中英对照)

    HALCON中的算子大全(中英对照) Chapter 1 :Classification1.1 Gaussian-Mixture-Models1.add_sample_class_gmm功能:把一个训 ...

  4. eclipse菜单解释及中英对照《二》

    上篇文章主要介绍了eclipse中每个大的标题下的中英文及其用法. 感谢http://blog.csdn.net/li_jinjian2005/article/details/2831641这个博主. ...

  5. webstorm快捷键 webstorm keymap内置快捷键英文翻译、中英对照说明

    20160114参考网络上的快捷键,整理自己常用的: 查找/代替shift+shift 快速搜索所有文件,简便ctrl+shift+N 通过文件名快速查找工程内的文件(必记)ctrl+shift+al ...

  6. [中英对照]Introduction to DPDK: Architecture and Principles | DPDK概论: 体系结构与实现原理

    [中英对照]Introduction to DPDK: Architecture and Principles | DPDK概论: 体系结构与实现原理   Introduction to DPDK: ...

  7. 知识:CSS 词汇表(中英对照)_CSS Vocabulary

    注释(Comment) 语句(Statement) 规则集(Rule-set) At 规则(At-rule) 媒体查询(Media query) 媒体查询列表(Media query list) 媒体 ...

  8. 【论文翻译】NIN层论文中英对照翻译--(Network In Network)

    [论文翻译]NIN层论文中英对照翻译--(Network In Network) [开始时间]2018.09.27 [完成时间]2018.10.03 [论文翻译]NIN层论文中英对照翻译--(Netw ...

  9. PCMM(人力资源能力成熟度模型)V2.0中英对照版发布

    PCMM中英版终于发布 时光荏苒,从当初的回眸到如今的回头,这才发现:坚守一份承诺是多么的不易! 一年多了,这份承载殷切期待的作品--<PCMM(人力资源能力成熟度模型)V2.0 (中英文对照版 ...

随机推荐

  1. html开发基础

    1 Doctype Doctype告诉浏览器使用什么样的html或xhtml规范来解析html文档 有和无的区别 BackCompat:标准兼容模式未开启(或叫怪异模式[Quirks mode].混杂 ...

  2. Java笔记(一)GC及类加载

    垃圾回收器(GC)    垃圾回收器:java中有一个线程,专门负责JVM中垃圾内存的释放    垃圾:没有引用的内存节点    垃圾回收的算法    注意:垃圾回收有自己的算法,我们是不能控制垃圾回 ...

  3. 深入了解java虚拟机(JVM) 第九章 class文件结构及意义

    Class文件是访问jvm的重要指令,学习了class文件能够更加深入的了解jvm的工作过程.本文只进行概况总结,要进行更加详细的学习class文件,可以参考:https://blog.csdn.ne ...

  4. 【OCP-12c】2019年CUUG OCP 071考试题库(74题)

    74.View the exhibit and examine the structure of ORDERS and CUSTOMERS tables. ORDERS Name     Null?  ...

  5. LEFT JOIN条件写在where里是不会多查出数据来的

    因为WHERE条件是对前面整个数据集进行查询,但如果条件放在ON里是会把在前表不在后表的数据查出来的

  6. 关于IPv4设置一些常见问题的解答

      问:为什么要填IP地址.网关.DNS? 如果是单部机拨号上网,是不需要填这些的.不填,或乱填,对上网都没有任何影响.但是在局域网上网(用路由器就属此环境),就一定要正确设置(手工填写或接受自动分配 ...

  7. java使用memcached2--集群部署

    一.集群安装 1.编译安装magent-0.5到/usr/local/下 # cd /usr/local # mkdir magent # cd magent/ # wget http://memag ...

  8. 读取Properties文件的六种方法

    1.使用java.util.Properties类的load()方法 示例: InputStream in = new BufferedInputStream(new FileInputStream( ...

  9. Python-Django编程问题汇总

    OS:Windows10 64 IDE:JetBrain Python Community Edition 2017.3.4 Python:python-3.6.4 Django:V2.0.3 问题一 ...

  10. JavaScript变量那些事

    引言 JavaScript的变量本质是松散类型的,也就是说其变量就是用于保存特定值的一个名字,变量的值和数据类型可以在脚本执行的生命周期中发生变化.这是一个很有趣很强大的特性,但是也是一个极容易出错误 ...