Arm Mac:我为什么担心虚拟化

2020-06-26 01:09:46

现在是2020年末,你刚刚买了一台全新的Mac电脑,配备了苹果自己的ARM处理器。令人兴奋!。但是发展会是什么样子呢?

Mac上的Docker利用虚拟机管理程序。虚拟机管理程序依赖于在主机上运行与来宾相同的体系结构,并且速度大约是本机运行的1倍到2倍。

由于您正在运行ARM Mac,因此这些虚拟机管理程序只能运行ARM Linux。他们不能运行x86_64 Linux。

接下来会发生什么呢?这些工具将依赖于仿真器。模拟器可以在主机和来宾之间运行不同的体系结构,但模拟来宾操作系统的速度大约慢5倍到10倍。

比较AMD64(虚拟机管理程序)和arm64v8(仿真器)上的gzip性能的基本性能测试。请注意,模拟器的速度要慢6倍以上。在ARM Mac上,AMD64映像的速度会慢6倍。

为什么您不能更新Docker映像以也支持ARM?从理论上讲,您可以将后端切换到运行arm Linux。然而,这将需要几个月的时间-出租ARM实例,重新构建所有存储库,并进行紧张的切换。更糟糕的是,如果您的图像包含从Internet下载的文件,这可能是不可能的,因为这些文件通常只针对x86_64进行编译。购买一台新的笔记本电脑并不足以改变你的后端架构。

仅适用于x86_64的Docker命令示例。PhantomJS不发布ARM版本。

另一种选择是远程运行Docker。您设置了一台x86_64 Linux服务器,然后允许Docker远程连接到它。从那时起,所有Docker命令都在服务器上运行。这在Docker中也是受支持的,这里有一个关于设置它的教程。这就是大量使用Docker的用户想要做的事情。

VirtualBox是一个虚拟机管理程序。因此,它将不能运行x86 Windows或x86 Linux。

您可以使用VirtualBox来运行ARM Windows。Windows已经支持ARM,并且拥有与苹果类似的二进制翻译系统,因此它可以运行x86二进制文件。但是,VirtualBox仅支持x86主机和来宾,不太可能通过ARM进行移植。

VMware Fusion同样也是一个只支持x86的虚拟机管理程序,但他们正在考虑支持ARM。

您可以使用仿真器QEMU来代替VirtualBox。但是,QEMU的级别相当低,不常用于模拟Windows。

Boot Camp是苹果批准的一种双引导Mac OS和Windows的方式。在ARM Mac上不提供Boot Camp。它可能会在以后添加运行ARM Windows的功能,尽管微软必须批准。

这篇文章的重点并不是说arm Mac是个坏主意,而是给出了一个现实的想法,那就是在它的基础上开发会是什么样子。

如果你是开发人员,你应该买一台ARM Mac吗?如果您经常使用虚拟化,我不推荐您使用。早期会有很多问题,并不是所有的问题都有解决方案。我最大的担忧是买一台ARM Mac,然后意识到我根本不能在它上运行一个重要的应用程序。

但是,如果您喜欢对这些问题进行故障排除,并且对arm Mac感到兴奋,那就去做吧!我的计划是让这些人来解决这些问题。