嵌入式技术及应用-【Ubuntu】编译Linux内核(2.6以上版本),并比较产生的映像文件zImage的大小

作业一:

1、采用下表所示的两种内核配置,编译Linux内核(2.6以上版本),并比较产生的映像文件zImage的大小。

配置1  

 配置2

网络

支持TCP/IP协议,ppp协议,防火墙

仅支持TCP/IP协议

文件系统

支持FAT,Ext2,

仅支持Ext2

USB接口

支持

不支持

1.准备工作:

①将linux-2.6.32.2-mini2440-20110413.tar进行解压,并进入解压后文件linux-2.6.32.2

②修改makefile文件,修改ARCH、CROSS_COMPILE

③清除原厂配置

④配置内核产生.config文件

⑤输入内核配置命令,进入配置内核界面

二、配置1

1、开启TCP/IP

2、开启防火墙

3、开启EXT2

4、开启FAT

5、开启USB

6、生成镜像文件zImage (书本是make uImage)

三、配置2

1、关闭防火墙

2、关闭FAT

3、关闭USB

执行make Image命令生成镜像文件

比较两次产生的镜像文件

实验结论与体会

本次实验基于linux-2.6.32.2-mini2440-20110413.tar并成功进行两种内核配置,编译并比较产生的映像文件zImage和Image的文件体积。支持的功能越全面,相应内核体积也会增大。

linux内核经过编译后会生成一个elf格式的可执行程序,叫vmlinux或vmlinuz,这个就是原始的未经任何处理加工的原版内核elf文件;

嵌入式系统部署时烧录的一般不是这个vmlinuz/vmlinux,而是要用objcopy工具去制作成烧录镜像格式,经过制作加工成烧录镜像的文件就叫Image(这个制作烧录镜像主要目的就是缩减大小,节省磁盘)。

原则上Image就可以直接被烧录到Flash上进行启动执行(类似于u-boot.bin),但是实际上并不是这么简单。

实际上linux的作者们觉得Image还是太大了所以对Image进行了压缩,并且在image压缩后的文件的前端附加了一部分解压缩代码,构成了一个压缩格式的镜像就叫zImage。解压的时候,通过zImage镜像头部的解压缩代码进行自解压,然后执行解压出来的内核镜像。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

利威尔·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值