百科问答小站 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 10 20H1 又将可能采用圆角矩形窗口设计了? 
  为什么总有人看不惯Mac装Windows? 
  Surface 升级 Windows 10 后体验如何? 
  通过 Bochs 让高性能的 Android 手机流畅运行 Windows 虚拟机是否可行? 
  为什么 Windows 95 推出后占据了绝大多数市场份额? 
  微软宣布推出云操作系统Windows 365 ,对此你有什么期待? 
  为什么国内没有选用Mac OS X Server 作为服务器系统的? 
  计算机标准时间中“上午11:59”和“上午12:01”之间隔了多长时间?是否有bug? 
  为什么macos下的鼠标体验这么差? 
  Windows 的路径中表示文件层级为什么会用反斜杠 “”,而 UNIX 系统都用斜杠 “/”? 

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





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利