🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 3.1\. 简介 Go是一个开源项目,采用[BSD授权协议](http://golang.org/LICENSE)。 该文档介绍如何获取Go源代码,如何编译,以及如何运行Go程序。 目前有两种方式使用Go语言。这里主要讲述如何使用Go专用的gc系列工具 (6g、8g等)。另一个可选的编译器是 基于gcc后端的 gccgo编译器。关于gccgo的细节清参考[安装并使用gccgo编译器](http://golang.org/doc/gccgo_install.html) 。 Go编译器可以支持三种指令集。不同体系结构生成的代码质量有一些差别: amd64 (a.k.a. x86-64); 6g,6l,6c,6a 最成熟的实现,编译器在寄存器级别优化,可以生成高质量的目标代码(有时候gccgo可能更优)。 386 (a.k.a. x86 or x86-32); 8g,8l,8c,8a amd64平台的的完整移植。 arm (a.k.a. ARM); 5g,5l,5c,5a 在完善中。目前只支持生成Linux的二进制文件,浮点支持比较匮乏,并且生成目标代码时还存在bug。还没有完全通过测试集,也没有任何优化。 除了系统级的接口,go需要的运行时环境对各个平台都是一致的。包含 mark-and-sweep 垃圾内存自动回收(更高效的算法实现正在开发中), 数组、字符串、智能堆栈 以及 goroutine 等。 目前支持以下系统:FreeBSD、Linux、Native Client 和 OS X (a.k.a. Darwin)。Microsoft Windows 目前正在移植中, 功能还不完整。关于各个系统平台的详细说明,可以参考后面的 [环境变量] 一节。