andj4cn

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

  •  
  •   andj4cn · Jan 8, 2021 · 8313 views
    This topic created in 2127 days ago, the information mentioned may be changed or developed.

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

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

    显然 m1 cpu 只提供了虚拟化 arm 的功能, 没有提供虚拟化 x86 的功能. 因此运行 x86 虚拟机只能通过类似 qemu 的方式模拟.
    andj4cn
    andj4cn
    OP
    Jan 8, 2021
    12
    @leoleoasd 了解,本来是自己会玩一些涉及 x86 汇编的东西,看来是指望不上了 hhh
    andj4cn
    andj4cn
    OP
    Jan 8, 2021
    13
    @M1hahahaha 哈哈不至于不至于
    icyalala
    icyalala
    Jan 8, 2021
    14
    同楼上,x86 的虚拟化也是只能提供 x86 指令,要想跑 arm 程序,比如安卓模拟器,也都是指令翻译。
    mxalbert1996
    mxalbert1996
    Jan 9, 2021 via Android
    15
    @leoleoasd QEMU 在 host 和 target 的架构一样的时候也是用的硬件虚拟化。
    leoleoasd
    leoleoasd
    Jan 9, 2021
    16
    @mxalbert1996 #15 qemu 的硬件虚拟化是借助的 kvm 吧, 没记错的话单纯 qemu 应该就是软件虚拟🤔
    leoleoasd
    leoleoasd
    Jan 9, 2021
    17
    ```
    $ 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
    lp10
    Jan 9, 2021
    18
    code weavers 的 crossover 可以在 M1 上跑 x86 、x86_64 的 windows 程序,不过 linux 的还真不清楚…
    mxalbert1996
    mxalbert1996
    Jan 9, 2021 via Android
    19
    @leoleoasd 是的,默认启用,也没人会关吧。
    BrettD
    BrettD
    Feb 12, 2021
    20
    刚刚看到 QEMU 打了这个 Patch ( https://patchew.org/QEMU/[email protected]/)可以以几乎原生的性能跑 Windows 10 ARM 版,然后在 Windows 里转译运行 x86 程序。运行真 x86 版的 Windows 应该还是只能 QEMU 软件转译,就很慢了。
    BrettD
    BrettD
    Feb 12, 2021
    21
    上面的链接被 V2EX 解析乱了,再贴一遍:
    https://patchew.org/QEMU/[email protected]/
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1307 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 21:21 · PVG 05:21 · LAX 13:21 · JFK 16:21
    ♥ Do have faith in what you're doing.