关于qemu

一、什么是Qemu?

Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。

正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成虚拟化工作,因为 KVM 是硬件辅助的虚拟化技术,主要负责 比较繁琐的 CPU 和内存虚拟化,而 Qemu 则负责 I/O 虚拟化,两者合作各自发挥自身的优势,相得益彰。


二、使用

 在ubuntu系统上通过apt-get安装,安装完成后可以通过qemu-system-x86_64打开qemu程序。


 从图中可以看出,这个界面类似于普通PC开机运行到BIOS。可以看出现在没有一个可以启动的磁盘“No bootable device”。
 关于虚拟机的BIOS,可以通过参数-BIOS 指定位置进行加载,如果没有指定设置,默认是使用/usr/share/qemu/路径下的bios.bin文件,通过链接可以看出其对应的是seabios
到此,qemu已经实现了一个可运行的虚拟硬件环境,接下来就是通过配置参数来在这个虚拟的硬件环境中运行我们需要的操作系统了。
      因为单纯的使用qemu进行系统启动性能上会有很大的缺陷,所以后续的所有用例都添加-enable-kvm的参数,该参数的含义是使用内核虚拟化。因为内核层有很高的权限,可以使用CPU的一些硬件特性来提升虚拟机的性能。

  • --enable-kvm:编译 KVM 模块,使 Qemu 可以利用 KVM 来访问硬件提供的虚拟化服务。
  • --enable-vnc:启用 VNC。
  • --enalbe-werror:编译时,将所有的警告当作错误处理。
  • --target-list:选择目标机器的架构。默认是将所有的架构都编译,但为了更快的完成编译,指定需要的架构即可。

安装好之后,会生成如下应用程序:

  • ivshmem-client/server:这是一个 guest 和 host 共享内存的应用程序,遵循 C/S 的架构。
  • qemu-ga:这是一个不利用网络实现 guest 和 host 之间交互的应用程序(使用 virtio-serial),运行在 guest 中。
  • qemu-io:这是一个执行 Qemu I/O 操作的命令行工具。
  • qemu-system-x86_64:Qemu 的核心应用程序,虚拟机就由它创建的。
  • qemu-img:创建虚拟机镜像文件的工具,下面有例子说明。
  • qemu-nbd:磁盘挂载工具。
  • qemu退出方法 ctrl+A按X


猜你喜欢

转载自blog.csdn.net/qq_36116842/article/details/79841548