解读内核时,有很多近似的词需要区分。不能正确理解将会陷入一片混乱状态。这3个词,我们不给出中文。直接描述其含义。

arch:内核目录里面有专用的目录,代表了一种架构。arch是硬件里面最大的分类,那些硬件可以归到同一个arch里面呢?这个取决于指令集。 采用相同硬件指令集的处理器属于同一个arch。同时arch的种类决定了gcc的种类,不同的arch目录必须采用不同的gcc编译。编译arm架构, 采用arm-linux-gcc。编译ppc则需要ppc-linux-gcc。

processor:processor隶属于arch的一个分支,代表了一个处理器家族。即使采用相同的指令集,由于指令集存在版本的差异,这促生了处理器家族的概念。举例来说,x86代表了一种指令集,而286,386,486则分别使用了该指令集的不同版本,分别属于不同的处理器家族。arm 也代表了一种指令集,而arm7,arm9等等分别也是不同的处理器家族。

mach:他通常指某一款特定的处理器。属于processor的实体化。

 mach

 processor

 arch

 说明

 sa1100

 arm920

 arm

 

 s3c44b0

 arm7

 arm

 

 P4

 i686

 x86

 

 AMD_64

 althon_64

 x86_64

 

以上规则是在内核的组织中用到的。然而这些信息是如何传递给gcc的呢?

查看arch/xxx/Makefile march代表了arch -march=armv3 -march=armv4 -march=armv5 -march=pentium-mmx

mtune代表了processor -mtune=arm7tdmi -mtune=arm9tdmi -mtune=strongarm1100

mcpu代表了mach -mcpu=860 -mcpu=ev5 -mcpu=pentium-mmx

Logo

更多推荐