M1 版 Mac 有没有可能做出运行 x86_64 虚拟机的解决方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
andj4cn
V2EX    MacBook Pro

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

  •  
  •   andj4cn 2021-01-08 17:08:53 +08:00 7486 次点击
    这是一个创建于 1787 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    显然 m1 cpu 只提供了虚拟化 arm 的功能, 没有提供虚拟化 x86 的功能. 因此运行 x86 虚拟机只能通过类似 qemu 的方式模拟.
    andj4cn
        12
    andj4cn  
    OP
       2021-01-08 23:13:05 +08:00
    @leoleoasd 了解,本来是自己会玩一些涉及 x86 汇编的东西,看来是指望不上了 hhh
    andj4cn
        13
    andj4cn  
    OP
       2021-01-08 23:13:24 +08:00
    @M1hahahaha 哈哈不至于不至于
    icyalala
        14
    icyalala  
       2021-01-08 23:15:37 +08:00
    同楼上,x86 的虚拟化也是只能提供 x86 指令,要想跑 arm 程序,比如安卓模拟器,也都是指令翻译。
    mxalbert1996
        15
    mxalbert1996  
       2021-01-09 10:46:30 +08:00 via Android
    @leoleoasd QEMU 在 host 和 target 的架构一样的时候也是用的硬件虚拟化。
    leoleoasd
        16
    leoleoasd  
       2021-01-09 13:51:27 +08:00
    @mxalbert1996 #15 qemu 的硬件虚拟化是借助的 kvm 吧, 没记错的话单纯 qemu 应该就是软件虚拟
    leoleoasd
        17
    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
        18
    lp10  
       2021-01-09 16:00:40 +08:00
    code weavers 的 crossover 可以在 M1 上跑 x86 、x86_64 的 windows 程序,不过 linux 的还真不清楚…
    mxalbert1996
        19
    mxalbert1996  
       2021-01-09 17:52:27 +08:00 via Android
    @leoleoasd 是的,默认启用,也没人会关吧。
    BrettD
        20
    BrettD  
       2021-02-12 06:06:45 +08:00
    刚刚看到 QEMU 打了这个 Patch ( https://patchew.org/QEMU/[email protected]/)可以以几乎原生的性能跑 Windows 10 ARM 版,然后在 Windows 里转译运行 x86 程序。运行真 x86 版的 Windows 应该还是只能 QEMU 软件转译,就很慢了。
    BrettD
        21
    BrettD  
       2021-02-12 06:07:31 +08:00
    上面的链接被 V2EX 解析乱了,再贴一遍:
    https://patchew.org/QEMU/[email protected]/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1277 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 16:43 PVG 00:43 LAX 08:43 JFK 11:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86