启动镜像bzImage的前世今生

原来安装的是它

在编译kernel的时候,会编译出一个bzImage的文件,据说这个是可以引导的文件?

恩,关于这个问题,昨天我还真好好看了一下,发现还真是。玩了内核这么多年,一直都以为是根目录下的那个vmlinux是安装时拷贝到/boot/目录下的文件,结果原来不是。真是惭愧惭愧。

我是从make install这个规则开始找下去的。

boot := arch/x86/boot
install:
    $(Q)$(MAKE) $(build)=$(boot) $@

这个规则在arch/x86/Makefile中,好奇为什么没有在根Makefile里找到。

那实际上真正执行的是在arch/x86/boot/Makefile中这个规则

install:
    sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $(obj)/bzImage \
        System.map "$(INSTALL_PATH)"

对应x86架构,在这个install.sh就是arch/x86/boot/install.sh。虽然脚本中有几种安装内核的方式,不过我们只看其中一种也就能确认安装在/boot/目录下的是bzImage而不是vmlinux了。

cat $2 > $4/vmlinuz

所以说不看不知道,一看吓一跳。以后不敢说自己懂内核了。

目标在哪里?

我们在内核编译的小目标一文中也提到过,bzImage是x86平台下默认的目标之一。但是并没有在根目录的Makefile中发现bzImage目标。 而在根目录的Makefile中的前面部分有

include $(srctree)/arch/$(
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值