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

2020-11-11 13:05:29 +08:00
 Biwood
如果是虚拟机,最终软件的运行性能会不会比 x86 差很多?
如果是基于 iPadOS,那 x86 上的软件都需要移植才能用?(感觉可能性比较低)
苹果是怎么让两个软件生态统一到一起的?
2157 次点击
所在节点    macOS
18 条回复
DarkCat123
2020-11-11 13:08:48 +08:00
那 x86 上的软件都需要移植才能用 —— 对,没错。要不就是翻译。
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
2020-11-11 13:14:43 +08:00
macOS Big Sur 就是原生的呀
Biwood
2020-11-11 13:20:54 +08:00
@surfish #2
那现在跑在 x86 上的 Big Sur 就是换层皮喽,跟 ARM 版的是两个内核吧?
gggxxxx
2020-11-11 13:26:30 +08:00
这很难理解么?
big sur build 出两个版本,一个给 x86 机器装,一个给 arm 机器装。怎么扯到什么换皮什么虚拟.....
edinina
2020-11-11 13:30:55 +08:00
虚拟机还行。。。。
Biwood
2020-11-11 13:33:20 +08:00
@gggxxxx #5

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

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

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

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

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

我之前不知道苹果做过两种指令集的兼容工程,刚刚才了解到 XNU 内核,确实孤陋寡闻了。不过楼上回复我的人过于理所当然了,本来是希望找到一些更“硬核”的答案,结果还是我自己找到的。
Tink
2020-11-11 13:53:08 +08:00
@Biwood #7 谁告诉你跨平台操作系统要用虚拟化?
Biwood
2020-11-11 13:55:32 +08:00
这论坛真是一引就爆,别回了别回了,我错了各位大佬们
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
2020-11-11 15:05:45 +08:00
这个 append 没有意义啦,其实前 3 楼回复你了

话说……楼主在 7 层和 13 层嘲讽,被人怼回来了就说 “这论坛真是一引就爆说”,哈哈哈
Biwood
2020-11-11 16:31:24 +08:00
@FlyingShark
我在 11 楼和 append 里说明了我的疑问和回答,其实本质上我还是想知道更底层一点的东西,比如“混合内核”这种东西,这对我来说是有意义的,对你们来说可能根本没理解我想说的东西。
当然我确实对上面钻牛角尖和跑偏的有点不满意,毕竟这里苹果粉丝真的多,发这帖子还得小心翼翼点😅

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

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

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

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

© 2021 V2EX