gpt4 book ai didi

boot - 在 QEMU 中使用多重引导和软盘

转载 作者:行者123 更新时间:2023-12-05 00:34:43 34 4
gpt4 key购买 nike

我正在尝试开发一个操作系统。我已经完成了 Barebones tutorial来自 OSDev,但在多重引导方面仍然存在一些问题。

据我了解,当我按照教程创建多重引导镜像时,我有一个 ELF 格式的二进制文件。当我指定 -kernel 选项时,QEMU 将这个 ELF 可执行文件加载到内存中。所以我在内存中有一个可执行程序,它有一个入口点。它旁边有一些函数和库。内存中没有别的了。也没有我可以从中读取或写入扇区的软盘或磁盘镜像。这主要是因为我没有在这方面向 QEMU 指定任何内容。

但是,我想要实现的是在 QEMU 加载我的 ELF 可执行文件之后,我想要一个磁盘或软盘架构,我可以从中读取或写入扇区。我还想从中加载一些用户程序,或者在其上设置一个文件系统。到目前为止,我的想法是:

qemu-system-i386 -kernel myKernel.bin -fda myDisk.image

或者,我应该获取我的 myKernel.bin 文件,用零填充它直到它与 512 字节对齐,然后将磁盘镜像的其余部分附加到它。

我的问题是如何使用 QEMU 实现此功能。在开始编写磁盘驱动程序之前,我需要知道这样的任务是否可行。如果不可能,我可以采取不同的方法,但这些是我现在的想法。我已经研究过 -initrd 并且它不是我想要的。我也不希望 QEMU 将任何文件加载到 RAM 中。相反,我想自己操作磁盘镜像。关于如何做到这一点有什么建议吗?

最佳答案

您不需要软盘镜像 多重引导内核,除非您已经编写了某种加载程序。 -kernel 标志的工作方式类似于 grub,它比从虚拟媒体加载快得多。这是多少 linux 内核和驱动程序开发人员测试他们的代码,而不是每次都创建一个虚拟媒体镜像。

关于boot - 在 QEMU 中使用多重引导和软盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37363416/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com