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

2021-01-08 17:08:53 +08:00
 andj4cn

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

6512 次点击
所在节点    MacBook Pro
21 条回复
irytu
2021-01-08 17:14:06 +08:00
x86_64 那不叫虚拟化了吧 那得叫模拟
zhoushengyue
2021-01-08 17:16:46 +08:00
装 Win10 ARM 版,现在已经支持转译运行 x64 应用了,两层虚拟以后性能也还算过得去,起码比高通 SQ 的强
andj4cn
2021-01-08 17:19:27 +08:00
@irytu 模拟的话就 QEMU 了 :( 性能拉跨
irytu
2021-01-08 17:26:56 +08:00
@andj4cn 不同指令架构下我理解没有虚拟化这个说法 只存在模拟的概念 qemu 性能拉胯是因为在这种场景下完全是 soft emulate 的 因为没办法利用 kvm 等技术 qemu 在同架构下并且 host CPU 支持虚拟化的情况下才能发挥性能优势
SingeeKing
2021-01-08 17:35:38 +08:00
我觉得可以,毕竟 docker 可以,但性能绝对是个问题
felixcode
2021-01-08 20:30:55 +08:00
x86 平台为兼容长期付出的代价不是虚拟化软件能解决的。
secondwtq
2021-01-08 20:40:54 +08:00
不如期待下这个 https://asahilinux.org
secondwtq
2021-01-08 20:41:46 +08:00
而且你工作需要 Linux 又不一定非得是 x86 的 Linux……
M1hahahaha
2021-01-08 21:22:11 +08:00
为了 M1,把这工作辞了
qa63842
2021-01-08 21:41:20 +08:00
arm 可以模拟 x86,但是貌似暂时只支持 32 位的,骁龙 850 干过这事
leoleoasd
2021-01-08 23:08:06 +08:00
virtualization 和 emulation 不一样
qemu 那种是, 软件模拟指令集
而 vmware / kvm 的是调用 cpu 硬件提供的功能来进行虚拟化

显然 m1 cpu 只提供了虚拟化 arm 的功能, 没有提供虚拟化 x86 的功能. 因此运行 x86 虚拟机只能通过类似 qemu 的方式模拟.
andj4cn
2021-01-08 23:13:05 +08:00
@leoleoasd 了解,本来是自己会玩一些涉及 x86 汇编的东西,看来是指望不上了 hhh
andj4cn
2021-01-08 23:13:24 +08:00
@M1hahahaha 哈哈不至于不至于
icyalala
2021-01-08 23:15:37 +08:00
同楼上,x86 的虚拟化也是只能提供 x86 指令,要想跑 arm 程序,比如安卓模拟器,也都是指令翻译。
mxalbert1996
2021-01-09 10:46:30 +08:00
@leoleoasd QEMU 在 host 和 target 的架构一样的时候也是用的硬件虚拟化。
leoleoasd
2021-01-09 13:51:27 +08:00
@mxalbert1996 #15 qemu 的硬件虚拟化是借助的 kvm 吧, 没记错的话单纯 qemu 应该就是软件虚拟🤔
leoleoasd
2021-01-09 13:54:15 +08:00
```
$ 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
2021-01-09 16:00:40 +08:00
code weavers 的 crossover 可以在 M1 上跑 x86 、x86_64 的 windows 程序,不过 linux 的还真不清楚…
mxalbert1996
2021-01-09 17:52:27 +08:00
@leoleoasd 是的,默认启用,也没人会关吧。
BrettD
2021-02-12 06:06:45 +08:00
刚刚看到 QEMU 打了这个 Patch ( https://patchew.org/QEMU/20210120224444.71840-1-agraf@csgraf.de/)可以以几乎原生的性能跑 Windows 10 ARM 版,然后在 Windows 里转译运行 x86 程序。运行真 x86 版的 Windows 应该还是只能 QEMU 软件转译,就很慢了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/743085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX