andj4cn
V2EX  ›  MacBook Pro

M1 版 Mac 有没有可能做出运行 x86_64 虚拟机的解决方案

By andj4cn at 2021 年 1 月 8 日 · 8149 次点击

如题,工作需要 Linux,如果可以有解决方案的话还是想期待以下 ARM 的 Mac,例如 VirtualBox 和 Vmware 对 x86_64 虚拟化支持。( QEMU 就算了,性能有点拉跨)

21 条回复  •  2021-02-12 06:07:31 +08:00
irytu
   1
irytu  
   2021 年 1 月 8 日 via iPhone
x86_64 那不叫虚拟化了吧 那得叫模拟
zhoushengyue
   2
zhoushengyue  
   2021 年 1 月 8 日
装 Win10 ARM 版,现在已经支持转译运行 x64 应用了,两层虚拟以后性能也还算过得去,起码比高通 SQ 的强
andj4cn
   3
andj4cn  
OP
   2021 年 1 月 8 日
@irytu 模拟的话就 QEMU 了 :( 性能拉跨
irytu
   4
irytu  
   2021 年 1 月 8 日 via iPhone
@andj4cn 不同指令架构下我理解没有虚拟化这个说法 只存在模拟的概念 qemu 性能拉胯是因为在这种场景下完全是 soft emulate 的 因为没办法利用 kvm 等技术 qemu 在同架构下并且 host CPU 支持虚拟化的情况下才能发挥性能优势
SingeeKing
   5
SingeeKing  
   2021 年 1 月 8 日
我觉得可以,毕竟 docker 可以,但性能绝对是个问题
felixcode
   6
felixcode  
PRO
   2021 年 1 月 8 日 via Android
x86 平台为兼容长期付出的代价不是虚拟化软件能解决的。
secondwtq
   7
secondwtq  
   2021 年 1 月 8 日 via iPhone
不如期待下这个 https://asahilinux.org
secondwtq
   8
secondwtq  
   2021 年 1 月 8 日 via iPhone
而且你工作需要 Linux 又不一定非得是 x86 的 Linux……
M1hahahaha
   9
M1hahahaha  
   2021 年 1 月 8 日
为了 M1,把这工作辞了
qa63842
   10
qa63842  
   2021 年 1 月 8 日 via Android
arm 可以模拟 x86,但是貌似暂时只支持 32 位的,骁龙 850 干过这事
leoleoasd
   11
leoleoasd  
   2021 年 1 月 8 日
virtualization 和 emulation 不一样
qemu 那种是, 软件模拟指令集
而 vmware / kvm 的是调用 cpu 硬件提供的功能来进行虚拟化

显然 m1 cpu 只提供了虚拟化 arm 的功能, 没有提供虚拟化 x86 的功能. 因此运行 x86 虚拟机只能通过类似 qemu 的方式模拟.
andj4cn
   12
andj4cn  
OP
   2021 年 1 月 8 日
@leoleoasd 了解,本来是自己会玩一些涉及 x86 汇编的东西,看来是指望不上了 hhh
andj4cn
   13
andj4cn  
OP
   2021 年 1 月 8 日
@M1hahahaha 哈哈不至于不至于
icyalala
   14
icyalala  
   2021 年 1 月 8 日
同楼上,x86 的虚拟化也是只能提供 x86 指令,要想跑 arm 程序,比如安卓模拟器,也都是指令翻译。
mxalbert1996
   15
mxalbert1996  
   2021 年 1 月 9 日 via Android
@leoleoasd QEMU 在 host 和 target 的架构一样的时候也是用的硬件虚拟化。
leoleoasd
   16
leoleoasd  
   2021 年 1 月 9 日
@mxalbert1996 #15 qemu 的硬件虚拟化是借助的 kvm 吧, 没记错的话单纯 qemu 应该就是软件虚拟🤔
leoleoasd
   17
leoleoasd  
   2021 年 1 月 9 日
```
$ qemu-kvm --help | grep no-kvm
-no-kvm disable KVM hardware virtualization
-no-kvm-irqchip disable KVM kernel mode PIC/IOAPIC/LAPIC
-no-kvm-pit disable KVM kernel mode PIT
-no-kvm-pit-reinjection
```
看样子是默认启用了 kvm 而已, 可以关闭, 关闭后就是软件虚拟化了
@mxalbert1996 #15
lp10
   18
lp10  
   2021 年 1 月 9 日
code weavers 的 crossover 可以在 M1 上跑 x86 、x86_64 的 windows 程序,不过 linux 的还真不清楚…
mxalbert1996
   19
mxalbert1996  
   2021 年 1 月 9 日 via Android
@leoleoasd 是的,默认启用,也没人会关吧。
BrettD
   20
BrettD  
   2021 年 2 月 12 日
刚刚看到 QEMU 打了这个 Patch ( https://patchew.org/QEMU/[email protected]/)可以以几乎原生的性能跑 Windows 10 ARM 版,然后在 Windows 里转译运行 x86 程序。运行真 x86 版的 Windows 应该还是只能 QEMU 软件转译,就很慢了。
BrettD
   21
BrettD  
   2021 年 2 月 12 日
上面的链接被 V2EX 解析乱了,再贴一遍:
https://patchew.org/QEMU/[email protected]/
© 2026 V2EX · 44ms · 3.9.8.5