<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=QEMU</id>
	<title>QEMU - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=QEMU"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=QEMU&amp;action=history"/>
	<updated>2026-04-07T20:22:59Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=QEMU&amp;diff=185&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“{{Emulators}}  QEMU是一个免费的开源模拟器，可执行硬件虚拟化。 它广泛用于各种主机操作系统，并且在操作系统开发中需要最少的配置。 它能够模拟各种各样的系统，包括 ARM 、 x86 和 risc-v 等等。 有关更全面的目标清单，请参阅 [https://qemu.weilnetz.de/doc/qemu-doc.html 正式文件]。   ==特性== * 支持多个主机，多个目标。 * 两种操作模式: 完整的系统…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=QEMU&amp;diff=185&amp;oldid=prev"/>
		<updated>2022-01-05T02:51:54Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“{{Emulators}}  QEMU是一个免费的开源模拟器，可执行硬件虚拟化。 它广泛用于各种主机操作系统，并且在操作系统开发中需要最少的配置。 它能够模拟各种各样的系统，包括 &lt;a href=&quot;/index.php?title=ARM&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;ARM（页面不存在）&quot;&gt;ARM&lt;/a&gt; 、 &lt;a href=&quot;/index.php?title=X86&quot; class=&quot;mw-redirect&quot; title=&quot;X86&quot;&gt;x86&lt;/a&gt; 和 &lt;a href=&quot;/index.php?title=Risc-v&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Risc-v（页面不存在）&quot;&gt;risc-v&lt;/a&gt; 等等。 有关更全面的目标清单，请参阅 [https://qemu.weilnetz.de/doc/qemu-doc.html 正式文件]。   ==特性== * 支持多个主机，多个目标。 * 两种操作模式: 完整的系统…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Emulators}}&lt;br /&gt;
&lt;br /&gt;
QEMU是一个免费的开源模拟器，可执行硬件虚拟化。 它广泛用于各种主机操作系统，并且在操作系统开发中需要最少的配置。 它能够模拟各种各样的系统，包括 [[ARM]] 、 [[x86]] 和 [[risc-v]] 等等。 有关更全面的目标清单，请参阅 [https://qemu.weilnetz.de/doc/qemu-doc.html 正式文件]。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==特性==&lt;br /&gt;
* 支持多个主机，多个目标。&lt;br /&gt;
* 两种操作模式: 完整的系统仿真 (对操作系统开发感兴趣) 和Linux用户进程仿真 (想要仿真应用程序的人会感兴趣)。&lt;br /&gt;
* 使用 “just in time” 代码编译技术 (允许重用以前的代码解释)。这使得它比流行的替代模拟器 [[Bochs]] 更快。&lt;br /&gt;
* 提供原生的 [[GDB]] 支持。 QEMU可以附加到 [[GDB]]/[[DDD]] 来调试客户操作系统。 有关更多信息，请参阅下面的 [[QEMU#GDB-Stub|GDB-Stub]] 部分。&lt;br /&gt;
* 支持 [[VBE]] 2.0.&lt;br /&gt;
&lt;br /&gt;
===VBE 支持===&lt;br /&gt;
&lt;br /&gt;
通过在 [[GRUB]] 命令行中键入 '&amp;lt;tt&amp;gt;vbeprobe&amp;lt;/tt&amp;gt;' 来检查 [[VBE]] 支持。 测试返回:&lt;br /&gt;
&lt;br /&gt;
{| {{wikitable}}&lt;br /&gt;
|-&lt;br /&gt;
|0x101&lt;br /&gt;
|Packed pixel&lt;br /&gt;
|640x480x8&lt;br /&gt;
|-&lt;br /&gt;
|0x110&lt;br /&gt;
|Direct Color&lt;br /&gt;
|640x480x15&lt;br /&gt;
|-&lt;br /&gt;
|0x111&lt;br /&gt;
|Direct Color&lt;br /&gt;
|640x480x16&lt;br /&gt;
|-&lt;br /&gt;
|0x112&lt;br /&gt;
|Direct Color 	&lt;br /&gt;
|640x480x24&lt;br /&gt;
|-&lt;br /&gt;
|0x103&lt;br /&gt;
|Packed pixel 	&lt;br /&gt;
|800x600x8&lt;br /&gt;
|-&lt;br /&gt;
|0x113&lt;br /&gt;
|Direct Color 	&lt;br /&gt;
|800x600x15&lt;br /&gt;
|-&lt;br /&gt;
|0x114&lt;br /&gt;
|Direct Color 	&lt;br /&gt;
|800x600x16&lt;br /&gt;
|-&lt;br /&gt;
|0x115&lt;br /&gt;
|Direct Color 	&lt;br /&gt;
|800x600x24&lt;br /&gt;
|-&lt;br /&gt;
|0x105&lt;br /&gt;
|Packed pixel 	&lt;br /&gt;
|1024x768x8&lt;br /&gt;
|-&lt;br /&gt;
|0x116&lt;br /&gt;
|Direct Color 	&lt;br /&gt;
|1024x768x15&lt;br /&gt;
|-&lt;br /&gt;
|0x117&lt;br /&gt;
|Direct Color 	&lt;br /&gt;
|1024x768x16&lt;br /&gt;
|-&lt;br /&gt;
|0x118&lt;br /&gt;
|Direct Color&lt;br /&gt;
|1024x768x24&lt;br /&gt;
|-&lt;br /&gt;
|0x107&lt;br /&gt;
|Packed pixel 	&lt;br /&gt;
|1024x768x8&lt;br /&gt;
|-&lt;br /&gt;
|0x119&lt;br /&gt;
|Direct Color 	&lt;br /&gt;
|1024x768x15&lt;br /&gt;
|-&lt;br /&gt;
|0x11A&lt;br /&gt;
|Direct Color 	&lt;br /&gt;
|1024x768x16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==支持的体系结构==&lt;br /&gt;
* [[:Category:X86|x86]]&lt;br /&gt;
* [[X86-64|x86_64]]&lt;br /&gt;
* [[:Category:ARM|ARM]]&lt;br /&gt;
* [[ARM64]]&lt;br /&gt;
* [[LatticeMico32]]&lt;br /&gt;
* [[M68k_Overview|Motorola 68000]]&lt;br /&gt;
* [[MicroBlaze]]&lt;br /&gt;
* [[MIPS]]&lt;br /&gt;
* [[MIPS64]]&lt;br /&gt;
* [[Moxie]]&lt;br /&gt;
* [[PowerPC]]&lt;br /&gt;
* [[PowerPC64]]&lt;br /&gt;
* [[RISC-V]]&lt;br /&gt;
* [[IBM System/390]]&lt;br /&gt;
* [[SuperH]]&lt;br /&gt;
* [[:Category:Sparc|SPARC]]&lt;br /&gt;
* [[SPARC64]]&lt;br /&gt;
* [[TriCore]]&lt;br /&gt;
* [[Unicore]]&lt;br /&gt;
* [[Xtensa]]&lt;br /&gt;
&lt;br /&gt;
==支持的设备==&lt;br /&gt;
* [[Ne2000]] network card&lt;br /&gt;
* [[Intel_Ethernet_i217|e1000]] network cards&lt;br /&gt;
* [[RTL8139]] network card&lt;br /&gt;
* [[AMD_PCNET|AMD PCnet]] network cards&lt;br /&gt;
* [[PC_Speaker|PC Speaker]]&lt;br /&gt;
* [[Sound_Blaster_16|Sound Blaster 16]] sound cards&lt;br /&gt;
* [[AC97]]&lt;br /&gt;
* [[Intel_High_Definition_Audio|Intel High Definition Audio]]&lt;br /&gt;
* [[Virtio]] devices&lt;br /&gt;
* PCI SVGA card (Cirrus Logic 5446)&lt;br /&gt;
* PCI support (With BIOS32).&lt;br /&gt;
&lt;br /&gt;
==用法==&lt;br /&gt;
&lt;br /&gt;
QEMU不需要使用像Bochs这样的配置脚本。下面可以看到QEMU的示例用法:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
qemu-system-i386                                 \&lt;br /&gt;
  -accel tcg,thread=single                       \&lt;br /&gt;
  -cpu core2duo                                  \&lt;br /&gt;
  -m 128                                         \&lt;br /&gt;
  -no-reboot                                     \&lt;br /&gt;
  -drive format=raw,media=cdrom,file=myos.iso    \&lt;br /&gt;
  -serial stdio                                  \&lt;br /&gt;
  -smp 1                                         \&lt;br /&gt;
  -usb                                           \&lt;br /&gt;
  -vga std&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
在非UNIX系统上运行QEMU时，可能需要使用 &amp;lt;tt&amp;gt;-L&amp;lt;/tt&amp;gt; 命令行选项来指示QEMU在哪里可以找到BIOS映像。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-m 128&amp;lt;/tt&amp;gt; 参数指示QEMU创建具有128MB RAM的guest系统。 &amp;lt;tt&amp;gt;-drive format=raw,media=cdrom,file=myos.iso&amp;lt;/tt&amp;gt; 参数指示QEMU在我们的guest系统中创建驱动器。 在这种情况下，创建的驱动器是CDROM驱动器，其加载介质为 &amp;lt;tt&amp;gt;myos.iso&amp;lt;/tt&amp;gt;。 如果guest系统中需要多个驱动器，则可以使用 &amp;lt;tt&amp;gt;-boot&amp;lt;/tt&amp;gt; 选项来定义系统检查可引导介质的顺序。&lt;br /&gt;
&lt;br /&gt;
上面使用的 &amp;lt;tt&amp;gt;-serial stdio&amp;lt;/tt&amp;gt; 参数指示QEMU将串行输入和输出重定向到主机系统的 &amp;lt;tt&amp;gt;stdio&amp;lt;/tt&amp;gt; 流。 这对于调试目的特别有用。&lt;br /&gt;
&lt;br /&gt;
为了帮助追踪triple fault三重故障的根源，&amp;lt;tt&amp;gt;-d int&amp;lt;/tt&amp;gt; 选项可用于显示有关发生的中断的其他调试信息。 此外，还可以使用 &amp;lt;tt&amp;gt;-no-shutdown&amp;lt;/tt&amp;gt; 和 &amp;lt;tt&amp;gt;-no-reboot&amp;lt;/tt&amp;gt; 选项。 这些指示虚拟机在错误时停止，而不是重新启动或关闭，从而允许操作员在三重故障后检查计算机的状态。&lt;br /&gt;
&lt;br /&gt;
其他有用的命令行选项在 [[QEMU#Useful_QEMU_command-line_options | 有用的QEMU命令行选项]] 部分中列出。&lt;br /&gt;
&lt;br /&gt;
键盘快捷键 &amp;lt;tt&amp;gt;CTRL-ALT-{1,2，3}&amp;lt;/tt&amp;gt; 可在仿真器内部使用，以交换输入/输出仿真屏幕，QEMU控制台和串行控制台。 可以从系统控制台发出其他调试命令，例如更改磁盘映像和执行内存转储等。&lt;br /&gt;
&lt;br /&gt;
===QEMU控制台===&lt;br /&gt;
&lt;br /&gt;
QEMU的内部控制台可以通过QEMU内的组合键 &amp;lt;tt&amp;gt;CTRL-ALT-3&amp;lt;/tt&amp;gt; 访问。&lt;br /&gt;
&lt;br /&gt;
与 [[Bochs]] 不同，QEMU不提供直接与其内部控制台通信的 [[端口IO | IO端口]]。 输出到内部控制台可以通过串行输出的重定向来完成。 使用以下命令行选项将把COM1的输出重定向到QEMU控制台: &amp;lt;source lang = &amp;quot;bash&amp;quot;&amp;gt; -串行文件: CON &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===QEMU监视器===&lt;br /&gt;
&lt;br /&gt;
{{Main|Qemu Monitor}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
QEMU具有自己的内部 “监视器” 控制台，用于调试guest操作系统。 通过各种命令，监视器允许您检查正在运行的来宾OS，更改可移动介质和USB设备，拍摄屏幕截图和音频抓取以及控制虚拟机的各个方面。 可以通过QEMU内的组合键 &amp;lt;tt&amp;gt;CTRL-ALT-2&amp;lt;/tt&amp;gt; 访问监视器。&lt;br /&gt;
&lt;br /&gt;
调用QEMU时，可以使用以下命令行选项将QEMU的监视器输出重定向到stdio: &amp;lt;source lang = “bash”&amp;gt; -monitor stdio &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
一些有用的命令:&lt;br /&gt;
; xp : eXamine Physical memory.  Much like GDB's &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; command, but with no address translation.&lt;br /&gt;
; cpu n : switch to CPU n.  Note that GDB's threads are numbered from 1, but QEMU's CPUs are numbered from 0.&lt;br /&gt;
; info registers : dump register state&lt;br /&gt;
; info tlb : Show virtual memory translation state.&lt;br /&gt;
; info mem : Show the page table mappings in a compact form.&lt;br /&gt;
; help : List all commands -- keep in mind that there may be more commands available than those mentioned in the [http://www.qemu.org/qemu-doc.html#SEC12 QEMU documentation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
QEMU监视器功能的完整列表可在 [https://qemu.weilnetz.de/doc/qemu-doc.html#pcsys_005fmonitor 官方文档] 以及 [https://en.wikibooks.org/wiki/QEMU/Monitor 在此处] 找到。&lt;br /&gt;
&lt;br /&gt;
==有用的QEMU命令行选项==&lt;br /&gt;
&lt;br /&gt;
”下面显示了QEMU的命令行选项列表，这些选项对操作系统开发具有特殊意义。 有关选项的完整列表，请参阅 [https://qemu.weilnetz.de/doc/qemu-doc.html QEMU官方文档]。''&lt;br /&gt;
&lt;br /&gt;
{| {{wikitable}}&lt;br /&gt;
|-&lt;br /&gt;
! Option&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;-no-reboot&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 防止QEMU在发生 [[三重故障]] 时重新启动。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;-no-shutdown&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 不要在guest关闭时退出QEMU，而是只停止仿真。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;-d&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 启用额外调试信息的打印。 Arguments for this option include &amp;lt;tt&amp;gt;cpu_reset, int, guest_errors&amp;lt;/tt&amp;gt; ( among others ). 当设置 [[IDT]] 以实时查看中断执行时，这可能非常有用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;-gdb&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;-s&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 在GDB Stub模式下启动QEMU。 这导致QEMU接受来自 [[GDB]] 客户端的传入连接。 有关更多信息，请参见下文或参考 [https://wiki.qemu.org/Documentation/Debugging 官方文档]。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;-S&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 导致guestCPU在启动时不开始执行。 这对于调试非常有用，因为它会在暂停状态下启动guest。 用户必须使用控制台 (或GDB) 中的 &amp;lt;tt&amp;gt;continue&amp;lt;/tt&amp;gt; 命令在guest系统上启动执行。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GDB-Stub==&lt;br /&gt;
&lt;br /&gt;
使用 &amp;lt;tt&amp;gt;-gdb&amp;lt;/tt&amp;gt; 或 &amp;lt;tt&amp;gt;-s &amp;lt;dev&amp;gt;&amp;lt;/tt&amp;gt; 命令行选项启动QEMU将指示QEMU侦听传入的 [[GDB]] 连接。 默认情况下，QEMU将在 &amp;lt;tt&amp;gt;localhost:1234&amp;lt;/tt&amp;gt; 上通过HTTP侦听连接，但是该选项将接受其他连接的参数。 将此开关与 &amp;lt;tt&amp;gt;-S&amp;lt;/tt&amp;gt; 选项一起使用很有用，这会导致QEMU在暂停状态下启动。 这将允许额外的时间来连接GDB客户端，以启动模拟需要在GDB或QEMU控制台中发出 &amp;lt;tt&amp;gt;continue&amp;lt;/tt&amp;gt; 命令。&lt;br /&gt;
&lt;br /&gt;
为方便起见，还可以创建一个包含命令的文件，供GDB自动执行。 GDB将读取并执行当前工作目录中名称为 &amp;lt;tt&amp;gt;.gdbinit&amp;lt;/tt&amp;gt; 的文件的内容。 或者，可以通过使用 &amp;lt;tt&amp;gt;-command = file&amp;lt;/tt&amp;gt; 命令行参数来指定不同的文件。下面可以看到一个示例文件:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;gdb&amp;quot;&amp;gt;&lt;br /&gt;
file &amp;lt;my-kernel-binary&amp;gt;&lt;br /&gt;
target remote localhost:1234&lt;br /&gt;
&lt;br /&gt;
# Inspect page tables&lt;br /&gt;
x /8wg &amp;amp;page_tables_start&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这将自动将内核二进制文件的符号文件加载到调试器中，然后打开与QEMU的远程连接。&amp;lt;br/&amp;gt;&lt;br /&gt;
确保使用包含调试符号的内核进行编译。这可以通过使用GCC选项 &amp;lt;tt&amp;gt;-g&amp;lt;/tt&amp;gt; 来实现。 如果发现调试器找不到本地变量，请尝试在编译过程中使用 &amp;lt;tt&amp;gt;-fno-omit-frame-pointer&amp;lt;/tt&amp;gt; 选项，或禁用优化。&lt;br /&gt;
&lt;br /&gt;
运行SMP内核时，&amp;lt;tt&amp;gt;info threads&amp;lt;/tt&amp;gt; 和 &amp;lt;tt&amp;gt;thread&amp;lt;/tt&amp;gt; 命令可用于提供有用的信息。 也可以使用GDB中的 &amp;lt;tt&amp;gt;monitor&amp;lt;/tt&amp;gt; 命令使用QEMU监视器及其命令。 有关可用命令及其描述的列表，请使用 &amp;lt;tt&amp;gt;monitor help&amp;lt;/tt&amp;gt; 命令。&lt;br /&gt;
&lt;br /&gt;
==获取详细日志==&lt;br /&gt;
&lt;br /&gt;
通过取消注释QEMU源文件中的某些预处理器指令，可以将其他调试信息输出到stdot。&lt;br /&gt;
&lt;br /&gt;
QEMU源代码中的某些文件具有以下形式的注释行:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
// #define DEBUG_*&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
使用定义的预处理器变量从源代码重新编译QEMU将导致来自适用文件的其他调试信息被打印到stdoout。&lt;br /&gt;
&lt;br /&gt;
==另见==&lt;br /&gt;
&lt;br /&gt;
===文章===&lt;br /&gt;
*[[QEMU and GDB in long mode]]&lt;br /&gt;
*[[QEMU_fw_cfg]] Pass strings and files into the VM from the QEMU command line&lt;br /&gt;
&lt;br /&gt;
===外部链接===&lt;br /&gt;
*[http://www.qemu.org/ QEMU homepage]&lt;br /&gt;
*[http://qemu-forum.ipi.fi/ QEMU forum]&lt;br /&gt;
*[https://en.wikibooks.org/wiki/QEMU QEMU Wikibook]&lt;br /&gt;
*[https://wiki.archlinux.org/index.php/QEMU#Creating_a_hard_disk_image QEMU at ArchWiki]&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulators]]&lt;br /&gt;
[[de:QEMU]]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>