×
家电数码 > 数码产品 > 详情

针对苹果M1的Linux项目发现有关M1系统架构的许多新细节

发布时间:2021-03-31 发布时间:
|

近日,一家专门从事虚拟化解决方案的软件公司Corellium设法将Linux移植到了搭载Apple M1处理器的PC机上,甚至成功地使几乎所有系统外围设备都能正常工作。在这个过程中,Corellium发现了有关Apple M1处理器及其系统架构的一些有趣的细节。

几周前,我们报道了一家名为Corellium的初创公司正在设法在搭载Apple M1的计算机上运行Linux。 当时,操作系统跑了起来,但是它无法支持很多东西,所以,从根本上来说,PC机还无法正常使用。 最近,该公司终于设法使大多数功能(包括Wi-Fi)正常工作了起来,这意味着,Linux现在可以在最新的Mac上使用了。但是,在这样的计算机上运行非苹果系的操作系统有一个有趣的副作用,即:它揭示了与其它基于Arm的体系结构相比,苹果的SoC有何与众不同。

众多专有技术


众所周知,苹果致力于构建自己基于ARM指令集的微体系结构,以在其iPhone和iPad上提供无与伦比的性能已经有相当长的一段时间了。 与一众竞争对手不同的是,苹果做处理器有自己的套路,它并没有在单颗处理器中塞入更多的内核,而是提高了其内核的单核/单线程性能。 据Corellium称,除了自定制内核外,苹果显然还使用了高度自定义的系统架构。

几乎所有基于Arm指令集的64位系统启动时都是通过一个被称为PSCI的接口调用固件,但是M1有自己的方式,CPU内核从MMIO寄存器指定的地址开始启动,然后开始运行内核。此外,苹果的M1系统还使用了与Arm的标准不兼容的专有中断控制器(AIC)。同时,其定时器中断连接到FIQ上,FIQ是一种晦涩难懂的架构功能,主要用于与Linux不兼容的32位Arm系统。

为了使搭载M1的PC机中的各种处理器之间可以相互交互,操作系统必须提供一组处理器间中断(IPI)。以前,处理IPI的方式与处理传统IRQ的方式一样,都是通过MMIO访问AIC进行的,但是在M1中,苹果使用处理器内核寄存器来分发和确认IPI,因为正如前文所述,它们依赖FIQ。



苹果的另类和怪癖并不止于此。例如,苹果公司的Wi-Fi/蓝牙控制器使用了非标准的基于PCIe的协议连接到SoC(幸运的是,Corellium虚拟化软件正好支持这个不标准的协议)。更复杂的是,苹果的PCIe和集成的Synopsys DWC3 USB控制器使用了公司专有的称为设备地址解析表(DART)的输入-输出内存管理单元(IOMMU)。此外,苹果的I2C具有使用排他性协议的自定义固件,它阻止通过USB Type-A端口进行访问。

另类导致的复杂化


对于苹果公司来说,使用专有的系统架构并不是什么新鲜事儿,但是,它这种做法将使将其它操作系统移植到其平台上以及以虚拟化模式运行这些操作系统变得更加困难。 最近,开发人员正在设法使用QEMU虚拟化使微软即将面世的Windows 10X在基于苹果M1的系统上运行起来,但是最终结果尚未确定,也不清楚它的稳定性如何。此外,鉴于Windows 10X无法运行Win32应用程序,所以对某些用户而言,这种移植也没有多大的价值。

对于大多数Mac电脑用户而言,在苹果的Mac上运行微软的Windows 10或Linux可能并不是至关重要的。但是,它的M1具有多种专有技术,这种复杂系统架构可能会使得为基于Arm的Mac开发某些类型的软件和硬件变得更加困难。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
可卷式大屏4K OLED电视.LG展示电视黑科技