通常,
arch/$(ARCH)/boot/compressed目录下的文件负责生成linux的自解压内核映象,
生成的自解压内核映象通常名为zImage或bzImage. 在大多数体系结构中这二者是相同的, 但是i386体系结构下有所例外
(关于i386体系结构下, 这两者的不同请参考<>).
1. 压缩ELF32格式的内核映象linux/vmlinux
-------------------------------------
在生成自解压映象zImage或bzImage之前, 必须对ELF32格式的vmlinux内核映象进行gzip压缩. 其大致的过程如下:
- 用objcopy把ELF32格式的内核映象linux/vmlinux转换成raw binary格式的linux/arch/$(ARCH)/boot/compressed/vmlinux.bin映象.
注: 这个在compressed目录下生成的vmlinux.bin映象是一个可执行的内核映象. 最终执行的就是它. 它与通过"make image"命令在
arch/$(ARCH)/boot/目录下生成的vmlinux.bin映象(也可能叫Image)是完全相同的.
- 用gzip压缩binary格式的linux/arch/$(ARCH)/boot/compressed/vmlinux.bin映象, 从而得到一个压缩过的
linux/$(ARCH)/boot/compressed/vmlinux.bin.gz
NOTE: 用gzip命令进行压缩时, 要指定选项"-9", 也即采用最大的压缩比.
RFC1952文档定义gzip文件的文件格式 :
Component Byte Comment
ID1 1 31 (0x1f,
阅读(1632) | 评论(0) | 转发(0) |