相关问题:Windows 10 自带 WSL,那么 Linux 什么时候可以自带 Windows 子系统??www.zhihu.com
相关问题:
其实很简单,Apple不授权第三方开发提供3D加速功能的显示驱动程序,也不放出相关的DDK。这样虚拟机下就只能用CPU模拟渲染界面,在几乎所有现代操作系统都需要利用3D API渲染界面的现在,能不卡顿吗?
虚拟化主要有几个形式:
macOS/Windows 都是常见的桌面操作系统. 评价一个桌面操作系统的流畅度主要有以下指标:
一般来说 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 虚拟机了.
参见
Luv Letter:将双系统塞入A4主机:OSX-KVM 显卡直通教程?zhuanlan.zhihu.com
其实Linux下真的可以有流畅的mac虚拟机,我用kvm+pci passthrough跑macos跑的可欢了,不比物理机慢多少,大型3d游戏一样跑。
具体步骤参见 https://github.com/kholia/OSX-KVM
苹果从法律上禁止把 MACos 装在非苹果产的硬体上,你认为软体公司会冒著这个风险去开发虚拟化 MACos 的优化方案?
(我有点好奇他们用什么机器去 build MACos 的……总不能真的用一大堆 ImAC pRO 吧)
直接原因是没有厂商开发,就算在virtualbox或者vmware运行了虚拟机也会因为没有显卡支持而特别卡。那为什么连linux都会给支持图形加速而macOS不行呢?难道是喜欢用linux图形界面工作的用户很多,比macOS的多?
根本原因还是macOS只被允许在Apple的硬体上运行的,在非苹果硬体上跑macOS是违反EULA的。因此各路厂商是不敢公开支持macOS虚拟机的
按照EULA,如果你在虚拟机里运行macOS,也只有在Apple硬体上才是被许可的,