我的问题是,为什么 32 位的简写是 x86,而 64 位的简写是 x64?
我猜这与 386 和 486 时代有关,当时所有的 32 位处理器都以 86 结尾,但肯定有一些处理器不以 86 结尾,而且仍然是 32 位的?
有人知道这段历史吗?或者可以给我提供一些好的信息来源吗?
答案1
可能是因为 x86 系列在相当长的一段时间内成为 32 位处理器的代名词,而 x64 是应用程序和操作系统转换时专门用于 64 位的名称,现在有些软件应用程序需要 64 位名称才能运行(比如一些 VM 软件)。
换句话说,这更多的是出于营销原因,而不是技术原因。
答案2
嗯,曾经有一种芯片叫 8086,还有一种更便宜的版本叫 8088,用于一台叫 IBM PC 的个人电脑。该芯片的改进版本被制造出来,称为 80186,尽管那并不是一个很受欢迎的版本。然而,后来又制造了一种改进版本,称为 80286。现在,那是一种非常流行的芯片,特别是因为它被用在一台叫 IBM PC AT 的电脑上。
后来,英特尔(该公司制造并销售了 8086、8088、80186 和 80286 芯片,这些芯片都采用 16 位架构)意识到需要制造一款 32 位芯片来与其他公司的类似产品竞争。为了利用其现有地位,英特尔制造的新芯片能够运行为前面提到的芯片制作的软件。英特尔自然将这款新芯片称为 80386。
那时,许多计算机都使用各种版本的 Intel 芯片,而且还有与 Intel 芯片兼容的非 Intel 芯片。因此人们开始将它们称为 80x86。
过了一段时间,英特尔推出了一款新芯片,但决定去掉 80,所以它变成了 486,而不是 80486。同样,人们也从“80x86”前面去掉了“80”,并将其称为 x86。
现在,我很确定有些人会说英特尔在某个时间将他们的芯片标记为 x86,他们确实这么做了,但我不在乎。
事实是,不断增加的中间数字产生了 80x86,而 x86 由此而来——即使 80186 和 80286 不是 32 位。
那么,当英特尔最终转向 64 位时,它会如何称呼它的新架构呢?对!IA64!:-) 可以说,它还追溯性地将 x86 重命名为 IA32。只有 IA64 与 x86(我的意思是 IA32)不兼容,所以每个人都忽略了它。
随后 AMD 出现了,它认为市场需要一款尽可能兼容 x86 系列的 64 位 CPU。为了吸引市场关注,他们将其命名为“x86-64”系列,并取得了巨大的成功。英特尔最终不情愿地跟进,推出了基于 x86 的 64 位 CPU。
后来,因为人们很懒,x86-64 就被简单地称为 x64。
因此,回答您的问题,因为 x64 比 x86-64 短。
答案3
从维基百科:术语 x86 是指基于 Intel 8086 CPU 的一系列指令集架构。
答案4
嗯,x64
实际上从未来自指令集或芯片制造商。它最初来自 Windows XP。Windows 的第一个 64 位版本被命名为Windows XP x64
。我想这个术语x64
从那时起就一直沿用下来了。
该x86
名称源自 32 位指令集。因此,所有x86
处理器(不带前导80
)都运行相同的 32 位指令集(因此都是兼容的)。因此x86
已成为该指令集(因此为 32 位)的事实名称。
AMD 最初对该指令集的 64 位扩展x86
称为。Intel 后来获得了该指令集的许可,但即便如此,64 位指令集AMD64
的名称通常仍为。x86
AMD64
但主要是品牌区别。以下是几个不同的主要操作系统发行版对每个 64 位版本的称呼:
- Ubuntu- amd64
- Centos- x86_64
- OpenSUSE- x86_64
- FreeBSD- amd64
- OpenBSD- amd64
- 网络BSD- amd64
- 索拉里斯- x64
- Windows 服务器- x64
所以基本上,似乎 Linux 更喜欢x86_64
,BSD 更喜欢amd64
,而其他的x64
……
但需要注意的是,从营销目的来看,它们都意味着同一件事。从微妙的角度看,它们确实意味着不同的事情(好吧,意味着与(前者是特定于供应商的架构,后者是两个供应商架构的子集)amd64
不同的东西,但=== ),但对于除了用汇编或机器代码编写的程序员之外的任何人来说,这真的没有什么不同...x86_64
x86_64
x64