苹果在北京时间前天凌晨举办了 WWDC 2022 开发者大会,相信大家在这两天都看到了不少相关资讯,多多少少都知道苹果在 WWDC 上都公布了些什么内容。但日前一份提供给开发者的文档中,我们还得知了苹果在发布会上完全没有提及的内容。
在 WWDC 上苹果公布了 macOS 13 Ventura,macOS 13 的一个有趣的技术变化是能够在配备 Apple Silicon 的 Mac 电脑上使用苹果的 Rosetta 软件在 ARM Linux 虚拟机上运行的 Linux x86_64 软件(层层嵌套、十分拗口,可能需要读者多读两遍)。
Rosetta 是苹果为 macOS 提供的一个编译器软件,最初为苹果从 PowerPC 转向 Intel CPU 提供了助力。而在 2020 年 macOS 11.0 Big Sur 中内建的 Rosetta 2 则是苹果从 Intel CPU 向 ARM 转换的一个重要部分,可以让原本在 Intel 平台上开发的软件在 ARM 架构平台的 Mac 电脑上顺利运行,让用户可以顺利过渡。
在 macOS 13 及以后的版本且装有 Apple Silicon 芯片的 Mac 电脑上,虚拟化框架支持 ARM Linux 虚拟机(VM)中的 Rosetta。Rosetta 是一个转译过程,允许用户在 Apple Silicon 上运行包含 x86_64 指令的应用程序。在 macOS 中,这允许为基于英特尔的 Mac 电脑构建的应用程序在 Apple Silicon 上无缝运行;Rosetta 可以在 ARM Linux 虚拟机中为英特尔 Linux 应用程序提供同样的功能。
换句话说,当用户在使用 ARM Linux 虚拟机时,除了可以运行原本就支持的 ARM 架构软件,还可以获得强大且数量众多的 Linux x86_64 软件支持。
这种 Rosetta 访问是通过 macOS 虚拟化框架完成的,用户只能通过 ARM Linux 虚拟机使用 Linux x86_64 应用,并不允许用户直接在 Apple Silicon Mac 上使用 Linux x86_64 应用。同样在 macOS 之外的地方也是无法使用的 —— 也就是说,在非苹果的 ARM Linux 或者是在支持 M1 芯片的 Asahi Linux 上都无法使用 Rosetta。
关于这项技术的安装以及可用性测试可以参见苹果官方文档,目前还不清楚这个用于 Linux x86_64 的 Rosetta 在实践中的具体效果如何,以及它与类似用途的开源 Box86/Box64 和 FEX-Emu 解决方案相比,其性能和可靠性孰优孰劣。同样如果这项技术对图形程序也很有效,反过来还有可能让用户在 Apple Silicon 上间接运行 Linux 游戏。
本文转自OSCHINA
本文标题:macOS 13 支持转译 Linux x86_64 应用程序,使用条件苛刻
本文地址:https://www.oschina.net/news/198998/macos-13-use-rosetta-in-arm-linux-vms