我的问题是,为什么64位的简写是64位的32位x86的简写?
我猜测这与386和486s的时代有关,32位处理器全部以86结尾,但肯定有86处理器没有结束,还有32位?
任何人都知道这个历史或可以指导我一个很好的信息来源。
谢谢
很可能因为x86系列已经变成了32位处理器的代名词,而64位应用程序和操作系统已经过渡了,而64位是64位的,而现在有一些软件应用程序需要64位指定才能运行(如一些虚拟机软件)。
换句话说,比起技术来说,这更多的是市场营销。
那么曾经有一种叫做8086的芯片,有一种叫做8088的更便宜的版本,用在一台名叫IBM PC的个人电脑上。 该芯片的改进版本被称为80186,虽然这不是一个非常stream行的版本。 然而,改进后的版本被做了,并且被称为80286.现在,这是一个非常受欢迎的芯片,特别是因为它被用在一台叫做IBM PC AT的计算机上。
后来,英特尔创造并销售了8086,8088,80186和80286芯片,所有这些芯片都有16位架构,因此需要创build一个32位芯片来与其他厂商的类似产品进行竞争。 为了利用其现任职位,使得新芯片能够运行用于上述芯片的软件。 当然,英特尔把这个新芯片称为80386。
那时有很多电脑使用各种版本的英特尔芯片,也有非英特尔芯片与英特尔芯片兼容。 所以人们开始把它们称为80×86。
一段时间后,英特尔推出了一个新的芯片,但它决定放弃80,所以它成为了486,而不是80486.同样,人们从“80×86”的前面扔掉了“80”,并调用这个东西只是x86 。
现在,我非常肯定有人会说,英特尔在当时和他们的品牌x86品牌,但他们做的,但我不在乎。
事实是,不断增加的中间数字产生了80×86,而x86来自于这个 – 即使80186和80286不是32位。
所以,一旦英特尔终于64位,它是什么叫它的新架构? 对! IA64! :-)也可追溯地将x86重命名为IA32,可以这么说。 只有IA64与x86不兼容,我的意思是,IA32,所以每个人都忽略它。
然后是AMD,这个决定了市场需要一个兼容的64位CPU,尽可能与x86系列兼容。 作为一种营销呼吁,他们称之为“x86-64”家族,而且他们取得了巨大的成功。 最终,英特尔以自己的基于x86的64位CPU勉强跟进。
后来,因为人们很懒,x86-64简直叫做x64。
所以,回答你的问题,因为x64比x86-64短。
术语x86是指基于Intel 8086 CPU的一组指令集架构。
x86和x64是cpu 体系结构的名称。 CPU的架构不仅仅是每个寄存器的位数。
x64取的是名字,因为跳到64位是x86架构中最大的变化,但是这种跳跃远非唯一的变化。
x86得到了8086处理器和家族的名字,其中包括80286,80368,486等。当x86成为架构的名称时,每个寄存器32位并不被认为是一个足够重要的特性来certificate构build它的名字。
从技术上讲,x86只是指处理器系列和它们都使用的指令集。 它实际上没有说明关于数据大小的任何具体内容。
x86最初是作为16位处理器(8086和8088处理器)的16位指令集,然后扩展到32位处理器(80386和80486)的32位指令集,现在已扩展到一个用于64位处理器的64位指令集。 它曾经被写为80×86,以反映在芯片型号数字中间的变化值,但沿线的某个位置,前面的80被丢弃,只剩下x86。
指责奔腾,它的后代改变了处理器命名和销售的方式,尽pipe所有使用英特尔x86指令集的较新处理器仍被称为x86,i386或i686兼容(这意味着它们都使用原来的8086指令系统)。
x64真的是这里的怪人。 x86集的64位扩展的名字叫做x86-64。 后来被命名为AMD64(因为AMD本来是最初提出64位扩展的)。 英特尔授权64位指令集,并命名他们的版本EM64T。 这两个指令集和使用它们的处理器都被认为是x86。
那么, x64
从来没有真正来自指令集或芯片制造商。 它最初来自Windows XP。 Windows的第一个64位版本被命名为Windows XP x64
。 我猜想从那里卡住的术语x64
。
x86
名字来自32位指令集。 所以所有x86
处理器(没有前导80
)运行相同的32位指令集(因此都是兼容的)。 所以x86
已经成为这个集合的实际名称(因此也是32位)。
AMD在x86
上最初的64位扩展被称为AMD64
。 英特尔后来授权它,但即使如此,64位x86
指令集的名称通常是AMD64
。
但主要是品牌的区别。 以下是几个不同的主要操作系统分布调用每个64位的风格:
所以基本上,Linux似乎更喜欢x86_64
,BSD更喜欢amd64
和其他x64
…
但是需要注意的是,它们对于市场营销而言意味着同样的东西。 在微妙之处,它们确实意味着不同的东西(好吧, amd64
意味着不同于x86_64
(前者是供应商特定的体系结构,后者是两个供应商体系结构的子集),但是x86_64
=== x64
),但除了程序员写作在组装或机器代码,它确实不会有所不同…