启动linux 内核
【程序编程相关:Scientific Linux 4.0】【推荐阅读:uClinux下编译microwin程序】
1.bzimage内核结构 【扩展信息:nessusWX试用记】第一部分 基础知识 bzimage的意思就是压缩完还依然很大的核心映象(big zip image),bzimage是一个可以自解压的头,bzimage在文件中的结构如下[bootsect]+[setupsect]+[misc+head]+[piggy]
bootsect是启动扇区,size=512,在文件中偏移为0
setupsect是setup扇区,size一般不等于四个扇区大小.size=setup_sectors*512,在文件中偏移为512
[misc+head]是个自解压的头,它的c程序为misc.c,汇编文件为head.s,二进制文件为misc.o+head.o=vmlinux-piggy.o,在文件中偏移为(1+setup_sectors)*512.
makefile压缩的核心用数据段的方式编译成piggy.o.配置的文件为vmlinux.src piggy.o=fun(vmlinuz.bin.gz)
连接misc,head,piggy成vmlinux. vmlinux 又通过一到工序(objcpy)变成vmlinux.bin
合并bootsect.setupsect.vmlinux.bin的程序是bulid.c.它是生成bzimage的工具,build.c的工作如下
a.读出bootsetc,在bootsetc偏移508与509处填上根目录的设备号(minor_root,major_root),把bootsetc写到新文件.
b.读出setupsetc,把setupsect写到新文件.用512对齐setupsect大小.如果setupsect小于2048,则用0补齐. ... 下一页