这个问题是关于32位和64位x86的术语的。

如果我有2个目录带有相同程序的源代码-一个目录用于32位Windows,另一个目录用于64位Windows,那么这些文件夹的更正确的名称是:

  • x86-64 x64 吗?
  • IA-32 x64 吗?

  • 我已经阅读了一些Web资源,但听不懂。仅作记录:
  • https://superuser.com/questions/179919/x86-vs-x64-why-is-32-bit-called-x86
  • Difference between x86, x32, and x64 architectures?
  • https://en.wikipedia.org/wiki/X86
  • https://en.wikipedia.org/wiki/IA-32
  • https://en.wikipedia.org/wiki/X86-64
  • 最佳答案

    x86可以是一个广义的术语,涵盖与8086向后兼容的所有CPU,以及包括x86-64在内的所有体系结构扩展。

    请注意,IA-64根本不是x86,而是Itanium (a 64-bit VLIW architecture with explicit speculation / parallelism)。它也是由Intel设计的,但是就兼容性或设计而言,它与x86完全无关。 (出于兼容性的考虑,早期的IA-64 CPU还集成了x86内核。英特尔在推动IA-64,而AMD在推动AMD64 / x86-64)

    英特尔有时会说自己的CPU具有IA内核+集成的GPU和每个IA内核之外的其他逻辑。 (IA =英特尔架构= x86)。

    可以调用 32位x86,尤其是(不包括16位或64位)

  • IA-32(有时由Intel使用)
  • i386或i686(在Linux上常见)
  • (仅Windows):x86 。确实是这样:在Windows世界中,“x86”专门表示32位。这就是为什么您使用该名称的Program Files (x86)目录的原因。这种选择会给每个人带来潜在的术语混乱,因为与ARM或MIPS相比,“x86”到目前为止仍然是总体上指代体系结构的最佳方法。
  • 很少使用:x86-32。我所知道的任何硬件或软件供应商都未正式使用此术语,但这是一个明确的有用术语。

  • 永远不要称它为x32。 x32是x86-64 System V ABI的ILP32变体:64位模式下的32位指针。 https://en.wikipedia.org/wiki/X32_ABI

    64位x86 更易于具体引用(不包括32位和16位):
  • x86-64或x86_64(破折号与下划线完全不重要。在文本中,大多数人使用破折号,但在大多数语言中,_只能是函数/变量名称的一部分。)
  • AMD64或amd64
  • (仅Windows)x64
  • (通常仅在Intel CPU体系结构文档中,它们并不流行,并且我在软件目录名称或配置选项中也没有看到它们)IA-32e或Intel64。显然,“e”代表“扩展名”。 https://en.wikipedia.org/wiki/X86-64#Intel_64 的“历史记录”部分提到了命名。

  • 不是IA-64,那是一个独立的体系结构。

    当然,如果您想成为书呆子,则需要x86-64 CPU支持传统模式,因此您可以在x86-64 CPU上运行纯32位OS,而它仍然是64位CPU。

    对于运行32位用户空间的64位内核,CPU处于“兼容”模式,这与32位受保护模式非常相似,除了页表格式具有52位物理地址外。 (x86-64页表格式基于PAE页表的36位物理地址宽度。)用户空间很难分辨32位内核与32位内核之间的区别。 64位内核,但特定于OS的东西(例如,通过系统调用询问内核)除外。

    软件目录名称

    许多项目使用i386对比x86-64amd64。作为最模糊的建议,这是我的建议。 (或者也许是i686,如果您不太在意与PPro之前的CPU兼容。)

    有些工具(例如GMP(GNU MultiPrecision库)对许多体系结构具有手写的asm)使用“x86”和“x86_64”。 https://gmplib.org/repo/gmp/file/tip/mpn

    (GMP具有针对不同x86 CPU的相同功能的多个手动调整版本。在“x86”中,子目录具有针对Pentum,Core 2,Haswell和/或利用指令集扩展之类而调整的功能的不同版本。 BMI2。这是不寻常的;大多数项目没有具体说明。某些项目可能会有一些东西可以利用AVX或AVX512或SSE4.1,例如,但这通常只在源文件中。)

    09-04 15:53
    查看更多