最近在使用虚拟机装测试系统的时候,碰到几个名词容易搞混淆,特意笔记一下,以加强印象。

“x86-64”,有时会简称为“x64”,是64位微处理器架构及其相应指令集的一种,也是 Intel x86 架构的延伸产品。“x86-64”1999由 AMD 设计,AMD 首次公开 64 位集以扩充给 IA-32,称为 x86-64(后来改名为AMD64)。其后也为英特尔所采用,现时英特尔称之为“Intel 64”,在之前曾使用过 Clackamas Technology (CT)、IA-32e 及 EM64T。外界多使用 “x86-64” 或 “x64” 去称呼此 64 位架构,从而保持中立,不偏袒任何厂商。

由于 AMD64 和 Intel64 基本上一致,很多软硬件产品都使用一种不倾向任何一方的词汇来表明它们对两种架构的同时兼容。出于这个目的,AMD 对这种 CPU 架构的原始称呼——“x86-64”被不时地使用,还有变体“x86_64”。其他公司如微软和太阳微系统在营销资料中使用“x64”作为对“x86-64”的缩写。

许多操作系统及产品,尤其那些是在 Intel 进入这块市场之前就引入“x86-64”支持的,使用“AMD64”或“amd64”同时指代 AMD64 和 Intel64。

当我在选用 Ubuntu-Server 系统时,Ubuntu 网站上有如下几句说明:

PC (Intel x86) server install CD
    For almost all PCs. This includes most machines with Intel/AMD/etc type processors and almost all computers that run Microsoft Windows, as well as newer Apple Macintosh systems based on Intel processors. Choose this if you are at all unsure.

64-bit PC (AMD64) server install CD
    Choose this to take full advantage of computers based on the AMD64 or EM64T architecture (e.g., Athlon64, Opteron, EM64T Xeon, Core 2). If you have a non-64-bit processor made by AMD, or if you need full support for 32-bit code, use the Intel x86 images instead. 

按我的理解,上述 x86 应该是指普通的 32 位系统,需要一个 x86 的 CPU;而 AMD64 则应该就是指 64 位系统(根据上述说明,应该兼容 AMD 和 Intel 的 CPU),需要一个 x86-64 (或是简称为 x64)的 CPU,千万不要被 AMD64 这个名词给蒙蔽了从而以为需要一个 AMD 的 CPU。

如果想在 VirtualBox 里模拟 AMD64 的机器,需要你的 CPU 满足一定的要求,否则会提示如下错误:

./images/virtual-box-amd64-error.png

英文信息类似于:

VT-x/AMD-V hardware acceleration has been enabled, but is not operational. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.

Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.

出现这个错误的时候,最重要的是,在 BIOS 里检查一下,看你是否有打开允许 CPU 虚拟化的选项。如果有类似的选项,则打开该选项,就可以在 VirtualBox 里模拟安装 64 位的机器和操作系统了。