百科问答小站 logo
百科问答小站 font logo



为什么 macOS 上有流畅的 Windows 虚拟机,后者却没有流畅的 macOS 虚拟机? 第1页

  

user avatar   luv_letter 网友的相关建议: 
      


虚拟化主要有几个形式:

  • 软件虚拟化: 通过用户态的软件, 比如说 qemu 就是一个系列的软件虚拟化代表, 去虚拟化一定的硬件功能, 比如常见的网卡 e1000, SATA/IDE (块设备)控制器, USB 控制器, 标准输入设备, 音频设备, 2D显卡(FrameBuffer)这些 IO 设备通常都是通过这种模式实现的. 以及就是 CPU 虚拟化基本上不通过软件实现了, 除非需要跨架构或者用于实验, 比如基于 js 的一些虚拟机, 可以在浏览器内运行.
    • 半虚拟化: 相比于纯粹的软件虚拟化, 半虚拟化会更加利用宿主操作系统的功能, 比如 Windows 的 remoteFX+RDP 就能带来良好的标准输入/音频/画面输出性能, 以及把宿主的 D3D API 穿透进去. Linux 的代表就是 virtio, 包含了输入输出设备, 块设备驱动和 API 穿透(OpenGL).
  • PCIe 直通: 通过平台支持 IOMMU, 将 PCIe 的 MMIO 地址空间映射到虚拟机内, 这样虚拟机的内核就能直接接触到物理硬件, 这种方式性能最高.
    • SR-IOV: PCIe 直通通常只能让虚拟机独占一个硬件, 而 SR-IOV 就能让一个设备虚拟的物理功能(pf)出多个虚拟功能(vf), 所以再借助 IOMMU 就能把 vf 接进虚拟机, 获取原生级别的性能.

macOS/Windows 都是常见的桌面操作系统. 评价一个桌面操作系统的流畅度主要有以下指标:

  1. CPU 性能
  2. IO 性能
  3. 图形刷新率
  4. 输入延迟

一般来说 1/2 两点上, macOS/Windows 都是半斤八两, KVM 的话在 Windows 可以 passthrough, 而 macOS 就必须得开 feature set, 会有一定损失, 但是由于可以启用到 Penryn (但是实际上可以开启 AVX 这类特性)从而在 macOS 强制关闭 PTI, 一定程度上能够改善系统性能.

图形刷新率主要就是依赖显卡驱动. macOS 上的桌面虚拟化平台主要就是 Parallel Desktop/VMware Fusion/VBox. PD 最贵, 但是他家的显卡 API 虚拟化性能最好, VMware 的虚拟化性能马马虎虎过得去, VBox 就比较垃圾一点. 不过多多少少都有 3D 加速. 外加 Windows 桌面本身系统没有那么吃 GPU, 哪怕没有 3D 加速依旧能用.

Windows 要虚拟化 macOS 也只能利用 VMware/VBox 的 VESA 2D 驱动, 换句话说完全没有 3D 加速, 而且 macOS 又是一个桌面很吃 GPU 的系统, 卡爆完全能够理解.

输入延迟方面 PD 这样的虚拟机做了很多深入的优化, 我记得 PD 是有个内核驱动获取 raw input 然后直接通进 windows 以改善性能. 所以能够勉强打游戏.

Windows 的话只有 VMware/VBox 的软件虚拟化, 而且还是没有深入调优的那种, 只能凑合日常使用.


当然 Hyper-V 本身支持 SR-IOV/PCIe 直通, 虽然不如 KVM/ESXi 那套直观. 然而如何虚拟 macOS 的那个 OSK string 就是一个问题, 毕竟 Hyper-V 官方的那个平台不支持. 虽然说你可以通过 VMware/VBOX 换为 Hyper-V 的后端, 但是没人试过在这种情况下直通.

所以要流畅虚拟机, 就搞个 RX470, 最好有独立的 USB 控制器(ASMedia 就行, 或者把宿主的 Intel XHCI 控制器直接通进去), 这样就有流畅的 macOS 虚拟机了.

参见




  

相关话题

  Windows 笔记本有必要装 360 吗? 
  如何评价 Apple 在上海投放大量 「敬 Mac 背后的你」系列广告? 
  如何评价苹果 macOS Big Sur? 
  windows要求已数字签名的驱动程序? 
  如何让Windows 10系统桌面变得更好看? 
  Microsoft teams怎么截图? 
  从 Windows 95 开始一直在 shell32.dll 中存在的一个大树图标是出自哪里? 
  windows10下载vb6.0.exe安装包时为什么显示下载失败? 
  你最满意的10款 PC 软件是什么? 
  Windows 的路径中表示文件层级为什么会用反斜杠 “”,而 UNIX 系统都用斜杠 “/”? 

前一个讨论
为什么现在三星手机没有三方ROM了?比如MIUI,FLYME??
下一个讨论
想在美国自己装机,配件是在美国买还是回国买呢?





© 2025-04-19 - tinynew.org. All Rights Reserved.
© 2025-04-19 - tinynew.org. 保留所有权利