x86 是一个统称,用来表示 XX86 指令集兼容的 CPU 架构, Intel 提出,但不专属于 Intel。代码里,i386 通常用来表示 32 位 x86 架构,x86_64 表示 64 位 x86 架构,和 CPU 厂商无关。

x86 兼容架构:
i386, x86, x86_64, IA-32,AMD64,Xeon,Pentium

IA-64 兼容架构:
IA-64, 安腾

进化路径:
Intel 时代:8008 -> 80386 -> 80486 -> 奔腾系列 -> 酷睿系列 -> Xeon 系列
AMD 时代:32 位跟随 Intel,率先推出桌面级的 x86_64
Intel 的 64 位路径:本来希望创新,全新安腾架构(为什么失败);后跟随 AMD64 推出 x86_64 架构。

从命名上也可以看出 Intel 的被动:
本来,它准备 IA-32, IA-64 往前编号,结果做 x86_64 的时才发现 IA-64 命名被安腾架构占领,只要弄一个毫无特色的 x86_64 命名。不过,现在 Intel 把 IA-64 改名为 Itanium 64 架构,IA64 的名字貌似又空出来,给 x86_64 使用了。具体使用中 IA64、Intel64、x86_64 交叉使用。如下例:

安腾停产:https://www.eet-china.com/mp/a67282.html


原文:

https://www.zhihu.com/question/19573226/answer/14267936(以下内容转自知乎回答)

x86架构首度出现在1978年推出的Intel 8086中央处理器,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。Intel之后又推出了包括80186、80286、80386以及80486。 在设计上,这些后续的处理器使用的指令集都是在8086的基础上添加新支持的指令进行改进的,因此可以说都是向下兼容的(backward compatibie),即能再8086上运行的程序在80486上也一定能运行。由于都是以86结尾(不过8088也是x86),所以把这一系列的指令集称之为x86指令集(架构)。准确的来讲,x86这一术语并不是指的某一个(具体CPU使用的)具体的指令集,而是在8086(的指令集)基础上发展而来 的所有指令集的泛称。

实际上,在80486以后Intel推出的绝大多数CPU都是“x86”的,包括Pentium 、Pentium Pro 、Pentium MMX ,Pentium 2 ,还有后面的Pentium 3、Pentium 4 、Pentium D 、Core全系列,(x86系列的) Xeon。另外,使用x86架构的处理器制造商远非Intel一家,最著名的就是AMD,其他的还有VIA,Cyrix。具体的产品及特性可以见附录的表 格。可以说,x86架构就是桌面级CPU的标准,你能买到的品牌或者组装的PC,几乎没有不是x86 CPU的。不过虽说都是x86的,但只能说明使用的指令集是兼容8086的,除8086指令集之外的其他指令支持情况就不一样;其内部实现的微体系结构microarchitecture显然也是各自不同,就好比Linux和Unix虽然都是POSIX兼容的OS,都有fork这个系统调用,但是这个调用的实现确实各不相同。

从1985年80386开始,Intel通过对x86架构进行32位的扩展,实现了32位CPU,而之前的都是16位。Intel把支持32位的x86指令集架构命名为IA-32(Intel Architecture 32bit)。实际上由于32位x86处理器的统治性,术语“x86”几乎等于IA-32,即32位的x86或x86-32,例如Windows和Linux发行版的32位命名都是x86(而不是x86-32或IA-32)。后来的“x86-64”名称也继续强化了这种约定方式。这里还是要强调 x86是一系列架构的泛称,支持16位、32位和64位的指令都有。

该来的还是会来,在1999年,AMD宣布了x86-64架构。其实现方式与之前的80386思路一致,继续对IA-32扩展,增加64位通用寄存器、证书预算单元和逻辑操作,支持64位虚地址;向前兼容IA-32。2003年第一款x86-64处理器发布,AMD Operon。同时AMD也将x86-64正式命名为AMD64。这下Intel彻底2B了(原因后面说),以前都是AMD小弟追随者Intel大哥的脚步,如今AMD先实现了64位民用桌面级CPU。其实Intel也有其64位计划,在2004年的IDF上,Intel承认其64位计划,命名为IA-32e,即IA-32 extension,之后又改成EM64T,Extended Memory 64 Technology,最终命名为Intel64。 实际上EM64T与AMD64几乎相同。早期EM64T不兼容AMD64的少量指令,但是由于AMD在64位技术中的领先地位,Intel2005年不得不宣布将完全兼容AMD64。所以现在装的64位版本操作系统从没有说是面向Intel还是AMD的。不过在称谓上,大多数厂商还是使用x86-64(x86_64,或者就是x64)来称呼此架构,从而保持中立。

“i386“和”i486″作为Intel 80386和80486处理器的别名是比较显然的。由于不能使用数字作为注册商标,而且也需要一个正式的名称命名,从586开始就变为Pentium了, 这时候i586就作为了最原始Pentium的微处理架构“P5”的别名,同样的i686对P6(Pentium Pro使用),i786对应P68,或NetBurst架构。

在我看来,在软件包的命名上使用“i某86”时应该是说适用于使用这一代微架构的CPU。但微架构是硬件上事,因此还是在说明适用对应CPU使用的指令集。比如,i386对应IA-32,并且由于兼容性肯定适用于i486~i686;i686不仅适用Pentium Pro,也适用K7架构的Athlon。

