Apple M1 芯片目前对开发者来讲未必是好事

苹果近日推出的首款自研的 Apple M1 芯片,收到了不少用户的欢迎,但随着这些用户拿到真机,不少问题暴露出来。docker

有用户发现,除了 AMD64架构以外,其余大多数架构都没法在 ARM 上运行。若是「强行」运行,将会大幅度提升运行成本。架构

而且有一部分工具和库属于开源项目,所以由此带来的维护需求增加,将成为沉重的额外负担,致使某些贡献者直接放弃为新的 Mac 平台上提供支持。app

固然也有一些应用程序、特别是闭源项目,压根没有 ARM 版 build,例如微软 SQL Server 或 OracleDB。工具

ARM 架构不支持 Windows

一个不太好的消息是 ARM 架构是绝对支持不了 Windows 。测试

若是开发者想在新款 Mac 上测试本身的 Windows 应用。只能再买一台笔记本,或者使用远程桌面服务了。另外,开发者也无法在 Mac 上运行虚拟机进行设备测试(例如 ESXi、pfSense、FreeNAS 等)。ui

Docker 受到的影响

因为 Mac 上的 Docker 只能在虚拟机内运行,再加上用户只能对基于 ARM 架构的 Linux 进行虚拟化,意味着咱们将来只能在苹果芯片版的 Mac 上运行 ARM64 容器。spa

目前,Docker Hub 上存在 331 万 9219 个针对 AMD64 的镜像,但针对 ARM64 的镜像只有 29076 个,占比不足 1%。再有,构建多架构 Docker 镜像还特别复杂。调试

尤为须要注意的是,因为生产系统一般运行 Linux/AMD64,所以你生产的二进制文件及 Docker 镜像极可能没法在开发计算机上运行。固然,你也许能够进行从新编译及交叉编译,但永远没法还原其真实的运行状态。另外,若是你的应用在生产环境中发生问题,也没法仅凭二进制文件或容器镜像在本身的笔记本上进行调试。blog

Docker 在开发者的平常工做流程中占据很是重要的位置,因此这些令开发者们感到至关头痛。开发

参考资料:www.reddit.com/r/docker/comments/jpzt43/docker_for_mac_on_apple_silicon_keynote/

image.png