
GNUプロジェクト(/ ɡnuː /)ⓘ GNOO ) [ 3 ]は、リチャード・ストールマンによって発表されたフリーソフトウェアの大規模コラボレーションその目標は、誰もが自由に実行、コピー、配布、研究、変更する権利を付与するソフトウェアを共同で開発および公開することにより、コンピュータユーザーがコンピュータおよびコンピューティングを使用する際の自由と制御を提供することです。GNU ソフトウェアは、そのライセンス。
コンピュータのソフトウェア全体がユーザーにすべての権利 (使用、共有、研究、変更) を付与することを保証するためには、最も基本的で重要な部分であるオペレーティングシステムとそのすべてのユーティリティ プログラムでさえ、フリー ソフトウェアである必要があります。Stallman は、このオペレーティングシステムをGNU ( 「GNU は Unix ではない! 」という意味の再帰的頭字語) と呼ぶことに決め、その設計はプロプライエタリ オペレーティングシステムであるUnixの設計に基づいています。 [ 4 ]マニフェストによると、このプロジェクトの創設目標は、フリー オペレーティングシステムを構築すること、そして可能であれば、「フリーでないソフトウェアなしで作業できるように、通常 Unix システムに付属するすべての有用なもの」を構築することでした。開発は 1984 年 1 月に開始されました。1991 年に、Linus Torvaldsによって GNU プロジェクト外で開発されたLinux カーネルが登場し、[ 5 ] 1992 年 12 月にGNU General Public Licenseバージョン 2 の下で利用可能になりました。[ 6 ] GNUプロジェクトによって既に開発されていたオペレーティングシステムユーティリティと組み合わせることで、Linuxとして知られる最初のフリーソフトウェアオペレーティングシステムが実現した。[ 7 ] [ 8 ]
このプロジェクトの現在の活動には、ソフトウェア開発、啓発活動、政治キャンペーン、そして新しい資料の共有などが含まれる。
1970年代後半、リチャード・ストールマンは当時勤務していたMIT AIラボに設置された新しいプリンターに問題を抱えていた。そのプリンターは独自のファームウェアで動作していた。ストールマンはプリンターソフトウェアのコピーを入手してコードを編集し、問題を解決できないことに苛立ちを感じていた。この初期の経験から、非フリーソフトウェアの限界は社会問題であると認識するに至った。[ 9 ]
リチャード・ストールマンは、 1983年9月にUsenetメッセージでGNUプロジェクトのコーディングを開始する意向を発表した。[ 10 ]ストールマンはそれまでUnixを使ったことはなかったが、移植性が高く「かなりクリーン」であることから、GNUプロジェクトの基盤として最も適切なシステム設計だと感じていた。[ 11 ]
GNU プロジェクトが最初に始まったとき、エディタ コマンドを書くためのLispを備えたEmacsテキスト エディタ、ソース レベルのデバッガ、yacc互換のパーサージェネレータ、およびリンカがありました。[ 12 ] GNU システムは独自のCコンパイラとツールがフリー ソフトウェアである必要があったため、これらも開発する必要がありました。1987 年 6 月までに、プロジェクトはアセンブラ、ほぼ完成したポータブル最適化 C コンパイラ ( GCC )、エディタ ( GNU Emacs )、およびさまざまな Unix ユーティリティ (など)のフリー ソフトウェアを蓄積し、開発しました。[ 13 ]リチャードストールマンはGNU マニフェストで、GNU オペレーティングシステムの初期カーネルが存在することにも言及しました。そのカーネルはすぐにTRIXカーネルであることが明らかになりました。[ 14 ]開発者は TRIX を GNU カーネルのベースとして使用しようとしましたが、 GNU Machを優先してその取り組みを断念しました。lsgrepawkmakeld
カーネルとコンパイラが完成すると、GNU はプログラム開発に使用できるようになりました。主な目標は、 Unix システムのようなアプリケーションを多数作成することでした。GNU は Unix プログラムを実行できましたが、Unix と全く同じではありませんでした。GNU は、より長いファイル名、ファイル バージョン番号、クラッシュしないファイルシステムを組み込んでいました。GNU マニフェストは、プロジェクトへの支持と参加を得るために書かれました。プログラマーは、興味のあるプロジェクトのあらゆる側面に参加するよう奨励されました。人々は、資金、コンピュータ部品、あるいは自分の時間を寄付して、プロジェクトのためにコードやプログラムを書くことができました。[ 4 ]
GNUプロジェクト(およびフリーソフトウェア全般)の起源と発展のほとんどの側面については、Emacsヘルプシステムに詳細な解説が掲載されています。(Ch gでEmacsエディタコマンドを実行できますdescribe-gnu-project。)これは、公式サイトに掲載されているものと同じ詳細な歴史です。
GNU マニフェストは、GNU プロジェクトへの支持と参加を得るためにリチャード・ストールマンによって書かれました。マニフェストの中で、ストールマンはソフトウェアのユーザーにとって不可欠な 4 つの自由を挙げました。それは、あらゆる目的でプログラムを実行する自由、プログラムの仕組みを研究して変更する自由、コピーを再配布する自由、そして公共利用のために変更されたバージョンを改良および変更する自由です ( Gratis と libreも参照)。[ 15 ] [ 16 ]これらの自由を実現するには、ユーザーはソース コードへの完全なアクセスが必要でした。コードが自由であり続け、それを一般に提供できるようにするために、ストールマンはGNU General Public License (GPL) を作成しました。これにより、ソフトウェアと、そこから派生した将来の世代のコードが公共利用のために自由であり続けることが可能になります。
GNUプロジェクトの成果物のほとんどは技術的なものですが、その発足の経緯は社会的、倫理的、政治的な取り組みとして始まりました。ソフトウェアやライセンスの作成に加え、GNUプロジェクトは数多くの著作を発表しており、その大部分はリチャード・ストールマンによって執筆されています。
GNUプロジェクトは、ユーザーが自由にコピー、編集、配布できるソフトウェアを使用しています。[ 17 ]ユーザーが個々のニーズに合わせてソフトウェアを変更できるという意味で、自由です。プログラマーがフリーソフトウェアを入手する方法は、入手先によって異なります。ソフトウェアは友人やインターネット経由でプログラマーに提供される場合もあれば、プログラマーが勤務する会社がソフトウェアを購入する場合もあります。[ 18 ]
フリーソフトウェア財団の準会員からの収益、購入、寄付金はGNUプロジェクトを支援しています。[ 19 ]
GNUプロジェクトは、貢献者がGNUパッケージの著作権をフリーソフトウェア財団に譲渡することを推奨しているが[ 20 ] [ 21 ]、フリーソフトウェア財団は、既存のプロジェクトへの小さな変更をパブリックドメインにリリースすることは許容できると考えている[ 22 ]。ただし、これは必須ではない。パッケージメンテナは、自身が管理するGNUパッケージの著作権を保持することができるが、使用されているライセンス(GNU GPLなど)を強制できるのは著作権者のみであるため、この場合はフリーソフトウェア財団ではなく著作権者がそれを強制する[ 23 ] 。
必要なソフトウェアの開発のために、Stallman は、ユーザーがフリー ソフトウェアを共有および変更する自由を保証することを目的として、GNU General Public License (当初は Emacs General Public License と呼ばれていた) と呼ばれるライセンスを作成しました。 [ 24 ] Stallman は、 GNU Emacsプログラムでのソフトウェア コードの使用に関する論争をめぐって、 James Goslingと UniPress というプログラムでの経験からこのライセンスを作成しました。[ 25 ] [ 26 ] 80 年代のほとんどの間、各 GNU パッケージには、Emacs General Public License、GCC General Public License など、独自のライセンスがありました。1989 年に、FSF は、すべてのソフトウェアに使用でき、非 GNU プロジェクトでも使用できる単一のライセンス、GNU General Public License (GPL) を公開しました。[ 25 ] [ 27 ]
このライセンスは現在、ほとんどの GNU ソフトウェアだけでなく、GNU プロジェクトの一部ではない多数のフリー ソフトウェア プログラムでも使用されています。また、歴史的に最も一般的に使用されているフリー ソフトウェア ライセンスでもあります(最近MIT ライセンスによって異議を唱えられています)。[ 28 ] [ 29 ]このライセンスは、プログラムのすべての受領者に、プログラムを実行、コピー、変更、配布する権利を与えますが、配布するコピーにそれ以上の制限を課すことは禁止しています。この考え方は、しばしばコピーレフトと呼ばれます。[ 30 ]
1991年、 GNU Cライブラリをプロプライエタリソフトウェアとリンクできるようにするために、当時ライブラリ一般公衆ライセンスとして知られていたGNU Lesser General Public License (LGPL)がGNU Cライブラリ用に作成されました。 [ 31 ] 1991年にはGNU GPLのバージョン2もリリースされました。ドキュメント用のGNU Free Documentation License (FDL)は2000年に続きました。 [ 32 ] GPLとLGPLは2007年にバージョン3に改訂され、ユーザーが自分のデバイスで変更されたソフトウェアを実行することを妨げるハードウェア制限からユーザーを保護する条項が追加されました。[ 33 ]
GNU のパッケージ以外にも、GNU プロジェクトのライセンスは[ 34 ] 、 Linux カーネルなど、多くの無関係なプロジェクトで使用されており、 GNU ソフトウェアと併用されることが多い。X Window System [ 35 ]などのフリー ソフトウェアの大部分は、寛容なフリー ソフトウェア ライセンスの下でライセンスされている。[ 36 ]
コピーレフトライセンスは、他のプログラマーによるこのソフトウェアの自由な利用を維持するのに役立ちます。コピーレフトは、配布条件が変更されない限り、プログラムまたはプログラムのコードを合法的に使用、編集、再配布する権利をすべての人に与えます。その結果、ソフトウェアを合法的に入手したユーザーは、他のユーザーと同じ自由度を持つことができます。
GNU プロジェクトとフリー ソフトウェア財団は、「強い」コピーレフト ライセンスと「弱い」コピーレフト ライセンスを区別することがあります。「弱い」コピーレフト プログラムは通常、配布者が非フリー プログラムとリンクすることを許可しますが、「強い」コピーレフトではこの行為を厳しく禁止します。GNU プロジェクトの成果物のほとんどは強いコピーレフトの下でリリースされていますが、一部は弱いコピーレフトまたは緩い、譲歩的なフリー ソフトウェア ライセンスの下でリリースされています。[ 37 ] [ 38 ]

