64位版本为什么叫amd64,而不是intel64?
首先了解下常见的几个架构:
X86是一个指令集,是刚有个人电脑时候的什么8086,286,386的那个兼容的指令集。
“x86-64”,有时会简称为“x64”,是64位微处理器架构及其相应指令集的一种,也是Intel x86架构的延伸产品。“x86-64”1999由AMD设计,AMD 首次公开 64 位集以扩充给 IA-32,称为 x86-64(后来改名为 AMD64)。 其后也为Intel所采用,现时英特尔称之为“Intel 64”.
AMD64
AMD64架构在IA-32上新增了64位寄存器,并兼容早期的16位和32位软件,可使现有以x86为对象的编译器容易转为AMD64版本。
由于AMD64和Intel64基本上一致,很多软硬件产品都使用一种不倾向任何一方的词汇来表明它们对两种架构的同时兼容。出于这个目的,AMD对这种CPU架构的原始称呼——“x86-64”被不时地使用,还有变体“x86_64”。其他公司如微软和Sun在营销资料中使用“x64”作为对“x86-64”的缩写。
许多操作系统及产品,尤其那些是在Intel进入这块市场之前就引入“x86-64”支持的,使用“AMD64”或“amd64”同时指代AMD64和Intel64。
IA-64
Intel在之前已在Itanium处理器上使用了自家的64位IA-64技术,虽然说Intel 64也是64位,但两者并不兼容,即IA-64的软件不能直接在Intel 64上运行。Intel 64所用的x86-64是IA-32指令集的延伸,而IA-64则是另一款独立的架构,没有任何IA-32的影子。虽然IA-64可通过模拟来运行IA-32的指令,但指令在运行前需经转换,才能在IA-64上运行,导致其速度变慢。由于x86-64是从IA-32派生而来,因此运行IA-32与64位程序的表现也显得绰绰有余。
目前市场上Intel兼容处理器可以实现64位计算的主要有3种:
1) Intel IA64,基于安腾2处理器,不兼容32位应用,软件相对本模式的版本叫 xxx for Itanium 。
2) Intel EM64T,基于Xeon DP “Nocona”和MP处理器,兼容32位应用,软件相对本模式的版本叫 xxx for x86-64或者amd64。
3) AMD AMD64,基于Opteron处理器,兼容32位应用,软件相对本模式的版本叫 xxx for x86-64或者amd64。
版本的含义:
Win32 -> 指的就是Windows系统;
64 bit- > 指的是Windows是64位的; AMD64 -> 指的就是 CPU是x64的
附——编译器的选择:
- 32/64 位系统编译在32位系统上运行 => x86
- 32 系统上编译64位系统上运行 => x86_amd64
- 64 系统上编译在64位系统上运行 => amd64