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

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

このコミットは、Go言語の公式ドキュメントを更新し、NetBSDがGoの完全にサポートされるプラットフォームになったことを反映しています。具体的には、GDBによるデバッグに関するドキュメントと、Goのインストール手順に関するドキュメントが修正されています。

コミット

commit 12cbc8ae31f5cd003abac6f2c733a08cda3381e4
Author: Shenghou Ma <minux.ma@gmail.com>
Date:   Tue Oct 16 16:02:56 2012 +0800

    doc: NetBSD is fully supported now
    
    R=adg, bsiegert
    CC=golang-dev
    https://golang.org/cl/6660047

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

https://github.com/golang/go/commit/12cbc8ae31f5cd003abac6f2c733a08cda3381e4

元コミット内容

commit 12cbc8ae31f5cd003abac6f2c733a08cda3381e4
Author: Shenghou Ma <minux.ma@gmail.com>
Date:   Tue Oct 16 16:02:56 2012 +0800

    doc: NetBSD is fully supported now
    
    R=adg, bsiegert
    CC=golang-dev
    https://golang.org/cl/6660047

変更の背景

この変更の背景には、Go言語がNetBSDプラットフォーム上で完全に動作するようになったという事実があります。Go言語は、その設計思想の一つとして、様々なプラットフォームへの移植性を重視しています。NetBSDは、その堅牢性と移植性の高さから、多くのアーキテクチャで動作するUNIX系OSとして知られています。

Go言語の開発チームは、継続的に様々なオペレーティングシステムやアーキテクチャへのサポートを拡大しています。このコミットが行われた2012年10月時点で、NetBSD上でのGoのコンパイル、実行、そしてデバッグ環境が十分に成熟し、公式に「完全にサポートされた」と宣言できるレベルに達したため、関連するドキュメントの更新が必要となりました。これにより、NetBSDユーザーがGo言語をよりスムーズに利用できるようになります。

前提知識の解説

  • NetBSD: NetBSDは、オープンソースのUNIX系オペレーティングシステムであり、BSDの子孫の一つです。その最大の特徴は、非常に高い移植性を持つことで、デスクトップPCから組み込みシステム、サーバー、さらには特殊なハードウェアまで、多種多様なプラットフォームで動作します。堅牢性、セキュリティ、そしてクリーンな設計が評価されています。
  • DWARFv3: DWARF (Debugging With Attributed Record Formats) は、プログラムのデバッグ情報を表現するための標準的なフォーマットです。コンパイラによって生成された実行可能ファイルやライブラリに埋め込まれ、デバッガがソースコードレベルでのデバッグ(変数の中身の確認、ブレークポイントの設定、ステップ実行など)を行うために必要な情報(変数名、型、関数名、行番号とアドレスのマッピングなど)を提供します。DWARFv3はそのバージョンの一つです。
  • GDB (GNU Debugger): GDBは、GNUプロジェクトによって開発された強力なコマンドラインデバッガです。C、C++、Go、Fortranなど、多くのプログラミング言語をサポートしており、プログラムの実行中にその内部状態を検査したり、実行フローを制御したりすることができます。DWARF形式のデバッグ情報を利用して、ソースコードレベルでのデバッグ機能を提供します。
  • Go言語のツールチェイン (gc toolchain): Go言語には、公式のコンパイラ、リンカ、アセンブラなどが含まれる独自のツールチェインがあります。このツールチェインは、Goのソースコードを各プラットフォームのネイティブバイナリにコンパイルするために使用されます。gcは、Go言語の主要なコンパイラを指します。

技術的詳細

このコミットは、Go言語のドキュメントファイルである doc/debugging_with_gdb.htmldoc/install.html の2つを修正しています。これらの変更は、NetBSDがGo言語の公式サポート対象プラットフォームとして追加されたことを反映するためのものです。

  1. doc/debugging_with_gdb.html の変更:

    • このファイルは、GDBを用いたGoプログラムのデバッグ方法について説明しています。
    • 変更前は、GoのgcツールチェインがLinux、Mac OS X、FreeBSD上でDWARFv3デバッグ情報を生成すると記載されていました。
    • 変更後は、このリストに「NetBSD」が追加され、NetBSD上でもGoバイナリがDWARFv3デバッグ情報を含むことが明記されました。これは、NetBSD環境でのGoプログラムのデバッグが、他の主要なUNIX系OSと同様にサポートされることを意味します。
  2. doc/install.html の変更:

    • このファイルは、Go言語のインストール手順について説明しています。
    • サポート対象OSの表の更新: Goがサポートするオペレーティングシステムとアーキテクチャの表に、新たに「NetBSD 6 or later」と「amd64, 386」の組み合わせが追加されました。これにより、NetBSDが公式にサポートされるプラットフォームであることが明確に示されました。
    • 公式バイナリ配布の言及: 公式バイナリが提供されるOSのリストに「NetBSD」が追加されました。これは、NetBSDユーザーがソースからビルドすることなく、事前にコンパイルされたGoのバイナリディストリビューションをダウンロードして利用できるようになったことを意味します。
    • tarballのダウンロードセクションのヘッダー変更: 「FreeBSD, Linux, and Mac OS X tarballs」というセクションヘッダーが「FreeBSD, Linux, Mac OS X and NetBSD tarballs」に変更されました。これにより、NetBSDもこれらのOSと同様にtarball形式でのインストールが推奨されることが示唆されます。
    • ダウンロードリンクの更新: Goのダウンロードリストへのリンクのクエリパラメータに OpSys-NetBSD が追加されました。これにより、NetBSD向けのバイナリをフィルタリングして表示できるようになります。