前文提到Intel在AMD推出民用64位技术后很被动。其实Intel也有64位x86 CPU的计划,但是由于对于这个市场的不重视,认为需求不足,一直不见面世。而在对64位需求更加强劲的企业服务器和高性能计算市场上,1994年HP就和Intel合作开始开发一款与x86架构完全没关系的全新的IA-64架构。显然IA-64不兼容x86-64更别说IA32,IA64天生就是64位,基于显式并行指令运算(EPIC)。 2001年第一款IA-64架构的处理器Itanium安腾发布。可见,IA-64跟IA-32在实现上没有什么关系,跟x86-64也是完全并行的两种架构,x86架构的Intel的Xeon就是Intel Itanium的竞争对手之一。后来Intel把IA-64也干脆改称为Intel Itanium架构。

参考:https://zh.wikipedia.org/wiki/Intel_80386

i386, x86, x86_64, IA-32, IA-64, 安腾, AMD64 的关系是什么?相关推荐

  1. 32位怎么兼容64位java_Java 32位与64位兼容

    是的,假设您使用独立于平台的库,Java字节码(和源代码)是独立于平台的. 32与64位应该没有关系. 我不小心在一个64位的虚拟机上运行我们的(大的)应用程序,而不是一个32位的虚拟机,直到一些外部 ...

  2. 64位ie加载java失败_java-无法在AMD 64位平台上加载IA 32位.dll

    java-无法在AMD 64位平台上加载IA 32位.dll 我正在尝试通过此页面上的JNI包装器使用Java中的SVMLight: static { System.loadLibrary(" ...

  3. Linux 适用硬件平台/系统架构(i386 / i586 / i686 / x86 / x86_64)名词理解和区别

    我们在网上下载各种版本的 Linux OS 时,会经常看到不同版本的系统镜像名中带有 i386.i486 .i586.i686.x86x86_64/AMD64,那么这些 i386.i486 .i586 ...

  4. 发行版中的i386/i686/x86-64的区别: i386用来处理32位系统,i686是i386的下集;x86-64用来处理64位系统。 linux发行版中的i386/i686/x86-64各自含

    发行版中的i386/i686/x86-64的区别: i386用来处理32位系统,i686是i386的下集:x86-64用来处理64位系统. linux发行版中的i386/i686/x86-64各自含义 ...

  5. 如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本

    您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) . For computer or P ...

  6. 64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本

    2019独角兽企业重金招聘Python工程师标准>>> 作者:赵磊 博客:http://elf8848.iteye.com 当你想下载Linux.JDK.Tomcat.eclipse ...

  7. linux内核学习之三:linux中的32位与64位

    linux内核学习之三:linux中的"32位"与"64位" 在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位" ...

  8. i386 、x86_64 、ppc是指

    引文地址:http://blog.163.com/zhangzhiyin88@126/blog/static/75966301200822610172134/ i386 .x86_64 .ppc是指C ...

  9. 辨析:×86架构:×86(i386…),×64(×86-64/amd64);arm架构:arm,arm64

    ×86架构: ×86(又称:i386-/ IA32)表示32位cpu位数 ×64(又称:×86-64 / amd64 / inter64)表示64位cpu位数 arm架构: arm / A32 / a ...

最新文章

  1. 常见Android Native崩溃及错误原因
  2. Linux_Bash脚本基础
  3. Live2D WebGL实现
  4. 2017年度最值得读的AI论文评选 | 大张旗鼓送福利
  5. Mac下的Parallel Windows忘记密码怎么办?
  6. python中mysql更新字段中传参问题
  7. Application.mk文件官方使用说明
  8. mysql 目录的了解以及Linux
  9. Python 使用pyinstaller将py文件发布成exe程序
  10. i3 2310M i7 9700T i7 9700K MacBookPro 16寸 CPU 跑分对比
  11. 企业手机装配线平衡改善研究
  12. 在IE缓存文件夹找到我想要的视频
  13. Flink 实践教程-进阶(11):SQL 关联:Regular Join
  14. python阿拉伯数字转换为英文,python – 将东部阿拉伯数字转换为西方阿拉伯数字...
  15. Spark集群环境搭建+Maven、SBT编译部署+IDEA开发(二)
  16. 外网远程访问管家婆ERP进销存
  17. 2021-05-24 Nyquist图背后的信息
  18. TreeView添加treeView1_NodeMouseClick----多么痛的领悟。。。
  19. Mac 开发 打开系统偏好设置
  20. android 安装第三方应用,Android手机常识 第三方应用如何安装

热门文章

  1. 数组方法 + ES6中数组方法 + 数组的空位
  2. sync.map原理解析
  3. 谈谈个人价值及平台红利
  4. 数字藏品赋能实体产业释放了哪些利好?
  5. 周志华教授力作,豆瓣10分好评,集成学习如何破解AI实践难题 | 赠书
  6. mac 上开发常用的软件强烈推荐
  7. 2021年12月10日
  8. Proteus教程——过零检测器
  9. 交换机接口模式hybrid运用
  10. android exif软件,EXIF查看器