【问题标题】:How to build and run an .img file in qemu emulator?如何在 qemu 模拟器中构建和运行 .img 文件?
【发布时间】:2017-01-04 04:59:20
【问题描述】:
我正在研究操作系统的概念。我在汇编中创建了一个简单的引导加载程序和一个第二阶段加载程序。我是Linux新手,所以我不知道如何模拟它。我浏览了很多网站,但找不到完美的解释。
那么,我将如何使用 dd 工具和 qemu 在模拟器中模拟 boot.asm 和 load.asm 文件,以及如何在 USB 中执行相同操作并在真机中启动它?
请指导我,让我赶上它..
操作系统:Ubuntu 16.04.1
组装:8086组装
【问题讨论】:
标签:
assembly
operating-system
kernel
qemu
x86-16
【解决方案1】:
“.img”文件是包含所需二进制文件的容器,例如'[引导加载程序][内核][dtb]'。使用 'dd' 你可以创建这样的容器。
换句话说,您可以将所有这些必需的文件合并为一个,例如带有您指出的偏移量的“boot.img”。此外,所有偏移量都需要在引导加载程序的头文件中声明。成功创建'boot.img'后,您可以通过选项'-bios'(模拟rom)将其传递给qemu。
Qemu 将从 0x0 偏移量开始执行该文件 - 它是您的引导加载程序。您的引导加载程序会将内核复制到 RAM 中并将执行传递给您的内核。