繁体   English   中英

在QEMU上使用multiboot和floppy

[英]Using both multiboot and floppy with QEMU

我正在尝试开发一个操作系统。 我已经完成了OSDev的Barebones教程 ,但仍然存在多重启动问题。

据我所知,当我按照教程创建多重启动图像时,我有一个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内核和驱动程序开发人员测试他们的代码,而不是每次都创建一个虚拟媒体图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM