Apple M1 芯片目前對開發(fā)者來說未必是好事

技術(shù)編輯:宗恩丨發(fā)自 思否編輯部
蘋果近日推出的首款自研 Apple M1 芯片,受到了許多用戶的歡迎,但隨著這些用戶拿到真機,問題逐漸暴露出來。
有用戶發(fā)現(xiàn),除了 AMD64架構(gòu)之外,大多數(shù)架構(gòu)都無法在 ARM 上運行。如果「強行」運行,將會大幅度提高運行成本。
并且有一部分工具和庫屬于開源項目,因此由此帶來的維護需求增長,將成為沉重的額外負擔(dān),導(dǎo)致某些貢獻者直接放棄為新的 Mac 平臺上提供支持。
當(dāng)然也有一些應(yīng)用程序、特別是閉源項目,壓根沒有 ARM 版 build,例如微軟 SQL Server 或 OracleDB。
ARM 架構(gòu)不支持 Windows
一個不太好的消息是 ARM 架構(gòu)是絕對支持不了 Windows 。
如果開發(fā)者想在新款 Mac 上測試自己的 Windows 應(yīng)用。只能再買一臺筆記本,或者使用遠程桌面服務(wù)了。另外,開發(fā)者也沒法在 Mac 上運行虛擬機進行設(shè)備測試(例如 ESXi、pfSense、FreeNAS 等)。
Docker 受到的影響
由于 Mac 上的 Docker 只能在虛擬機內(nèi)運行,再加上用戶只能對基于 ARM 架構(gòu)的 Linux 進行虛擬化,意味著我們未來只能在蘋果芯片版的 Mac 上運行 ARM64 容器。
目前,Docker Hub 上存在 331 萬 9219 個針對 AMD64 的鏡像,但針對 ARM64 的鏡像只有 29076 個,占比不足 1%。再有,構(gòu)建多架構(gòu) Docker 鏡像還特別復(fù)雜。
尤其需要注意的是,由于生產(chǎn)系統(tǒng)通常運行 Linux/AMD64,因此你生產(chǎn)的二進制文件及 Docker 鏡像很可能無法在開發(fā)計算機上運行。當(dāng)然,你也許可以進行重新編譯及交叉編譯,但永遠無法還原其真實的運行狀態(tài)。另外,如果你的應(yīng)用在生產(chǎn)環(huán)境中發(fā)生問題,也無法僅憑二進制文件或容器鏡像在自己的筆記本上進行調(diào)試。
Docker 在開發(fā)者的日常工作流程中占據(jù)非常重要的位置,所以這些令開發(fā)者們感到相當(dāng)頭痛。
參考資料:
www.reddit.com/r/docker/comments/jpzt43/docker_for_mac_on_apple_silicon_keynote/

