欢迎光临散文网 会员登陆 & 注册

0174-QEMU 从 kernel 启动

2023-08-19 13:05 作者:jiangbo4444  | 我要投稿

环境

  • Time 2022-11-12

  • WSL-Ubuntu 22.04

  • QEMU 6.2.0

  • NASM 2.15.05

前言

说明

参考:https://os.phil-opp.com/multiboot-kernel/
参考:https://megtechcorner.medium.com/a-tutorial-on-os-and-compiler-3-5d14f7448415

目标

使用编写好的内核可执行文件,直接从 QEMU 启动。

kernel 参数

可以看到,可以直接从 multiboot 格式直接启动。
目前还不支持 multiboot2 格式的文件:https://gitlab.com/qemu-project/qemu/-/issues/389

multiboot 格式

multiboot 格式和之前的 multiboot2 格式不太一样,需要重新编写程序。 规范参数文档:https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Specification

其中的 3.1.1 和 3.1.2 节,对需要的字段和值进行了说明。

汇编代码

编译和链接

启动 QEMU

可以看到和之前的制作的 ISO 文件启动效果一样。

总结

创建了一个内核可执行程序 kernel.elf,直接从 QEMU 中启动。

附录

Remove restriction that prevents bootimg elf64 images

如果启动的时候,出现这个问题,表示 QEMU 还不支持从 elf64 启动。
可以参考这篇文件的编译和链接部分,将文件转化为 elf32 格式。

0174-QEMU 从 kernel 启动的评论 (共 条)

分享到微博请遵守国家法律