2020年12月17日 Go生态洞察:Go在ARM及其它架构上的发展

您所在的位置:网站首页 Go语言跨平台跨架构编译 2020年12月17日 Go生态洞察:Go在ARM及其它架构上的发展

2020年12月17日 Go生态洞察:Go在ARM及其它架构上的发展

2024-07-10 06:13| 来源: 网络整理| 查看: 265

2020年12月17日 Go生态洞察:Go在ARM及其它架构上的发展📚 摘要

猫头虎博主来了!今天我们深入探讨Go语言在ARM及其他非x86处理器上的支持和发展。随着ARM硬件在服务器、笔记本和开发者机器上的兴起,Go语言的跨平台特性显得尤为重要。让我们一探究竟!

🌟 引言

Go语言自诞生以来,就注重在不同操作系统和架构上的可移植性。随着非x86处理器的流行,Go对这些平台的支持显得更为关键。本文将回顾Go在不同架构上的演进,并探讨其未来发展。

🚀 正文内容🖥️ Go语言的跨平台基础

Go语言的首次开源发布就包括了对Linux和Mac OS X操作系统的支持,覆盖了64位x86、32位x86和32位ARM架构。这体现了Go语言从一开始就重视跨平台能力。

🌐 Go对更多系统的支持

随着时间的推移,Go语言增加了对更多操作系统和架构组合的支持:

Go 1(2012年3月)支持了FreeBSD、NetBSD、OpenBSD在64位和32位x86上,以及Plan 9在32位x86上。Go 1.3(2014年6月)增加了对Solaris在64位x86的支持。Go 1.4(2014年12月)增加了对Android在32位ARM和Plan 9在64位x86的支持。Go 1.5(2015年8月)增加了对Linux在64位ARM和64位PowerPC的支持,以及iOS在32位和64位ARM上的支持。Go 1.6(2016年2月)增加了对Linux在64位MIPS的支持,以及Android在32位x86上的支持。同时为Raspberry Pi系统上的Linux在32位ARM提供了官方二进制下载。Go 1.7(2016年8月)增加了对Linux在z系统(S390x)和Plan 9在32位ARM的支持。Go 1.8(2017年2月)增加了对Linux在32位MIPS的支持,同时为Linux在64位PowerPC和z系统提供了官方二进制下载。Go 1.9(2017年8月)为Linux在64位ARM提供了官方二进制下载。Go 1.12(2018年2月)增加了对Windows 10 IoT Core在32位ARM上的支持,如Raspberry Pi 3。还增加了对AIX在64位PowerPC上的支持。Go 1.14(2019年2月)增加了对Linux在64位RISC-V的支持。🏗️ 高效的编译器后端和社区贡献

尽管在Go早期,x86-64架构获得了最多的关注,但今天我们的目标架构都得到了基于SSA编译器后端的良好支持,并产生了优秀的代码。我们得到了包括Amazon、ARM、Atos、IBM、Intel和MIPS等公司工程师的帮助。

🔄 Go的跨编译支持

Go语言支持对所有这些系统的跨编译,且努力极小。例如,要从64位Linux系统为32位x86的Windows构建应用:

代码语言:javascript复制GOARCH=386 GOOS=windows go build myapp # writes myapp.exe🌟 Go在ARM64硬件上的优势

在过去的一年里,几个主要供应商宣布了新的ARM64硬件,包括服务器、笔记本和开发者机器。Go为此做好了充分准备。多年来,Go一直在ARM64 Linux服务器上驱动Docker、Kubernetes以及其它Go生态系统,同时也支持ARM64 Android和iOS设备上的移动应用。

自从苹果宣布Mac转向Apple Silicon以来,苹果和谷歌一直在合作,确保Go及更广泛的Go生态系统在它们上运行良好,无论是运行Go x86二进制文件,还是运行原生的Go ARM64二进制文件。本周早些时候,我们发布了首个Go 1.16 beta版本,其中包括对搭载M1芯片的Mac的原生支持。你可以在Go下载页面上下载并尝试Go 1.16 beta版。

🎯 未来的目标:ARM64 Windows 10系统

我们下一个想要增加支持的目标是ARM64 Windows 10系统。如果你有专业知识并愿意帮忙,我们正在golang.org/issue/36439上协调工作。

📈 总结知识要点

要点

说明

Go语言的跨平台性

从最初就支持多种操作系统和架构

架构支持的发展

随着版本更新,Go增加了对多个新系统和架构的支持

编译器后端和社区支持

优秀的SSA编译器后端和社区贡献推动了Go在多种架构上的发展

跨编译

Go支持简单的跨编译,便于开发者在不同平台间进行应用构建

对ARM64的支持

Go对ARM64硬件的支持为其在多样化的硬件平台上的应用提供了坚实基础

未来展望

Go团队计划支持ARM64 Windows 10系统,并邀请社区参与

🎓 总结

这篇文章已被猫头虎的Go生态洞察专栏收录,详情点击这里。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3