- 论坛徽章:
- 0
|
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.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)
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/35387/showart_274313.html |
|