什么是i386? i386和x86有什么区别和联系?

内容纲要

什么是i386? i386和x86到底是什么关系?有什么区别?
i386、x86这是两个除了严格意义以外,用来进行一系列泛指的概念,很多人都比较疑惑,无法完全解释清楚这两个属于的意义,作者根据网上资料自己进行了整理,同事加入了自己的总结,可能依旧不尽然,后续不定期修订吧。

什么是i386?

i386的狭义和广义

狭义上:

i386 = Intel 80386,其中 i 代表 intelIntel 80386 是第一个32位架构的处理器,它的基本程序设计模型本质上至今没有改变。

广义上:

i386 通常被用来作为对Intel(英特尔)32位微处理器的统称,”i386-family processors”,是一系列的处理器。所有与80386兼容的处理器都被叫作”x86″或者”i386″,intel自己更喜欢叫IA32,其实是一回事。

如今,不管是Intel的CPU还是AMD的cpu都向下兼容,都可以运行定制给i386的二进制码。

i386的其他含义

Windows NT类系统的安装盘上,通常 i386 是其根上的一个文件夹,里面包含了硬件所需的基本安装信息。

Windows2000和Windows XP的安装文件夹都是i386,正常情况下在安装光盘下可以找到这个文件夹。为了加快安装速度,在安装前,安装程序会将i386拷贝到硬盘上。这个文件夹也可以在将来系统发生变化(增减新的硬件)时安装驱动程序,或者增加系统附带的服务组件、软件时使用。

什么是x86

i386、i486、i586、i686都是cpu的级别。

  • i386 : Intel 386 ( 老的386机器,通俗上也泛指IA32体系的CPU)
  • i486 : Intel 486
  • i586 : Intel 586 ( Pentium ,K6 级别CPU )
  • i686 : Intel 686 ( Pentium II, Pentium III , Pentim 4, K7 级别CPU )

上面的86 也叫做x86,因此x86是一个intel通用计算机系列的编号, 但是通俗上x86也范指 IA32构架CPU,同时上述也提到了i386通俗也范指IA32架构CPU

个人理解,范围上来说,IA32架构CPU > 严格意义的x86 CPU > 严格意义的i386级别CPU

i386、X86的区别和联系

x86包含i386,i386仅仅是x86的一部分。
x86这里的 x 本来就是一个未知数性质的,他可以是 3、4、5、6、7 。

关于IA32、IA64

  • IA32: 32 bits Intel Architecture (32位带宽Intel 构架 )
  • IA64: 64 bits Intel Architecture (64位带宽Intel 构架 )

这里所说的 架构 是架构还是指令集架构?

总结

综上所属,作者自己的总结如下

x86 多个维度的含义

  1. 严格意义上,是一个intel 通用计算机系列的编号 , 包括i386/i486/i586…等等86结尾的cpu系列
  2. 泛指,IA32微架构(32位)的cpu系列集合
  3. 一套通用的 处理器微架构 ,即x86微架构
  4. 一套通用的 计算机指令集合 , 即x86指令集架构

所以,我们通常说x86架构,到底是指令集架构还是微架构,其实是混淆的,没人特别去深究。通常说x86的cpu,到底是上述1、2的概念,还是全部x86指令集的CPU,这也是混淆的。

通俗情况下通俗理解

  • 对于CPU系列而言,i386 = x86 = IA32,人们说这3个词通常是一个意思。
  • 对于处理器微架构而言,x86 = IA32
  • x86也是一套指令集架构
  • x86-64也是指令集架构,它是AMD公司对x86指令集的64位扩展,也叫x64,AMD64,英特尔称之为Intel 64

推荐指令集架构文章

参考地址