Marcan正在为Apple Silicon Macs创建Linux(Patreon筹款活动)

2020-12-01 02:10:10

嗨!我是赫克托·马丁(Hector Martin)“ marcan”,我喜欢将Linux用于事物上-最近是在PS4上。苹果刚刚发布了一系列新的基于ARM的Apple Silicon Mac,它们摧毁了同类中的所有其他ARM机器。如果他们也可以运行Linux会不会很好?事实证明,他们可以,但是有人需要做这项工作。由于这些设备是全新的定制硅片,因此移植Linux以在其上运行是一项艰巨的任务。除了一项业余项目外,它还是一项全职工作。这是我需要您帮助的地方。成为赞助人后,您将允许我将这个项目作为我的主要工作,并花更多的时间做我的副项目。目的是使Apple Silicon Mac上的Linux支持不仅达到技术演示的目的,而且实际上是您要在日常驱动程序设备上使用的OS。为此,有大量工作要做。在事物上运行Linux很容易,但要使其运行良好则很难。需要为所有设备编写驱动程序。完全自定义的Apple GPU的驱动程序是最复杂的组件,要拥有良好的桌面体验,这是必需的。为了使电池寿命合理,电源管理也需要工作良好。由于这是一个庞大的项目,因此从小做起没有任何意义-如果我只能花一点时间来完成这项工作,那么将无法及时采取任何措施来赶上Apple的硬件发布周期。因此,此Patreon已暂停启动。在每月认捐额达到$ 4000之前,不会向任何人收费。在这个级别上,我可以保证将时间投入使这一切都值得。为了使之具有教育意义,我还将记录自己的进步并偶尔进行现场直播。由于我有很多事情要做,因此我无法全职投入这个项目,因此我最早将于一月份开始工作。同时,如果我提前达到$ 4k的目标,我将订购M1 Mac Mini。在开发时间允许的情况下,所有Apple M1 mac都在范围内,包括后代。第一个目标将是M1 Mac Mini。 Apple允许在没有越狱的情况下在Apple Silicon macs上引导未签名/自定义的内核!这不是黑客或遗漏,而是Apple内置于这些设备中的实际功能。这意味着,与iOS设备不同,苹果不打算锁定Mac上可以使用的操作系统(尽管它们可能对开发没有帮助)。只要不从macOS获取任何代码来构建Linux支持,最终结果就完全合法发行并可供最终用户使用,因为这不是macOS的衍生产品。逆向工程的实际行为因管辖权而异,但通常,出于互操作性目的,逆向工程在许多国家/地区受到法律保护。无论如何,我都不认为苹果会尝试对该项目采取法律行动,因为这将对公关造成巨大打击,而对他们没有真正的好处。如果他们不希望人们在Mac上安装Linux,那么他们将锁定启动过程,无需律师。所有开发将公开进行,并定期推送到GitHub。编写贡献的目的是将它们上游纳入各自的上游项目(从Linux内核开始),并在可行的情况下尽早进行上游。代码将被双重许可,作为上游许可(例如GPL)和许可许可(例如MIT),以确保在可能的情况下可以在其他OS中重用该工作。否,Apple仍控制启动过程,例如,控制在Secure Enclave处理器上运行的固件。但是,没有现代化的设备“完全开放”-如今没有可用的计算机完全开放的软件和硬件(就象某些公司希望以此进行营销一样)。最终改变的地方是在封闭零件和开放零件之间划清界限。 Apple Silicon Macs上的该行是引导备用内核映像时,而SEP固件保持关闭的状态-与标准PC上的行非常相似,UEFI固件引导OS加载程序,而ME / PSP固件保持关闭, 。实际上,主流x86平台可以说更具侵入性,因为专有的UEFI固件可以随时通过SMM中断从操作系统窃取主CPU,而在Apple Silicon Mac上则不是这种情况(这对性能/稳定性有实际影响。 ,这不只是一个哲学问题)。 Linux开发从来都不是一个单独的项目。我当然会与上游开发人员以及任何其他想要贡献的人保持联系。要获得真正良好的Linux支持,肯定需要多个人,但是让一个人专心完成这项任务对这种项目有很大的影响,因为这意味着我可以专注于需要做的事情,而其他人可以为他们想要的任何东西。为了使平台端口成功,至少需要一个人来推动事情向前发展,我的目标是成为那个人。显然,我将不得不购买硬件(Apple设备并不便宜)并需要其他成本才能运行此项目。但是,如果竞选真的开始了,我也许有能力雇用其他开发人员来完成特定任务!自2000年代初期以来,我已经有超过半生从事反向工程设备的研究。我一直致力于为诸如Nintendo Wii(我是硬件文档,开放库,“越狱”软件(Homebrew频道),恢复工具(BootMii)等最大的贡献者之一)之类的平台构建非官方的开放软件支持。 ),索尼PS3(我写了AsbestOS和一个Linux补丁集,使Linux可以在PS3 Slim以及原始的Linux支持被删除后的最新PS3设备上工作),PS4(我将Linux移植到,以便能够运行具有完整OpenGL / Vulkan图形支持的Steam游戏)和其他较小的平台。我一直在努力编写干净,健壮的代码,这些代码安全,将用户放在首位并且是可上游的。我支持开放式硬件和软件开发。我已经多次经历了Linux内核补丁程序,而且我知道将内容上传到上游需要什么。