百科问答小站 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 9x的存储控制器驱动程序是怎么样的? 
  苹果是PC品牌么? 
  网卡是硬件设备,那为什么安装了linux虚拟机,会自带网卡呢,安装虚拟机不是完完全全的软件操作吗? 
  为什么Windows更新需要多次重启?而Linux不需要? 
  为什么桌面领域没有一款 Linux 或 UNIX 能与 Windows 鼎足而立? 
  为什么 Windows 95 推出后占据了绝大多数市场份额? 
  Java 平台中的 JVM 和 .Net 平台下的 CLR 分别是用什么语言写的? 
  怎样禁止mac工作区自动更换位置顺序? 
  「杀毒软件之父」75 岁约翰·迈克菲死于西班牙监狱中,他做出了哪些贡献,如何评价他的一生? 
  学习 iOS 开发,刚准备起步,需要立即买 Mac 吗? 

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





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