首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像和vmlinux的精确区别

图像和vmlinux的精确区别
EN

Stack Overflow用户
提问于 2022-11-05 05:27:51
回答 1查看 53关注 0票数 0

我在默认配置中编译了最新的Linux内核,使用make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig make -j4 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-命令对arm64目标启用了调试。根文件夹中有vmlinux文件,arch/arm64/boot中有Image文件。

在QEMU上,我可以使用以下命令引导'Image‘文件,但不能引导'vmlinux’文件。

代码语言:javascript
复制
//Boots
qemu-system-aarch64 -semihosting -m 1024M -nographic  -machine virt,gic-version=3,virtualization=on  -cpu max -kernel mylinux/arch/arm64/boot/Image

//Not booting
qemu-system-aarch64 -semihosting -m 1024M -nographic  -machine virt,gic-version=3,virtualization=on  -cpu max -kernel linux/vmlinux

下面也给出了文件命令的结果。

代码语言:javascript
复制
$ file vmlinux
vmlinux: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), statically linked, BuildID[sha1]=65799dedbc4bed593ecec1fe49d7b267, with debug_info, not stripped

$ file arch/arm64/boot/Image
arch/arm64/boot/Image: MS-DOS executable PE32+ executable (EFI application) Aarch64 (stripped to external PDB), for MS Windows

我可以知道这两个文件之间的确切区别以及为什么一个文件正在引导。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-05 07:20:39

"vmlinux“是在从源代码构建内核文件的过程中创建的文件。它以ELF格式保存。然后,可以使用某些调试器(即GDB)进行调试。它不用于引导系统。

基于这个"vmlinux“ELF文件,还创建了其他文件--比如"Image”。"Image“是一个文件,它由vmlinux的某些部分加上一些引导代码组成,然后引导加载程序使用这个引导代码启动系统上的内核。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74325349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档