V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Biwood
V2EX  ›  macOS

ARM 上的 macOS Big Sur 是跑在虚拟机上吗,还是基于 iPadOS 的扩展版?

  •  
  •   Biwood · 2020-11-11 13:05:29 +08:00 · 2260 次点击
    这是一个创建于 1500 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果是虚拟机,最终软件的运行性能会不会比 x86 差很多?
    如果是基于 iPadOS,那 x86 上的软件都需要移植才能用?(感觉可能性比较低)
    苹果是怎么让两个软件生态统一到一起的?
    第 1 条附言  ·  2020-11-11 13:48:03 +08:00

    答案是苹果自家的XNU内核,可以结贴了

    DarkCat123
        1
    DarkCat123  
       2020-11-11 13:08:48 +08:00
    那 x86 上的软件都需要移植才能用 —— 对,没错。要不就是翻译。
    surfish
        2
    surfish  
       2020-11-11 13:13:15 +08:00
    原生,x86 应用通过 rosetta 2 兼容,就跟当初转到 Intel 一样的 Universal App 吧

    https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment
    BrettD
        3
    BrettD  
       2020-11-11 13:14:43 +08:00 via iPhone
    macOS Big Sur 就是原生的呀
    Biwood
        4
    Biwood  
    OP
       2020-11-11 13:20:54 +08:00
    @surfish #2
    那现在跑在 x86 上的 Big Sur 就是换层皮喽,跟 ARM 版的是两个内核吧?
    gggxxxx
        5
    gggxxxx  
       2020-11-11 13:26:30 +08:00 via iPhone
    这很难理解么?
    big sur build 出两个版本,一个给 x86 机器装,一个给 arm 机器装。怎么扯到什么换皮什么虚拟.....
    edinina
        6
    edinina  
       2020-11-11 13:30:55 +08:00 via Android
    虚拟机还行。。。。
    Biwood
        7
    Biwood  
    OP
       2020-11-11 13:33:20 +08:00
    @gggxxxx #5

    “一个给 x86 机器装,一个给 arm 机器装”,你说的好轻松啊... 跨平台的操作系统怎么着都得用到虚拟化技术什么的吧
    eGlhb2Jhb2Jhbw
        8
    eGlhb2Jhb2Jhbw  
       2020-11-11 13:34:06 +08:00
    Debian 有 arm,也有 x86,按你的理论,谁是谁的换皮?

    苹果发布会说了,新的 universal App 会编译成一个包,其中包含两种架构的一个应用,所以两种架构都可以使用。
    eGlhb2Jhb2Jhbw
        9
    eGlhb2Jhb2Jhbw  
       2020-11-11 13:35:59 +08:00
    @Biwood #7 跨平台操作系统的定义是什么?现有的跨平台操作系统有哪些?谁用到了虚拟化技术在系统级?
    nguoidiqua
        10
    nguoidiqua  
       2020-11-11 13:41:14 +08:00   ❤️ 1
    就是编译不同处理器的机器码罢了,你连计算机的基础知识都不知道,问这些也是空中楼阁。

    打个比方说吧,这就是把同一份文件翻译成不同国家的语言,不同指令集的处理器用的机器语言不同。
    Biwood
        11
    Biwood  
    OP
       2020-11-11 13:46:22 +08:00
    @eGlhb2Jhb2Jhbw #8
    @nguoidiqua #10

    各位别激动,我只是好奇而已,正因为了解 ARM 的精简指令集与 x86 复杂指令集的差异我才会问这个问题。

    我说的“换皮”,是指认为旧版 macOS 指针对 x86 指令集开发,所以升级后的测试版只能换皮,并不知道苹果是否已经做过指令集的兼容。
    kanezeng
        12
    kanezeng  
       2020-11-11 13:47:12 +08:00
    @Biwood 不是所有同时在不同平台上推出的软件都是跨平台开发啊。尤其是讲究性能的场景,内核都会原生单起一套的。好比一个游戏同时发布 PS4/Xbox/Switch 版本,会有公用的部分,但是很多还是需要针对各自平台单独编码。不会说先开发个 PS4,然后在 Xbox 和 Switch 上用虚拟化去跑啊。
    Biwood
        13
    Biwood  
    OP
       2020-11-11 13:50:40 +08:00
    @kanezeng #12

    我之前不知道苹果做过两种指令集的兼容工程,刚刚才了解到 XNU 内核,确实孤陋寡闻了。不过楼上回复我的人过于理所当然了,本来是希望找到一些更“硬核”的答案,结果还是我自己找到的。
    Tink
        14
    Tink  
       2020-11-11 13:53:08 +08:00
    @Biwood #7 谁告诉你跨平台操作系统要用虚拟化?
    Biwood
        15
    Biwood  
    OP
       2020-11-11 13:55:32 +08:00
    这论坛真是一引就爆,别回了别回了,我错了各位大佬们
    yyfearth
        16
    yyfearth  
       2020-11-11 14:24:26 +08:00
    @Biwood 这个很难吗 Windows 也有 x64 x86 和 ARM 版本啊 都是原生运行的啊
    macOS 肯定也是一样的啊 build 两个版本有什么问题吗?

    app 都可以做成 Universal,系统当然没问题啊
    所以你猜测的基本上都是错的

    1 不是虚拟机 是和 iOS/iPadOS 一样原生在 ARM 上跑的
    2 不是基于 iPadOS 就是基于 macOS 反正内核都可以支持 x64 和 ARM
    3 生态统一 并不完全:
    a 要求新出得 app 尤其是 app store 的 mac app 都是 Universal App 也就是 build 两个版本 这个苹果之前做过
    b 对于老的 x64 app 用 rosetta 2 转译 这个苹果之前也做过
    c 对于 iOS/iPadOS App 可以直接运行 这个就像在 Linux/ChromeOS 上面运行 Android App 类似 不过不需要虚拟机 可以原生运行
    FlyingShark
        17
    FlyingShark  
       2020-11-11 15:05:45 +08:00   ❤️ 2
    这个 append 没有意义啦,其实前 3 楼回复你了

    话说……楼主在 7 层和 13 层嘲讽,被人怼回来了就说 “这论坛真是一引就爆说”,哈哈哈
    Biwood
        18
    Biwood  
    OP
       2020-11-11 16:31:24 +08:00 via iPhone
    @FlyingShark
    我在 11 楼和 append 里说明了我的疑问和回答,其实本质上我还是想知道更底层一点的东西,比如“混合内核”这种东西,这对我来说是有意义的,对你们来说可能根本没理解我想说的东西。
    当然我确实对上面钻牛角尖和跑偏的有点不满意,毕竟这里苹果粉丝真的多,发这帖子还得小心翼翼点😅
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2786 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:17 · PVG 11:17 · LAX 19:17 · JFK 22:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.