苹果M1芯片版的Mac已可运行Linux系统

自从Apple推出使用其新的高性能ARM芯片的新Mac之后 , 第三方软件开发人员就一直不停尝试 , 试图在新硬件上启动和运行可替代的操作系统 。上个月初 , 一些开发人员在M1Mac上启动了Windows10和FedoraLinux虚拟机 , 但是这并不算操作系统的替代使用 。在开发M1Mac替代操作系统中 , 获得最大突破是专门从事ARM设备虚拟机的公司Corellium的团队 。该团队设法移植了Linux , 并使其在M1MacMini上“完全可用” 。
新的Linux端口使得Ubuntu首次在Apple的M1Macs运行 。Corellium已成功将Ubuntu移植到M1Macs上 , 并发布了一个教程供其他人遵循 。修改后的Ubuntu版本启动后会加载到常规用户界面中 , 并包括USB支持 。
尽管M1芯片和Apple的其他芯片共享着很多组件 , 但它是非标准化的 , 因此创建Linux驱动程序以确保Ubuntu正常运行并不容易 。
苹果公司在设计M1Mac时并未考虑到双系统或替代系统 。苹果公司软件工程高级副总裁CraigFederighi此前曾指出官方无意支持以本地方式启动其他操作系统 , 例如Windows或Linux 。虚拟机看似是苹果公司建议用户使用其它操作系统的唯一方法 , 但这并没有阻止人们创建自己的端口 。
苹果M1芯片版的Mac已可运行Linux系统
文章插图
HectorMartin是一个常常将Linux在各种硬件上运行的开发人员 , 他也正试图将Linux移植到M1Macs上 。这些开发人员大多被苹果M1芯片提供的性能优势吸引 , 在基于ARM的MAC上运行Linux想必是无声的 。“可以运行Linux的ARM笔记本电脑已经让我期待很久了 , ”Linux创造者LinusTorvalds在11月表示 , “除了操作系统外 , 新版的苹果Air几乎是完美的 。”
Corellium发文
Corellium首席技术办公室ChrisWade昨天在Twitter上宣布了团队工作的最新进展 。他在博客上写道:“研究苹果M1 , 不仅是为了创造新的Linux端口 , 这也是我们安全研究的一部分 。”
该博客文章提供了Corellium在此过程中克服的诸多障碍 , 包括处理Apple的SoC是如何创建更多CPU内核的 , 处理Apple专有的中断控制器等等 。除此之外 , Corellium还添加了预加载器 , 该预加载器充当Linux的包装程序 , 并作为启动处理器内核的缓冲 。
这篇文章包括在M1Mac上安装Ubuntu的教程 , 还有一个Github存储库(corellium/linux-m1) , 用户可以从中下载 。按照这些步骤操作 , 用户最终可以直接从USB启动操作系统 。但是 , 目前距离BootCamp风格的双系统还有很长的路要走 。即使Corellium团队已经公布了教程 , 但其所需的步骤仍比大多数用户想像的更为复杂 , 所以不建议普通用户把它作为日常驱动程序 。
“这个新端口在MacMiniM1上“完全可用” , 并且可以通过USB启动完整的Ubuntu桌面 。”Corellium的首席技术官ChrisWade称 , “但是 , 用户将需要一个USB-C加密狗才能使网络正常工作 , 并且运行端口需要对Linux和自定义内核有所了解 。Corellium近期会发布有关该过程的教程 。”
技术细节
苹果公司设计了自己的控制器 , 该控制器超出了通常的ARM通用中断控制器(GIC)标准 。定时器中断被导向快速中断请求(FIQ) , 这不是标准化程序 , 反映了较旧的32位ARM系统 。Corellium团队称 , 必须提供一组处理器间中断(IPI)才能使多个处理器进行通信 。
Corellium团队具有处理FIQ支持的经验 , 并早已为Apple的大多数非标准方法做好了准备 。它的处理方法之一是 , 添加一个预加载程序 , 充当Linux的包装程序 , 从而导致OS在M1处理器上启动 。
该小组没有用于M1Mac的接口 , 因此不得不寻找替代输入路线 。在蓝牙、USB主机和PCIe上的xHCIUSB主机中 , 他们选择了USB主机并与I2C上的芯片进行交互 。
建立正确的USB连接后 , 他们可以连接键盘 , 鼠标和闪存驱动器 。这为运行正常的桌面Linux发行版提供了可能性 。
【苹果M1芯片版的Mac已可运行Linux系统】团队经验
Corellium在解决Apple操作系统保护方面有一些经验 。此前它为安全研究人员提供了虚拟iPhone , 以帮助进行漏洞探索 。这一举动激怒了苹果 , 使得它于2019年8月以版权为由向Corellium提起诉讼 。苹果后来在2020年1月指控Corellium违反了数字千年版权法案(DMCA) , 而法官在12月驳回了其侵犯版权的控告 。关于其他数字千年版权法案指控的裁决已被推迟 。
Corellium此次利用其开发Sandcastle项目的经验 , 编写用于新AppleSoC的Linux驱动程序 。幸运的是 , Apple正式允许在AppleSiliconMacs上引导自定义内核 , 因此替换程序开发者们无需利用漏洞来导向内核 。与其他64位ARMSoC相比 , AppleSilicon的固件接口和启动过程非常不同 。经过一些工作 , Corellium团队设法增加了对足够硬件接口的支持 , 从而成功在M1MacMini上引导LinuxUbuntu 。
安装教程
用户可以下载Corellium共享的有关如何启动Ubuntu的说明 。关于此说明 , 简单概括 , 首先需要下载其实时映像(从用于RaspberryPi的ARM64Ubuntu构建中稍作修改) , 然后将映像复制到外部USB驱动器(需要至少16GB的容量) , 将USB驱动器连接到MacMini的USB-C端口 , 启动进入初始操作系统界面 , 安装自定义内核(Corellium提供了安装脚本) , 最后使用默认凭据登录 。
Corellium也称 , 安装过程不是很友好 , 因此不建议初学者在MacMini上使用Linux 。此外 , M1的机器学习核心没有GPU加速或支持 , 因此不要企图在新系统上玩游戏或运行机器学习任务 。但对于PC硬件和Linux的发烧友来说 , 这仍然是个令人振奋的消息 。此外 , Linux创造者LinusTorvalds也称 , AppleSiliconMacBooks所提供的性能和电池寿命是首屈一指的 , 因此它们非常适合进行实时编程 。
责任编辑:tzh
.dfma {position: relative;width: 1000px;margin: 0 auto;}.dfma a::after {position: absolute;left: 0;bottom: 0;width: 30px;line-height: 1.4;text-align: center;background-color: rgba(0, 0, 0, .5);color: #fff;font-size: 12px;content: "广告";}.dfma img {display: block;}
苹果M1芯片版的Mac已可运行Linux系统
文章插图

    推荐阅读