Chinaunix首页 | 论坛 | 博客
  • 博客访问: 569933
  • 博文数量: 70
  • 博客积分: 3736
  • 博客等级: 中校
  • 技术积分: 1728
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-08 09:15
文章分类
文章存档

2014年(1)

2012年(21)

2011年(7)

2010年(28)

2009年(13)

分类: LINUX

2010-05-05 16:48:50

通常, 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,
阅读(1590) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~