相对于ARM linux,我们说的普通linux指的是X86 linux,他们都是linux系统,但是由于ARM和X86是不同的CPU架构,他们的指令集不同,所以软件编译环境不同,软件代码一般不能互用,一般需要进行兼容性移植。
  X86是经典的CISC指令集,指令集复杂,功能多,串行执行,但是也意味着执行效率低下,但性价比突出,所以称为民用终端的主流处理器内置指令集。Intel和AMD的家用处理器都是X86指令集。以X86为代表的CISC,理论并发线程1-2条。
ARM是Advanced RISC Machine 的缩写。它的指令集比RISC还要精简。通常使用ARM架构处理器的机型,多为嵌入式或者便携机。主频通常不高,现在高通公司的ARM架构处理器有1.0GHz的,已经算相当高了。另外,ARM 7沿用冯·诺依曼结构;而从ARM 9以后,就都采用了哈佛结构。ARM的并发线程,理论上有4条左右,处理效率较X86高不少。

i386

amd64

arm

AArch64是ARMv8 架构的一种执行状

  1. 1.1 armel
  2. arm eabi little endian的缩写。eabi是软浮点二进制接口,这里的eembeded,是对于嵌入式设备而言。
  3. 1.2 armhf
  4. arm hard float的缩写。
  5. 1.3 arm64
  6. 64位的arm默认就是hf的,因此不需要hf的后缀。
  7. 2 armelarmhf的区别
  8. 它们的区别体现在浮点运算上,它们在进行浮点运算时都会使用fpu,但是armel传参数用普通寄存器,而armhf传参数用的是fpu的寄存器,因此armhf的浮点运算性能更高。
  9. gcc编译的时候,使用-mfloat-abi选项来指定浮点运算使用的是哪种,soft不使用fpuarmel使用fpu,使用普通寄存器,armhf使用fpu,使用fpu的寄存器。
  10. 编译时,kernelrootfsapp的指定必须一致才行。
  1. lscpu
  2. cat /proc/cpuinfo