Linux启动(转)

在 Linux 启动过程中,最开始加载的程序就是 bootSect.S 文件.

其中第一行是一个include 语句:#include <asm/boot.h>
而当我去查看boot.h的时候,发现它的真正位置在 "include/asm-i386/boot.h" 而不是 "include/ asm/boot.h"

这让我很不解,查网上资料也没有解答, 打开makefile文件,仔细看了一下,终于找到原因:

在makefile 中有这么一段:

symlinks:
    rm 
-f include/asm
    ( cd include ; ln 
-sf asm-$(ARCH) asm)
    @if [ 
! -d include/linux/modules ]; then 
        mkdir include
/linux/modules; 
    fi

很明显,首先删除了 asm文件夹,然后 在include 下面做了一个软连接: ln -sf asm-$(ARCH)  asm

这里的ARCH明显是系统相关的环境变量了,比如在i386机器上就是代表i386了。这样asm-i386就转成了asm.

posted @ 2009-11-22 01:39  规格严格-功夫到家  阅读(157)  评论(0编辑  收藏  举报