《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 corellium.com/blog/linux-m1 「御坂弟弟」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

近日,Corellium CTO Chris Wade 宣布已经成功在 Mac mini M1 上启动 Ubuntu。

图片

从上周末起,Corellium 就开始发布他们在 Apple M1 上的 Linux 启动工作。现在,他们已经可以在 Mac mini M1 通过 USB 启动完整的 Ubuntu桌面。并且,Corellium 开发人员已经在 Linux 邮件列表中发表了该系列的 7 个补丁,这些是使 Linux 在当前的基于 Apple M1 ARM 的硬件上启动所需的最小更改。该系列补丁内容如下:

  • 支持内核中的 FIQ 中断。这对于 Apple SoC 上的计时器和 IPI 是必需的。
  • WFI 钩子。Apple 处理器不会在 WFI 上保持寄存器状态。因此,需要在 cpu_ops 中增加一种机制以使用自定义睡眠函数替代。
  • 在 Apple 处理器上使用 nGnRnE 而不是 nGnRE。
  • Apple AIC 驱动程序,用于 Apple AIC 中断控制器。
  • Apple CPU 启动驱动程序。在 Apple Mac 上,RVBAR 被引导加载程序锁定,而且硬件没有提供 PSCI 的 EL3 作为一种选择。

同时,邮件中也提到,DeviceTree 和 其它设备的驱动程序支持以及相关功能仍在研究中。

图片

尽管尚需一段时间才能对这些内容进行全面的检查,测试和发布,但是至少已经取得了良好的进展。不过,由于这相当于提出一个全新的 OpenGL / Vulkan 驱动程序栈,并且首先需要在 macOS 下进行所有逆向工程,因此期望在这些基于 ARM 的 Mac 上完全运行 Linux 系统仍然为时过早。

此外,可以在该仓库查看 Corellium 关于在 Apple M1 运行 Linux 内核的代码。Chris Wade 也发表博客介绍了他们移植 Linux 至 Mac mini M1 的过程。

文章目录