Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

[インデックス 18954] ファイルの概要

このコミットは、Go言語の公式ドキュメントの一部である doc/install-source.html ファイルに対する変更です。このファイルは、GoのソースコードからGoをインストールする方法について説明しており、Goがサポートするオペレーティングシステム(OS)とアーキテクチャの組み合わせに関する情報を含んでいます。具体的には、Goがサポートするプラットフォームのリストを更新し、Solaris OSが追加されたことを反映しています。

コミット

doc: document Solaris port.

LGTM=aram, rsc
R=aram, adg, bradfitz, rsc
CC=golang-codereviews
https://golang.org/cl/74750045

GitHub上でのコミットページへのリンク

https://github.com/golang/go/commit/708a53f9cf618270b609aa72795fb0cdf01260cc

元コミット内容

このコミットの目的は、「Solarisポートを文書化する」ことです。これは、Go言語がSolarisオペレーティングシステムをサポートするようになったことを公式ドキュメントに反映させるための変更であることを意味します。LGTM (Looks Good To Me) と R (Reviewers) はコードレビューの承認者を示し、CC は関係者への通知、https://golang.org/cl/74750045 はこの変更に対応するGerritのチェンジリストへのリンクです。

変更の背景

この変更の背景には、Go言語がSolarisオペレーティングシステムへの公式サポートを追加したという事実があります。Web検索の結果によると、Go言語はGo 1.3からSolaris 11 (amd64アーキテクチャ) の公式サポートを開始しました。このコミットは2014年3月に行われており、Go 1.3のリリースが2014年6月であったことを考えると、Go 1.3のリリースに先立って、その新しいプラットフォームサポートを公式ドキュメントに反映させるための準備の一環として行われたものと考えられます。

Go言語は、その設計思想の一つとして、様々なプラットフォームでの動作を重視しています。新しいOSへの対応は、Goの利用範囲を広げ、より多くの開発者がGoを利用できるようにするための重要なステップです。Solarisは、特にエンタープライズ環境で利用されてきたUNIX系のOSであり、そのサポートはGoの普及にとって意味のあるものでした。

前提知識の解説

Solaris

Solarisは、Sun Microsystems(現在はOracle Corporationの一部)によって開発されたUNIX系のオペレーティングシステムです。高性能なサーバーやワークステーション向けに設計されており、特にエンタープライズ分野で広く利用されてきました。ZFSファイルシステムやDTraceなどの先進的な機能で知られています。

Go言語の環境変数 GOOSGOARCH

Go言語のビルドシステムは、クロスコンパイルを強力にサポートしています。これは、あるOS/アーキテクチャの環境で、別のOS/アーキテクチャ向けのバイナリを生成できることを意味します。このクロスコンパイルの挙動を制御するために、以下の2つの重要な環境変数が使用されます。

  • GOOS (Go Operating System): ビルド対象のオペレーティングシステムを指定します。例えば、linuxwindowsdarwin (macOS)、freebsdplan9 などがあります。このコミットでは、新たに solaris が追加されました。
  • GOARCH (Go Architecture): ビルド対象のCPUアーキテクチャを指定します。例えば、amd64 (64-bit x86)、386 (32-bit x86)、arm (32-bit ARM) などがあります。

これらの変数を設定することで、開発者は特定のプラットフォーム向けにGoプログラムを簡単にコンパイルできます。

doc/install-source.html ファイルの目的

doc/install-source.html は、Go言語の公式ウェブサイトの一部として提供されるドキュメントファイルです。このファイルは、GoのソースコードからGoツールチェイン自体をビルドし、インストールする手順を詳細に説明しています。また、GoがサポートするOSとアーキテクチャの組み合わせ、およびそれらに関連する環境変数の設定についても言及しています。このドキュメントは、Goの新しいバージョンを開発したり、特定のプラットフォームでGoを動作させたりする際に参照される重要な情報源です。

技術的詳細

このコミットは、doc/install-source.html ファイル内の2つの主要なセクションにSolarisに関する記述を追加しています。

  1. サポートされるオペレーティングシステムのリスト: Goコンパイラがターゲットとできるオペレーティングシステムのリストに Solaris が追加されました。これは、Goが単にSolaris上で動作するだけでなく、Goのツールチェイン自体がSolaris向けのバイナリを生成できることを意味します。

  2. $GOOS の選択肢のリスト: $GOOS 環境変数で指定できるオペレーティングシステムの選択肢のリストに solaris が追加されました。これにより、ユーザーは GOOS=solaris を設定することで、Solaris向けのGoバイナリをクロスコンパイルできるようになります。

  3. $GOOS$GOARCH の有効な組み合わせの表: Goがサポートする $GOOS$GOARCH の有効な組み合わせを示す表に、solarisamd64 の組み合わせが追加されました。これは、GoがSolaris上で特に amd64 アーキテクチャをサポートしていることを明示しています。Web検索の結果と一致しており、Go 1.3でSolaris 11 (amd64) のサポートが開始されたことを裏付けています。