GNUプロジェクトの最初の目標は、完全なフリーソフトウェアのオペレーティングシステムを作成することでした。UNIXは当時すでに広く普及しており、同時代のCP/MやMS-DOSマシンに比べてより高性能なマシンで動作していたため[ 39 ] 、 Unixライクなオペレーティングシステムにすることが決定されました。リチャード・ストールマンは後に、MS-DOSを「おもちゃ」だと考えていたと述べています[ 40 ] 。
1992 年までに、GNU プロジェクトは主要なオペレーティングシステムユーティリティをすべて完成させていましたが、提案していたオペレーティングシステムカーネルであるGNU Hurdは完成していませんでした。1992 年にLinux カーネルが初めて GPLv2 の下でバージョン 0.12 でリリースされたことで (このプロジェクトは1991 年にLinus Torvaldsによって独立して開始されましたが、GPL の下ではありませんでした)、完全にフリー ソフトウェアで構成されたオペレーティングシステムを実行できるようになりました。Linux カーネルは GNU プロジェクトの一部ではありませんが、GCCやその他の GNU プログラミングツールを使用して開発され、 GNU General Public Licenseの下でフリー ソフトウェアとしてリリースされました。[ 41 ] Linux カーネルのコンパイルのほとんどは今でも GNU ツールチェーンを使用して行われていますが、現在ではコンパイルにClangコンパイラとLLVMツールチェーンを使用することもできます。[ 42 ]
現在に至るまで、GNUプロジェクトは35年以上前にGNU/Hurdプロジェクトが開始されて以来、本番環境に適したGNU/Hurdのバージョンをリリースしていません。[ 43 ]
GNUフリーシステム配布ガイドライン(GNU FSDG)は、インストール可能なシステム配布物(Linuxディストリビューションなど)がフリー(自由)である条件を説明するシステム配布に関する取り組みであり、配布物の開発者が自らの配布物をフリー(自由)と認定するのに役立ちます。
このリストは主に、GNU パッケージとLinux-libreカーネル (バイナリ ブロブ、難読化されたコード、およびプロプライエタリ ライセンスのコードの一部を削除した修正 Linux カーネル) の組み合わせであり、フリー ソフトウェアのみで構成され (プロプライエタリ ソフトウェアを一切排除している) るディストリビューションについて説明しています。[ 44 ] [ 45 ] [ 46 ] GNU FSDG を採用しているディストリビューションには、 Dragora GNU/Linux-Libre、GNU Guix System、Hyperbola GNU/Linux-libre、Parabola GNU/Linux-libre、Trisquel GNU/Linux、PureOSなどがあります。[ 47 ]
2022年、DebianはFSF公認ディストリビューションになる寸前だったが、サーバー上に非フリーパッケージのリポジトリがもう一つあったため、FSF公認にはならなかった。そして2022年、Debian 12はインストーラーに非フリーハードウェアが非フリーコードを実行することで動作するためのオプションを追加した。[ 48 ]
Fedoraプロジェクトの配布ライセンスガイドラインはFSDGの基礎として使用されました。[ 49 ]しかし、Fedoraプロジェクト自身のガイドラインは現在FSDGに従っていないため、GNUプロジェクトはFedoraを完全なフリー(libre)GNU/Linuxディストリビューションとはみなしていません。[ 46 ]
1990年代半ば以降、多くの企業がフリーソフトウェア開発に投資するようになったため、フリーソフトウェア財団は資金をフリーソフトウェア開発の法的・政治的支援に振り向けた。それ以降のソフトウェア開発は、既存プロジェクトの維持に重点を置き、フリーソフトウェアコミュニティに深刻な脅威が生じた場合にのみ新規プロジェクトを開始するようになった。GNUプロジェクトで最も注目すべきプロジェクトの一つはGNUコンパイラコレクションであり、その構成要素は多くのUnix系システムで標準コンパイラシステムとして採用されている。
GNUプロジェクトによるほとんどの作品の著作権は、フリーソフトウェア財団が所有しています。[ 50 ]
GNOMEデスクトッププロジェクトは、別のデスクトップシステムであるKDEが人気を集めていたものの、当時プロプライエタリソフトウェアであったQtのインストールをユーザーに要求していたため、GNUプロジェクトによって開始されました。人々がKDEとQtをインストールしたくなるのを防ぐため、GNUプロジェクトは同時に2つのプロジェクトを開始しました。1つはHarmonyツールキットです。これはQtのフリーソフトウェア代替品を作成しようとする試みでした。このプロジェクトが成功していれば、KDEの問題点は解決されていたでしょう。2つ目のプロジェクトはGNOMEで、同じ問題を別の角度から解決しようとしました。プロプライエタリソフトウェアに依存しないKDEの代替品を作成することを目指しました。Harmonyプロジェクトはあまり進展しませんでしたが、GNOMEは非常に順調に開発が進みました。最終的に、KDEが依存していたプロプライエタリコンポーネント(Qt)はフリーソフトウェアとしてリリースされました。[ 51 ] GNOMEはその後GNUプロジェクトとフリーソフトウェア財団から分離し、現在はGNOMEプロジェクトによって独立して管理されています。[ 52 ]
GNU Enterprise ( GNUe ) は 1996 年に開始されたメタプロジェクトであり、[ 53 ] GNU プロジェクトのサブプロジェクトとみなすことができます。GNUe の目標は、無料の「エンタープライズクラスのデータ認識アプリケーション」(エンタープライズ リソース プランナーなど)を作成することです。GNUe は、GNU システム用のエンタープライズ ソフトウェアを単一の場所に収集するように設計されていました (GNOME プロジェクトがデスクトップ ソフトウェアを収集するのとよく似ています)。後に廃止されました。[ 54 ]
2001年、GNUプロジェクトは「自由に利用可能で再配布および変更可能なソフトウェアの普及度、広範さ、および品質により、研究開発と商業開発の世代を可能にした」としてUSENIX生涯功労賞を受賞しました。[ 55 ]
このグラフィックを寄贈してくださったAurelio A. Heckert氏に感謝いたします。
この図はエティエンヌ・スヴァサによって描かれた。
「GNU」という名前は、「GNU は Unix ではない!」の再帰的頭字語です。g
と
n
の間に母音のない 1 音節として
g-noo
と
発音します。
...カーネルを指すのに「Linux」または「Linux kernel」という表現を使用し、GNU/GPLでライセンスされたOSソフトウェア全体を指すのにGNU/Linuxを使用しようと試みてきましたが、... ...多くの人が、linux kernel mailing listはカーネル関連の問題を議論するためのフォーラムであり、GNU/Linux全般を議論するためのフォーラムではないことを忘れています...
今日、私たちの焦点はクラウドとモバイルにあり、私たちは明らかに両方の面でGNU/Linuxをリードしています。
つまり、プログラマーとしての私たちのスキルにもかかわらず(結局のところ、私たちは独自のタイムシェアリング システムを作成しました)、プリンター ソフトウェアにこの機能を追加することは全くできませんでした。
これは、GNU General Public LicenseまたはGNU Lesser General Public Licenseの下で配布されていない数少ないGNUファイルの1つであり、X11 Licenseのようなライセンスの下で配布されています。
特定のケースでは Lesser GPL を使用する方が良い理由があります。
まだいくつかのバグや不足している機能があるため、実運用には適さない可能性があります。
これらのポリシーの焦点を絞る上で協力し、この文書の基礎として独自の配布ライセンスガイドラインを使用することを許可してくれたFedoraプロジェクトに感謝します。