苹果近日推出的首款自研的 Apple M1 芯片,收到了很多用户的欢迎,但随着这些用户拿到真机,很多问题暴露出来。
有用户发现,除了 AMD64架构之外,其他大多数架构都无法在 ARM 上运行。如果「强行」运行,将会大幅度提高运行成本。
并且有一部分工具和库属于开源项目,因此由此带来的维护需求增长,将成为沉重的额外负担,导致某些贡献者直接放弃为新的 Mac 平台上提供支持。
当然也有一些应用程序、特别是闭源项目,压根没有 ARM 版 build,例如微软 SQL Server 或 OracleDB。
ARM 架构不支持 Windows
一个不太好的消息是 ARM 架构是绝对支持不了 Windows 。
如果开发者想在新款 Mac 上测试自己的 Windows 应用。只能再买一台笔记本,或者使用远程桌面服务了。另外,开发者也没法在 Mac 上运行虚拟机进行设备测试(例如 ESXi、pfSense、FreeNAS 等)。
Docker 受到的影响
由于 Mac 上的 Docker 只能在虚拟机内运行,再加上用户只能对基于 ARM 架构的 Linux 进行虚拟化,意味着我们未来只能在苹果芯片版的 Mac 上运行 ARM64 容器。
目前,Docker Hub 上存在 331 万 9219 个针对 AMD64 的镜像,但针对 ARM64 的镜像只有 29076 个,占比不足 1%。再有,构建多架构 Docker 镜像还特别复杂。
尤其需要注意的是,由于生产系统通常运行 Linux/AMD64,因此你生产的二进制文件及 Docker 镜像很可能无法在开发计算机上运行。当然,你也许可以进行重新编译及交叉编译,但永远无法还原其真实的运行状态。另外,如果你的应用在生产环境中发生问题,也无法仅凭二进制文件或容器镜像在自己的笔记本上进行调试。
Docker 在开发者的日常工作流程中占据非常重要的位置,所以这些令开发者们感到相当头痛。
参考资料:www.reddit.com/r/docker/comments/jpzt43/docker_for_mac_on_apple_silicon_keynote/