QEMU是运行在用户层的开源全虚拟化解决方案,可以在Intel X86机器上虚拟出完整的操作系统,其性质与VMware player类似,由于其工作在用户层,所以很多硬件的特权指令、内核操作无法实现,所以在性能上表现比较差,一般都会使用KVM作为底层接口完成虚拟化。其运行架构如图所示(图片来自网络):
在ubuntu系统上通过apt-get安装
sudo apt-get install qemu-system-x86
安装完成后就可以开始执行qemu-system-x86_64命令打开qemu程序,如下图所示
从图中可以看出,这个界面类似于普通PC开机运行到BIOS。可以看出现在没有一个可以启动的磁盘“No bootable device”。
关于虚拟机的BIOS,可以通过参数-BIOS 指定位置进行加载,如果没有指定设置,默认是使用/usr/share/qemu/路径下的bios.bin文件,通过链接可以看出其对应的是seabios。
到此,qemu已经实现了一个可运行的虚拟硬件环境,接下来就是通过配置参数来在这个虚拟的硬件环境中运行我们需要的操作系统了。
因为单纯的使用qemu进行系统启动性能上会有很大的缺陷,所以后续的所有用例都添加-enable-kvm的参数,该参数的含义是使用内核虚拟化。因为内核层有很高的权限,可以使用CPU的一些硬件特性来提升虚拟机的性能。