これらの変更は、Go言語がNetBSD環境で完全に機能し、開発者がGoをNetBSD上で安心して利用できるようになったことを、公式ドキュメントを通じてユーザーに伝えるためのものです。

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

doc/debugging_with_gdb.html

--- a/doc/debugging_with_gdb.html
+++ b/doc/debugging_with_gdb.html
@@ -13,7 +13,7 @@ Besides this overview you might want to consult the
 
 <p>
 When you compile and link your Go programs with the <code>gc</code> toolchain
-on Linux, Mac OS X or FreeBSD, the resulting binaries contain DWARFv3
+on Linux, Mac OS X, FreeBSD or NetBSD, the resulting binaries contain DWARFv3
 debugging information that recent versions (&gt;7.1) of the GDB debugger can
 use to inspect a live process or a core dump.
 </p>

doc/install.html

--- a/doc/install.html
+++ b/doc/install.html
@@ -44,6 +44,7 @@ proceeding. If your OS or architecture is not on the list, it's possible that
 <tr><td>Linux 2.6.23 or later with glibc</td> <td>amd64, 386, arm</td> <td>CentOS/RHEL 5.x not supported; no binary distribution for ARM yet</td></tr>
 <tr><td>Mac OS X 10.6/10.7</td> <td>amd64, 386</td> <td>use the gcc<sup>&#8224;</sup> that comes with Xcode<sup>&#8225;</sup></td></tr>
 <tr><td>Windows 2000 or later</td> <td>amd64, 386</td> <td>use mingw gcc<sup>&#8224;</sup>; cygwin or msys is not needed</td></tr>
+<tr><td>NetBSD 6 or later</td> <td>amd64, 386</td> <td></td></tr>
 </table>
 
 <p>
@@ -66,7 +67,7 @@ your operating system and processor architecture.
 
 <p>
 Official binary distributions are available
-for the FreeBSD, Linux, Mac OS X (Snow Leopard/Lion), and Windows operating systems
+for the FreeBSD, Linux, Mac OS X (Snow Leopard/Lion), NetBSD, and Windows operating systems
 and the 32-bit (<code>386</code>) and 64-bit (<code>amd64</code>)
 x86 processor architectures.
 </p>
@@ -103,7 +104,7 @@ Windows users should read the section about <a href="#windows_env">setting
 environment variables under Windows</a>.\n </p>\n \n-<h3 id=\"freebsd_linux\">FreeBSD, Linux, and Mac OS X tarballs</h3>\n+<h3 id=\"bsd_linux\">FreeBSD, Linux, Mac OS X and NetBSD tarballs</h3>\n \n <p>\n If you are upgrading from an older version of Go you must\n@@ -115,7 +116,7 @@ rm -r /usr/local/go\n </pre>\n \n <p>\n-Extract <a href=\"http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+Type-Archive\">the archive</a>\n+Extract <a href=\"http://code.google.com/p/go/downloads/list?q=OpSys-FreeBSD+OR+OpSys-Linux+OR+OpSys-OSX+OR+OpSys-NetBSD+Type-Archive\">the archive</a>\n into <code>/usr/local</code>, creating a Go tree in <code>/usr/local/go</code>.\n For example:\n </p>\n```

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

### `doc/debugging_with_gdb.html` の変更点

この変更は、Goのコンパイラ(`gc`ツールチェイン)が、Linux、Mac OS X、FreeBSDに加えてNetBSD上でも、GDBが利用できるDWARFv3形式のデバッグ情報を生成することを明示しています。これにより、NetBSD環境でGoプログラムを開発する際に、GDBを用いた高度なデバッグが可能であることが公式に保証されます。これは、GoがNetBSD上で単に実行できるだけでなく、開発ツールチェーン全体が統合されていることを示唆しています。

### `doc/install.html` の変更点

1.  **サポートOS表への追加**: NetBSD 6以降がamd64および386アーキテクチャでサポートされることが明確に示されました。これは、GoがこれらのNetBSD環境で安定して動作し、公式にサポートされることを意味します。
2.  **公式バイナリ配布の言及**: Goの公式バイナリディストリビューションが、FreeBSD、Linux、Mac OS X、Windowsに加えてNetBSDでも提供されることが明記されました。これにより、NetBSDユーザーはGoのインストールが容易になり、ソースからのビルドの手間が省けます。
3.  **セクションヘッダーの変更**: インストール手順のセクションヘッダーにNetBSDが追加されたことで、NetBSDも他の主要なUNIX系OSと同様に、tarballを用いた標準的なインストール方法が適用されることが示されました。
4.  **ダウンロードリンクの更新**: ダウンロードリストのURLにNetBSDのOSタイプが追加されたことで、ユーザーはGoの公式ダウンロードページでNetBSD向けのバイナリを直接検索・ダウンロードできるようになりました。

これらの変更は、Go言語がNetBSDプラットフォーム上で完全にサポートされ、開発およびデバッグ環境が整ったことをユーザーに伝えるための重要なドキュメント更新です。

## 関連リンク

*   Go Gerrit Change: https://golang.org/cl/6660047

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

*   NetBSD 公式サイト: [https://www.netbsd.org/](https://www.netbsd.org/)
*   DWARF Debugging Format (Wikipedia): [https://en.wikipedia.org/wiki/DWARF](https://en.wikipedia.org/wiki/DWARF)
*   GNU Debugger (GDB) 公式サイト: [https://www.gnu.org/software/gdb/](https://www.gnu.org/software/gdb/)
*   Go言語のプラットフォームサポートに関する一般的な情報 (Go公式ドキュメントなど)