知识卡片
放弃"完美透明兼容",换来数量级的性能提升——半虚拟化的核心取舍
内容
Xen之前的虚拟化软件普遍追求让虚拟硬件表现得和物理硬件一模一样,客户操作系统完全不需要修改就能运行——这种”理想兼容性”背后是巨大的性能开销(运行时扫描代码、替换指令、软件模拟硬件协议)。Xen反其道而行:半虚拟化主动要求修改客户操作系统里那一小撮”难以虚拟化”的代码(对Linux只改了不到2%的代码),让操作系统直接感知自己运行在虚拟环境里、直接和虚拟化层通信,用一次性的、有限的修改成本,换来接近原生的性能。这提示一个通用的架构取舍判断:当”完全透明、零改动兼容”的追求本身正是性能瓶颈的根源时,主动放弃这个目标、承担一次可控的适配成本,可能比不断优化一个方向错误的模拟层更划算。
参考来源
《架构之美》第7章《Xen和虚拟化之美》