GNU(GNU's Not Unix)— フリーソフトウェアOSプロジェクト
GNUは、自由なオペレーティングシステムと関連ツールの開発を目指す長期的プロジェクトである。フリーソフトウェアの理念とGNU一般公衆利用許諾書を確立し、多くのLinuxベースのシステムに影響を与えた。
概要
GNUは「GNU's Not Unix(GNUはUnixではない)」の再帰的頭字語であり、完全なコンピュータのオペレーティングシステムを構成することを意図した、幅広いフリーソフトウェアの集合体である。GNUプロジェクトは、利用者がプロプライエタリな制約を受けずにソフトウェアを実行、研究、改変、再配布できるモデルを推進している。この原則は一般にフリーソフトウェアと呼ばれる。GNUが開発した多くのユーティリティやインターフェースは、従来のUNIXプログラムの機能を再現しつつ、利用者の自由と協働的な開発を重視している。
画像ギャラリー
4 画像起源と理念
GNUプロジェクトは、リチャード・ストールマンによって1983年に発表された。ストールマンと初期の協力者たちは、既存のプロプライエタリなシステムの技術的能力を再現するだけでなく、ソフトウェアを取り巻く社会的・法的枠組みを変えることを目指した。利用者の自由を保護し永続させるため、プロジェクトはGNU一般公衆利用許諾書(GNU GPL)などのライセンスの仕組みを生み出した。これはコピーレフトを適用し、改変版および再配布版も同じ意味で自由なままであることを保証する。プロジェクトの声明や著作は、実践的な開発作業とともに、ソフトウェアの自由に関する倫理的な論拠を現在も示している。
主要な構成要素とツール
GNUは単一の一枚岩的な製品ではなく、プログラムから成るエコシステムである。その構成要素には、コンパイラ、ライブラリ、シェル、エディタ、およびUnix系システムに共通する多数のユーザーランド・ユーティリティが含まれる。GNUの枠組みの下で作られた代表的なソフトウェアには、GNU Compiler Collection(GCC)、GNU C Library(glibc)、基本ユーティリティ群(coreutils)、Bourne Again SHell(bash)、さらにソフトウェアのビルドやパッケージ化に使われる開発ツールがある。これらの要素は、カーネルと組み合わせることで、動作するオペレーティングシステムを提供するユーザー空間層を形成する。
カーネル開発:GNU Hurdと代替カーネル
GNUプロジェクトは、GNU Hurdとして知られるマイクロカーネルベースのカーネル群の開発を開始した。Hurdのアーキテクチャは多くの従来型カーネルと異なるが、その開発速度と採用は、他のカーネルと比べて限定的であった。その結果、GNUのユーザーランド構成要素を用いる多くのシステムは代替カーネルと組み合わせられており、最も一般的なのはモノリシックなLinuxカーネルである。GNUユーザーランドとさまざまなカーネルとの関係は、GNUツールを幅広いハードウェアやディストリビューション上で動作させる実用的な取り決めである。
GNUとLinux:名称と協力
Linuxカーネルが登場すると、開発者たちはこれをGNUのユーザーランドツールと組み合わせ、完全なシステムを構成した。GNU構成要素の貢献を認めるため、こうしたシステムをGNU/Linuxと呼ぶ利用者や貢献者もいる一方、短い名称であるLinuxを使用する人々もいる。この命名をめぐる議論は、功績、影響、および関係するコミュニティの哲学的目標についてのより広い論争を反映している。用語が何であれ、多くのディストリビューションとプロジェクトは、GNUソフトウェアを他のフリーおよび非フリーの構成要素と統合している。
ライセンス、配布と影響
GNUプロジェクトが整備した法的手段とコミュニティ規範は、ソフトウェアの共有とライセンスのあり方に長期的な影響を及ぼしてきた。GNU一般公衆利用許諾書および関連ライセンスは広く採用され、協働プロジェクトや組織における期待を形作ってきた。利用者の自由を重視するGNUの姿勢は、活動家の運動とオープンな開発における技術的慣行の双方に影響を与えた。多くの開発者やプロジェクトが、ソフトウェアのビルド、クロスコンパイル、テスト、システム保守のためにGNUツールを利用している。
実用上の利用と採用
GNUの構成要素は現代のコンピューティングに広く存在し、開発者用ツールチェーン、サーバー環境、デスクトップ向けディストリビューション、組み込みシステムに見られる。GNUのユーザーランドを他のカーネルまたはモジュールと組み合わせるディストリビューションは、日常利用、科学技術計算、本番サーバーに適した完全な環境を提供する。文書や利用者向けガイドでは、GNUの各要素がどのように相互運用されるか、また特定の必要に応じてシステムをどのようにカスタマイズするかが説明されている。コミュニティの資料は、初心者がインストールと貢献の手順を理解する助けとなる。
開発と貢献
GNUプロジェクトは世界各地の貢献者によって支えられている。参加に関心を持つ人は、プロジェクト文書やコミュニティのチャンネルを参照し、コーディング標準、翻訳の慣行、パッケージング手順、ガバナンスについて学ぶことができる。プロジェクトは長年にわたり透明な協働を重視し、貢献者のための資料を提供してきた。他のフリーソフトウェア・コミュニティとの対話も、優先事項と技術的方向性を形作り続けている。
遺産と参考資料
歴史的に、GNUプロジェクトはソフトウェアの自由という理念を定義し、今日も広く用いられる基盤的ツールを生み出すうえで中心的な役割を果たした。歴史的背景とプロジェクト自身による原初の声明については、プロジェクトが1983年に始まった時期の初期発表やアーカイブ資料を参照されたい。カーネル開発の技術的詳細については、GNU Hurdに関する資料、およびGNUの構成要素をLinuxカーネルなどの代替カーネルと組み合わせる方法に関する資料を参照できる。プロジェクトの主要な文書と開発者向けガイドは、GNUの構成要素からオペレーティングシステムを構築するための一般的な情報や、貢献者の開発者コミュニティに参加する方法を含む、実用的な手順と背景を提供している。
フリーソフトウェアの原則の入門を求める読者は、フリーソフトウェアの中心的な考え方、UNIXのようなプロプライエタリなシステムとの関係、そしてカーネルとユーザーランドの設計における技術的相違(カーネルのアーキテクチャ)を扱うリンクや資料をたどることができる。これらの資料は、GNUがコンピューティングにおいて影響力あるプロジェクトであり続ける理由と、その成果が今日使われる多くのシステムをどのように支え続けているかを説明する助けとなる。
関連項目
著者
AlegsaOnline.com GNU(GNU's Not Unix)— フリーソフトウェアOSプロジェクト Leandro Alegsa
URL: https://ja.alegsaonline.com/art/39338