これらの変更は、Go言語の公式ドキュメントが実際のGoツールチェインの機能と一致するようにするための、正確性と完全性を高めるためのものです。ユーザーがGoをインストールしたり、特定のプラットフォーム向けにビルドしたりする際に、最新かつ正確な情報を提供することが目的です。

コアとなるコードの変更箇所

--- a/doc/install-source.html
+++ b/doc/install-source.html
@@ -70,7 +70,7 @@ goroutines, such as stacks that grow and shrink on demand.\n \n <p>\n The compilers can target the FreeBSD, Linux, NetBSD, OpenBSD, OS X (Darwin),\n-and Windows operating systems.\n+Solaris and Windows operating systems.\n The full set of supported combinations is listed in the discussion of\n <a href=\"#environment\">environment variables</a> below.\n </p>\n@@ -360,7 +360,7 @@ These default to the values of <code>$GOHOSTOS</code> and\n Choices for <code>$GOOS</code> are\n <code>darwin</code> (Mac OS X 10.6 and above), <code>freebsd</code>,\n <code>linux</code>, <code>netbsd</code>, <code>openbsd</code>, \n-<code>plan9</code>, and <code>windows</code>.\n+<code>plan9</code>, <code>solaris</code> and <code>windows</code>.\n Choices for <code>$GOARCH</code> are\n <code>amd64</code> (64-bit x86, the most mature port),\n <code>386</code> (32-bit x86), and <code>arm</code> (32-bit ARM).\n@@ -415,6 +415,9 @@ The valid combinations of <code>$GOOS</code> and <code>$GOARCH</code> are:\n <td></td><td><code>plan9</code></td> <td><code>amd64</code></td>\n </tr>\n <tr>\n+<td></td><td><code>solaris</code></td> <td><code>amd64</code></td>\n+</tr>\n+<tr>\n <td></td><td><code>windows</code></td> <td><code>386</code></td>\n </tr>\n <tr>\n```

## コアとなるコードの解説

上記の差分は、`doc/install-source.html` ファイルに対する3つの主要な変更を示しています。

1.  **行 70-71 の変更**:
    ```diff
    -and Windows operating systems.
    +Solaris and Windows operating systems.
    ```
    この変更は、Goコンパイラがターゲットとできるオペレーティングシステムのリストに `Solaris` を追加しています。これにより、GoがサポートするOSの概要説明が更新され、Solarisが公式にサポート対象となったことが明示されます。

2.  **行 360-361 の変更**:
    ```diff
    -<code>plan9</code>, and <code>windows</code>.
    +<code>plan9</code>, <code>solaris</code> and <code>windows</code>.
    ```
    この変更は、`$GOOS` 環境変数で指定できるオペレーティングシステムの選択肢のリストに `solaris` を追加しています。これにより、Goのビルド時に `GOOS=solaris` を設定することで、Solaris向けのバイナリを生成できることがユーザーに伝えられます。

3.  **行 415-418 の追加**:
    ```diff
    +<td></td><td><code>solaris</code></td> <td><code>amd64</code></td>
    +</tr>
    ```
    この変更は、`$GOOS` と `$GOARCH` の有効な組み合わせを示す表に、`solaris` と `amd64` の組み合わせを追加しています。これは、GoがSolaris上で特に `amd64` アーキテクチャをサポートしていることを具体的に示しており、Go 1.3で導入されたSolarisサポートの詳細を補完します。この行は、GoがSolarisの64ビットx86環境で動作することを明確にしています。

これらの変更はすべて、Go言語のSolarisサポートを公式ドキュメントに正確に反映させるためのものです。

## 関連リンク

*   [https://golang.org/cl/74750045](https://golang.org/cl/74750045) - このコミットに対応するGo Gerritのチェンジリスト

## 参考にした情報源リンク

*   Go language Solaris support history (Google Web Searchの結果)
    *   [https://stackoverflow.com/questions/tagged/go+solaris](https://stackoverflow.com/questions/tagged/go+solaris)
    *   [https://go.dev/doc/go1.3](https://go.dev/doc/go1.3)
    *   [https://github.com/golang/go/wiki/Go-Release-History](https://github.com/golang/go/wiki/Go-Release-History)
    *   [https://www.oracle.com/solaris/](https://www.oracle.com/solaris/)
    *   その他、Google Web Searchで得られた関連情報。