1 设备模拟
QEMU支持大量设备的模拟,包括从外设如网卡、USB设备到片上集成系统SoC。这些设备的配置通常比较混乱,因此本文档能够帮助对QEMU中描述设备的一些术语作简单理解。
2 通常术语
2.1 设备前端
一个设备前端通常为一个设备是如何被呈现给guest。呈现的设备类型应该与guest OS希望看到的硬件匹配。所有设备都可以通过"--device"命令行选项指明。在QEMU执行命令选项"--device help"将列出所有支持的设备。使用命令行"--device fool,help"将列出该设备额外有用的配置。
通常前端与后端成对,这描述了host中的资源是如何在模拟中被用到。
2.2 设备总线
大多数设备都存在于一些总线上。依赖于平台类型,你选择一些自动创建的总线(“-M foo”)。在大多数情况下一个设备连接的总线可以被推测出来,比如PCI设备通常被自动分配给第一个PCI总线的下一个空闲地址。但是在复杂的配置中你可以明确的指定该设备连接的哪个总线("bus=ID")以及它使用的哪个地址("addr=N")。
一些设备,比如PCI SCSI host控制器,将增加一些额外的总线到其他设备连接的系统中。设备假定关系链如下所示:
--device foo,bus=pci.0,addr=0,id=foo
--device bar,bus=foo.0,addr=1,id=baz
这是一个bar设备(ID为baz),它联接到第一个foo总线(foo.0),地址为1。foo设备提供了foo.0总线,同时也联接到第一个PCI总线(pci.0)。
2.3 设备后端
后端描述来自模拟设备的数据是如何被QEMU处理的。后端的配置通常为模拟设备的特定的。比如串行设备将以"--chardev"为后备,它间接将数据发给一个文件或socket或其他系统。存储设备由"--blockdev"处理,它指明了块是如何处理的,比如保存在qcow2文件或访问一个raw host硬盘分区。后端有时能够被像snapshot一样实现。
当后端的选择对guest是透明的时,有一些场景如果后端不能支持它,特性不会被报告给guest。
2.4 直通设备
直通设备为可以直接访问到真实硬件的设备 。这可以简单的将一个USB设备从host系统上导出给guest或将PCI插槽上的音频卡给guest上使用。
翻译文档:
QEMU: docs/system/device-emulation.txt