反向Rosetta 来了:Maclator 让Intel 老Mac 与黑苹果运行arm64 App

大多数的人应该都知道MacBook 因为用料好、设计优良,用超过十年只换过电池而且还正常服役的机子大有人在,但随着苹果全面转向M 系列晶片后,越来越多的软体就不支援Intel 处理器的老苹果(含黑苹果),不过最近有一个开源专案「Maclator」,定位就是「反向Rosetta」:让Intel Mac 或黑苹果电脑可以跑arm64 的macOS 应用程式。

苹果的Rosetta 2 是让Apple Silicon 跑Intel 程式,Maclator 反过来,让x86 的Intel Mac 跑arm64 程式。它载入arm64 的Mach-O,搭配原生的arm64 macOS 用户态环境执行,底层是直译器加x86-64 即时编译,再配AOT 快取。系统呼叫与Mach trap 能直通就交给Intel 宿主核心,语意对不上的地方再模拟,Metal 呼叫则桥接到Intel Mac 自己的GPU。

直译器打底,JIT 热了才编

Maclator 的执行核心分两层。底层是一套AArch64 参考直译器,覆盖资料处理、载入储存、SIMD 含FP16,是语意正确性的基准。上层是用iced-x86 写的x86-64 即时编译,冷区块先直译,执行超过24 次才转成原生码,区块连结用可修补槽加每执行绪间接分支快取。直译器不只是备胎,JIT 遇到没实作的指令会逐条退回直译执行。跑过一次的翻译结果存在AOT 持久快取,下次启动直接沿用,Electron 这种函式库大户第二次开明显变快。

系统呼叫层走混合路线。 BSD 系统呼叫与Mach trap 语意对得上就直通宿主核心,对不上再模拟,libdispatch 的工作伫列、workloop 与kevent 也自己仿了一套。[4]子行程生成也接得上,arm64 的Mach-O 会自动用Maclator 重新启动并继承参数。 IOKit 只垫了最小的壳,假装提供Apple Silicon 限定的诊断服务,这也是多数硬体相关App 跑不起来的根因。

法律设计颇为谨慎。专案本身不含任何Apple 二进位档,arm64 的用户态环境要使用者自己从Apple 更新伺服器经ipsw 下载,授权责任自负。

战绩:VS Code 可打字,Chromium 吃到硬加速

作者在Intel Core i5-4440、macOS 26.7 的老机器上验证出一份清单。 arm64 命令列工具如fastfetch、neatvi 可跑,自带的AppKit 计算机可跑,VS Code 1.139 arm64 版可跑,打字延迟约40 毫秒。最亮眼的是Chromium 157 arm64 快照版,经ANGLE 与Metal 桥接吃到本机AMD Radeon RX 460 的硬体加速,canvas 60fps,WebGL 与WebGPU 全通。 balenaEtcher 2.1.7 能启动,装置存取还没测。

跑不起来的清单也很诚实:音讯、多数IOKit 硬体、沙盒App、Swift 重度的苹果自家App、CAMetalLayer 系App 都还不行。作者在README 置顶标示实验性研究专案,预告用起来边角粗糙是正常的。

GPU 桥接从10fps 最佳化到60fps

GPU 桥接是这个专案最硬核的部分。做法是在客端注入arm64 的拦截函式库,把Metal 建装置呼叫换成代理物件,再经由自订系统呼叫把指令送到宿主的x86-64 桥接函式库执行真正的Metal。客与宿主共用同一个位址空间,顶点与缓冲指标可以直接传,不用拷贝。第一版走plist 逐讯RPC,动画canvas 只能跑10fps,97% 的时间卡在单一呼叫的描述子解析。第二版改成批次快径,同场景直接冲上vsync 上限60fps,400 个圆弧同屏也不掉帧。

效能文件记下VS Code 的调校轨迹。初期敲键后画面要600 至1400 毫秒才更新,现在压到约100 毫秒,按键分派约39 毫秒,冷启动到闲置从4.5 分钟缩到80 秒。立功的是原子操作与NEON 向量指令的原生JIT、V8 频繁改写程式码时的精准失效、更大的分支快取,以及Electron 函式库的AOT 持久化。测试机只是Haswell i5 加12GB 记忆体,数字就是在这种老硬体上量的。

从闭源套娃到开源,半个月走完

作者Signal_Reference746 半个月前在r/hackintosh 发文,当时Maclator 还是闭源,只能跑Rosetta 套Maclator 的套娃,连GUI 都起不来,目标是年底跑起NetSurf 浏览器。当时他不敢开源,怕大家clone 下去发现和想像差太多。两周后专案开源,有人做了GUI 版,支援多开arm64 App,还有人补上macOS 15 支援。从套娃实验到VS Code 可用,前后不到一个月。

开发流程也有章法。安装要Intel Mac 跑macOS 26 Tahoe,加Xcode 命令列工具与Rust 工具链,约10GB 磁碟空间,首次下载5.5GB 的arm64 共享快取。文件相当齐全,架构、GPU 桥接、效能实测、除错各有一份独立文件,连效能测试与JIT 差分自测工具都附在储存库里。

B 站有人实测LM Studio 能正常跑起来,后续进展值得期待,尤其是使用高阶X86 电脑跑黑苹果的使用者:

结语

Maclator 证明反向Rosetta 不是空想,Chromium 硬加速跑起来的那一刻,Intel 老Mac 的寿命就多了一种演算法。但它仍是研究型专案,音讯与沙盒两关没过之前,日常主力还轮不到它。对黑苹果与老机玩家来说,先star 再观望,是目前最务实的姿势。

赞 (0)
摩榜哥摩榜哥

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注