CPU架构

不同的CPU架构,所使用的软件也是不一样的,常见的是英特尔CPU使用的是x86-64,我们在linux使用到的软件一般安装也是这种对应架构的。
如果是软件跟CPU结构不匹配,是不能运行的。

CPU架构

  • x86:intel的开发的一种32位指令集,Intel早期的cpu,AMD早期的cpu都支持这种指令集

intel官方文档里面称为“IA-32”,另外,x86也称作i386

  • x84_64与AMD64:AMD抢跑了,比Intel率先制造出了商用的兼容x86的64位CPU,AMD称之为AMD64;后面Intel不得不在时机落后的情况下也开始支持AMD64的指令集,但是换了个名字,叫x86_64,表示是x86指令集的64扩展。这两个指的是同一个东西。

x86-64有时会简称为“x64”,是64位微处理器架构及其相应指令集的一种,也是Intel x86架构的延伸产品。

x86_64被Intel也称Intel64

现在的64bit CPU实际上都做了兼容32bit的特殊设计,所以64bit的CPU上运行32bit的软件(包括kernel/app, driver除外)是没有问题。反过来,32bit的CPU上运行64bit的软件是不可以的。

  • ARM32:32位,适合移动通信这种低成本,高性能,低耗电的领域

也称ARMv7-A

  • ARM64:表示ARMv8-A 64位指令集架构

  • AArch64:是ARMv8的一种执行状态。

ARM64和AArch64都是指ARMv8-A 64位指令集架构的名称,而它们之间的不同在于名称来源。ARM64是ARM公司所使用的名称,表示ARMv8-A 64位指令集架构。ARM是英国一家半导体公司,开发了许多处理器架构,其中ARMv8-A是其第八代架构,被用于设计高端手机、平板电脑、笔记本电脑、服务器等设备。而AArch64是由ARM公司为其ARMv8-A 64位指令集架构推出的一种新的编程模型,它是ARMv8-A架构的一个子集。这种编程模型主要是为了在64位模式下提高程序性能和安全性。与ARM32(即ARMv7-A)的指令集不同,AArch64在寄存器和指令方面有许多改进和增强。因此,ARM64和AArch64都是指同一个东西,只是名称不同,来源也不同。如果你在不同的地方看到这两个术语,不要感到困惑,它们都是指代同一个处理器架构。

借鉴

https://zhuanlan.zhihu.com/p/599718335
https://www.zhihu.com/question/502737415
https://www.zhihu.com/question/28194051