1.qemu的作用
qemu
属于虚拟机模拟器。操作系统属于软件,软件需要依托于硬件(正如你所见到的实体电脑)运行。qemu
使用软件模拟出一种硬件环境,让我们编写的操作系统认为它被运行到了硬件中。
2.qemu的安装
这里我们使用的是Linux环境,使用apt
工具安装:
bash
sudo apt install qemu-system-x86
安装完成后,我们即可在/usr/bin
目录下发现
bash
user@pc:/usr/bin$ ls|grep qemu
...
qemu-system-i386
qemu-system-x86_64
...
其中qemu-system-i386
就是我们需要用到的intel i386
架构虚拟机程序。
3.qemu的使用
正如我们使用普通的Linux命令行工具一样,qemu
的使用也是在命令行中输入该命令加上参数并运行,最简单的使用方法为:
bash
qemu-system-i386 -drive file=system,format=raw -nographic
其中-drive file=system,format=raw
参数的意义为选择当前目录下的system
文件作为操作系统来驱动我们的i386虚拟机
,并且format=raw
视该文件为原始的操作系统文件。-nographic
不使用可视化窗口,将输出引导至终端。
3.1一个有意思的最小交互操作系统
以下为一个小操作系统system.s
的示例代码:
asm
org 0x7c00
mov dx, 0x3f8
scant:
in al, dx
out dx, al
jmp scant
times 510 - ($ - $$) db 0
dw 0xaa55
使用nasm
工具编译之:
bash
nasm system.s -o system
我们就可以得到一个可交互的非常小的操作系统system
。 使用前面提到的命令:
bash
qemu-system-i386 -drive file=system,format=raw -nographic
运行后即可观察到:
bash
SeaBIOS (version 1.13.0-1ubuntu1.1)
iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+07F8CA10+07ECCA10 CA00
Booting from Hard Disk...
按下键盘,开始与"操作系统"交互吧!