文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>kernel 2.6 内核的生成过程

kernel 2.6 内核的生成过程

时间:2007-04-09  来源:lucasman

kernel 2.6 内核的生成过程

先从安装新内核后生成的文件说起

step 1:
    更新内核的最后一条指令    make install
    运行了/linux-2.6.11/arch/i386/boot/install.sh 2.6.11\
    arch/i386/boot/bzImage System.map "" 命令
    该命令将bzImage System.map 拷贝到/boot目录更改为相应的名字,
    然后调用相关的脚本根据系统的配置以及/lib/modules/2.6.11/modulse.dep生成initrd
    然后更改/boot/grub/grub.conf 文件
    此时即可使用新的内核引导系统。

step 2:如何生成step 1 所需的文件(bzImage,modules...)呢?
    我们首先看一下编译命令 make做了那些工作
    1:编译vmlinux(内核必须组件以及静态(built-in)的模块)
        ld -m elf_i386  -o vmlinux \
        -T arch/i386/kernel/vmlinux.lds \
        arch/i386/kernel/head.o arch/i386/kernel/init_task.o  \
        init/built-in.o --start-group  usr/built-in.o  \
        arch/i386/kernel/built-in.o  arch/i386/mm/built-in.o  \
        arch/i386/mach-default/built-in.o  arch/i386/crypto/built-in.o  \
        kernel/built-in.o  mm/built-in.o  fs/built-in.o  ipc/built-in.o  \
        security/built-in.o  crypto/built-in.o  lib/lib.a  arch/i386/lib/lib.a  \
        lib/built-in.o  arch/i386/lib/built-in.o  drivers/built-in.o  \
        sound/built-in.o  net/built-in.o --end-group .tmp_kallsyms2.o

    2:生成bzImage(这个文件是将vmlinux进行压缩,然后和bootsect,以及setup)
        最先生成的vmlinuxi(size:1,048,646)位于/src根目录下,
        通过以下命令生成第6步所需的vmlinux.bin
        1:objcopy -O binary -R .note -R .comment -S  vmlinux\
            arch/i386/boot/compressed/vmlinux.bin(size:864,390)
        2:gzip -f -9 < arch/i386/boot/compressed/vmlinux.bin\
             > arch/i386/boot/compressed/vmlinux.bin.gz(size:422,008)
        3:ld -m elf_i386  -r --format binary --oformat elf32-i386 -T \
            arch/i386/boot/compressed/vmlinux.scr\
            arch/i386/boot/compressed/vmlinux.bin.gz\
            -o arch/i386/boot/compressed/piggy.o(size:422,675)
        4:ld -m elf_i386  -Ttext 0x100000 -e startup_32\
            arch/i386/boot/compressed/head.o\
            arch/i386/boot/compressed/misc.o \
            arch/i386/boot/compressed/piggy.o \
            -o arch/i386/boot/compressed/vmlinux(size:439,400)
        5:objcopy -O binary -R .note -R .comment -S  
            arch/i386/boot/compressed/vmlinux\
            arch/i386/boot/vmlinux.bin(size:436,228)
        6:arch/i386/boot/tools/build -b \
            arch/i386/boot/bootsect \
            arch/i386/boot/setup \
            arch/i386/boot/vmlinux.bin CURRENT \
            > arch/i386/boot/bzImage(size:439,812)
            (以上命令均在src根目录下执行)

    3:编译相关的modules(生成相关的modules.ko)
相关阅读 更多 +
排行榜 更多 +
盛世天下

盛世天下

角色扮演 下载
镇魂街破晓手游

镇魂街破晓手游

角色扮演 下载
磨碎物品

磨碎物品

休闲益智 下载