linux中,arch,processor和mach的关系
解读内核时,有很多近似的词需要区分。不能正确理解将会陷入一片混乱状态。这3个词,我们不给出中文。直接描述其含义。arch:内核目录里面有专用的目录,代表了一种架构。arch是硬件里面最大的分类,那些硬件可以归到同一个arch里面呢?这个取决于指令集。 采用相同硬件指令集的处理器属于同一个arch。同时arch的种类决定了gcc的种类,不同的arch目录必须采用不同的gcc编译。编译arm架构,
解读内核时,有很多近似的词需要区分。不能正确理解将会陷入一片混乱状态。这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
更多推荐
所有评论(0)