为什么叫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了。