被忽视的另一个vmlinux

在x86平台,编译完内核后用find命令搜vmlinux,你可以看到有两个同名的文件。

./vmlinux
./arch/x86/boot/compressed/vmlinux

当我第一次见到的时候,也是有点吃惊的。要不是这么多年在江湖行走,也不会这么淡定。

谁会用到他

其实之前我们就见到过了,不过当时并没有仔细去研究。

"arch/x86/boot/Makefile"

$(obj)/bzImage: $(obj)/setup.bin $(obj)/vmlinux.bin $(obj)/tools/build FORCE
    $(call if_changed,image)
    @echo 'Kernel: $@ is ready' ' (#'`cat .version`')'

OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note -R .comment -S
$(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE
    $(call if_changed,objcopy)

恩,这个就是制作bzImage的第二个部分。

他怎么来的

"arch/x86/boot/compressed/Makefile"

$(obj)/vmlinux: $(vmlinux-objs-y) FORCE
    $(call if_changed,ld)
    @:

简单明了,就是一堆obj链接而成。

都包含了谁

"arch/x86/boot/compressed/Makefile"

vmlinux-objs-y := $(obj)/vmlinux.lds $(obj)/head_$(BITS).o $(obj)/misc.o \
    $(obj)/string.o $(obj)/cmdline.o \
    $(obj)/piggy.o $(obj)/cpuflags.o

vmlinux-objs-$(CONFIG_EARLY_PRINTK) += $(obj)/early_serial_console.o
vmlinux-objs-$(CONFIG_RANDOMIZE_BASE) += $(obj)/aslr.o

$(obj)/eboot.o: KBUILD_CFLAGS += -fshort-wchar -mno-red-zone

vmlinux-objs-$(CONFIG_EFI_STUB) += $(obj)/eboot.o $(obj)/efi_stub_$(BITS).o \
    $(objtree)/drivers/firmware/efi/libstub/lib.a
vmlinux-objs-$(CONFIG_EFI_MIXED) += $(obj)/efi_thunk_$(BITS).o

恩,这个问题解决了,不过别的困惑又来了。

bzImage中包含的是这个vmlinux,那根目录的vmlinux呢?启动的时候是怎么把根目录的vmlinux加载到内存的? 又是怎么跳转到根目录的vmlinux的呢?

路漫漫其修远兮,吾将上下而求索

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以按照以下步骤在VMware 16中安装Linux虚拟机: 1. 首先,您需要下载并安装VMware 16软件。您可以从VMware官方网站下载软件安装包\[2\]。 2. 下载CentOS 7的映像文件。您可以从CentOS官方镜像站点下载\[2\]。 3. 安装完VMware 16后,打开软件并点击"创建新的虚拟机"。 4. 在虚拟机创建向导中,选择"典型(推荐)"配置类型。 5. 选择"安装客户机操作系统",然后在操作系统列表中选择Linux,并选择CentOS 7的版本。 6. 选择虚拟机存放位置,建议创建一个新的文件夹专门用于存放虚拟机文件。 7. 设置磁盘容量,默认设置即可。 8. 完成虚拟机创建后,进入虚拟机设置。在"设备"选项卡中,选择DVD驱动器,并选择ISO映像文件。您可以从CentOS官方网站下载CentOS的ISO镜像文件。 9. 开启虚拟机,准备安装Linux操作系统。选择第一个选项以开始安装过程。 10. 在安装过程中,如果扫描到磁盘,请选择忽略。 11. 根据您的偏好选择语言和键盘布局。 12. 完成安装后,您可以开始使用Linux虚拟机进行学习和实践。 请注意,以上步骤仅适用于VMware 16和CentOS 7。如果您使用其他版本的软件或操作系统,请参考相应的文档或指南进行操作。 #### 引用[.reference_title] - *1* *2* [VMware16的安装及VMware配置Linux虚拟机(详解版)](https://blog.csdn.net/m0_50519965/article/details/116175873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [VMWare下安装Linux系统(详细版)](https://blog.csdn.net/chen7588693/article/details/83349695)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值