苹果的 rosetta 限制是基于技术还是商业上的考量?

2021-12-07 18:06:02 +08:00
 liuidetmks

为什么不让 arm64 的程序 load x86 的动态库呢 ?

毕竟有时候,第三方库支不支持 M1 这个开发者可控的。

2295 次点击
所在节点    Apple
14 条回复
emeab
2021-12-07 18:07:46 +08:00
我果黑都看不下去了.
jfdnet
2021-12-07 18:09:02 +08:00
果不果黑我都看不下去了 +1
sunny352787
2021-12-07 18:12:43 +08:00
要这么说,那算技术上的吧
kidonng
2021-12-07 18:13:18 +08:00
x86 (长者)会英语( Rosetta )才能和华莱士( arm )谈笑风生
felixcode
2021-12-07 18:16:36 +08:00
苹果为用户考虑,避免 x86 上的流氓软件破坏系统,所以才做这样的限制。
不然的话还不是分分钟的事。
狗头;)
f64by
2021-12-07 18:20:39 +08:00
有没有一种可能,是邪恶的 ARM 公司为了打压 x86 生态,拒绝在硬件层面支持 x86 动态库的加载呢?
thevita
2021-12-07 18:26:16 +08:00
因为 rosetta 只是一个过渡方案, 早晚废弃,与其花大力气搞 rosetta 还不如督促开发者尽快 native

总的来说, 都有,1: 支持进程内转意义,即便不是完全不可能,在目前 rosetta 的架构下也相当难, 2: ROI 太小, 犯不着.
lakehylia
2021-12-07 18:27:21 +08:00
管你是不是友军,我的 30 米大刀已经拔出来了,接招吧,骚年。
agagega
2021-12-07 18:29:51 +08:00
用 Rosetta 翻译动态库,涉及到的重定位问题想想就坑多…
zhzy0077
2021-12-07 18:33:08 +08:00
可不能乱黑 隔壁为了兼容 Office 和 PS 的旧插件 特地做了 ARM64EC https://blogs.windows.com/windowsdeveloper/2021/06/28/announcing-arm64ec-building-native-and-interoperable-apps-for-windows-11-on-arm/

使用 ARM64EC 的程序可以直接调用 x86/64 的动态库
qq316107934
2021-12-07 18:34:10 +08:00
为啥一个好好的问题底下那么多阴阳怪气的,微软 arm64EC 的 ABI 就实现了 x86,arm 混用啊: https://docs.microsoft.com/zh-cn/windows/uwp/porting/arm64ec

个人觉得就是技术问题,Rosetta 是为了兼容老程序的,如果提供了指令集混用功能会影响整个迁移进程,可能会有钉子户。
thevita
2021-12-07 18:43:09 +08:00
提到这个,我赶快去看了下 龙芯 在做的 二进制翻译,他们的设计目标就不一样,不是作为过渡方案用的,甚至常用考虑尝试实现 多架构之间的互相翻译,在某些场景下,弱化 /消除 架构差异,而且他们做这个的一大 use case 就是 打印机驱动 ocx 插件,,应该可能会考虑??

不过 公开信息太少了

https://zhuanlan.zhihu.com/p/376679541
liuidetmks
2021-12-07 18:44:48 +08:00
@thevita 正好我看到新闻,uos 兼容了 2000 多打印机驱动了.
yinzhili
2021-12-08 09:18:39 +08:00
商业因素更多

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

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

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

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

© 2021 V2EX