为什么叫x86和x86_64和amd64
为什么大家叫x86为32位系统呢
相信大家在大学里面有很多人都玩过8086(微处理器),这是一个可编程的系统,他是由intel开发的,英特尔出了划时代的8086之后,后来使用该架构出了80286、80386等等,这一系列cpu就称作x86,正式一点称作ia-32(intel architecture 32-bit)。
所以x86指的是一种cpu的架构
x与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,是一个intel通用计算机系列的编号,也标识一套通用的计算机指节集合,例如:i386, 586,奔腾(pentium)。
x86架构的特点是cpu的寄存器是32位的,因此也叫32位cpu。
基于32位cpu开发的操作系统就叫32位操作系统,因为目前x86架构在32位cpu的知名度,32位操作系统也通常被称为x86系统。
这里再来讲讲故事:
(1) 上个世纪70年代末,因特尔生产了著名的16位8086处理器,之后又推出了80186与80286;
(2) 1985年,因特尔继摩托罗拉之后,第二个研制出32位的微处理器80386;
(3) 1989年,因特尔推出80486处理器,具有浮点运算功能;
(4) 当初与因特尔竞争微处理器的摩托罗拉公司是以86开头的,如68000,68010,68020。
(5) 1993年,因特尔推出奔腾处理器,不再以数字命名其产品;
后来在微处理器行业摩托罗拉没有竞争过因特尔,因特尔也不再以数字命名其产品(单纯的数字不是不能注册为商标,只是很难而已),所以在工业界和学术界,大家仍然习惯性的把因特尔的处理器称为x86系列,x作为通配符代替前面的数字。这个也就是历史原因,带86的也不一定为32位处理器,只是因为这些带86的32位处理器比较出名,叫的用的都比较多,最后也就习惯了。
x86_64与amd64
由于32位系统x86架构的种种限制,包括速度,性能等方面,intel开始向64位架构发展,那么有2选择:
向下兼容x86
完全重新设计指令集,不兼容x86
结果amd领先,比intel率先制造出了商用的兼容x86的cpu,amd称之为amd64,抢了64位pc的第一桶金,得到了用户的认同。
而intel选择了设计一种不兼容x86的全新64为指令集,称之为ia-64,但是比amd晚了一步,而且ia-64也挺惨淡的,因为是全新设计的cpu,没有编译器,也不支持windows(微软把intel给忽悠了,承诺了会出安腾版windows server版,但是迟迟拿不出东西)。。。后来不得不在时机落后的情况下也开始支持amd64的指令集,但是换了个名字,叫x86_64,表示是x86指令集的64扩展。
也就是说实际上,x86_64,x64,amd64基本上是同一个东西,我们现在用的intel/amd的桌面级cpu基本上都是x86_64
i386
首先可以简化一个概念,i386=intel 80386。 其实i386通常被用来作为对intel(英特尔)32位微处理器的统称。
但是目前更多的时候,我们公认i386为32位系统,其实就是x86了。