知识卡片

半虚拟化用放弃完全兼容换取显著的性能提升

普通读书笔记卡 · 1809.b

内容

Xen之前的虚拟化软件普遍追求让虚拟硬件看起来完全像物理硬件,代价是要模拟每条指令,开销大。Xen反其道而行:改掉操作系统里难以虚拟化、代价高的部分,替换成直接和虚拟化层沟通的专用调用(半虚拟化)。Xen团队只改不到2%的Linux内核代码,换来接近原生性能且不影响用户程序。完全兼容和高性能之间存在真实取舍。

参考来源

- 位置:《架构之美》第7章《Xen和虚拟化之美》7.3节《虚拟化的挑战》及7.4节《半虚拟化》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0163.xhtml, part0164.xhtml) - 结论依据:原文明确"在Xen之前,大多数虚拟化软件打算使虚拟硬件看起来完全像物理硬件……虽然这具有理想的兼容性,但在性能上有很大的开销。当发布Xen时,它表明,通过放弃理想的兼容性,性能会显著地提高",并给出"对Linux内核只修改或增加2995行代码……这连x86 Linux代码的2%都不到"的具体数据。 - 原始内容:在Xen之前,大多数虚拟化软件打算使虚拟硬件看起来完全像物理硬件……通过放弃理想的兼容性,性能会显著地提高……对Linux内核只修改或增加2995行代码,就可以使它能够在Xen上运行:这连x86 Linux代码的2%都不到。