GNUプロジェクト

GNUマスコット、Aurelio A. Heckert作[ 1 ](Etienne Suvasaによるより詳細なバージョンから派生)[ 2 ]

GNUプロジェクト/ ɡnuː / GNOO ) [ 3 ]は、リチャード・ストールマンが1983年9月27日に発表したフリーソフトウェアの規模共同。その目的は、誰もが自由に実行、コピー、配布、研究、変更する権利を持つソフトウェアを共同で開発および公開することにより、コンピュータユーザーにコンピュータとコンピューティングデバイスの自由と制御を提供することです。GNUソフトウェアは、ライセンス

コンピュータのソフトウェア全体がユーザーにすべての権利(使用、共有、調査、変更)を与えるためには、最も基本的で重要な部分であるオペレーティングシステムとそのすべてのユーティリティプログラムでさえ、フリーソフトウェアである必要があります。ストールマンは、プロプライエタリオペレーティングシステムであるUnixの設計に基づいて設計されているため、このオペレーティングシステムをGNU(「GNUはUnixではない! 」を意味する再帰的な頭字語)と呼ぶことにしました。[ 4 ]その宣言によると、プロジェクトの設立目標は、フリーオペレーティングシステムを構築すること、そして可能であれば「Unixシステムに通常付属するすべての便利な機能を備え、フリーでないソフトウェアがなくてもやっていけるようにすること」でした。開発は1984年1月に開始されました。1991年には、GNUプロジェクトの外でLinus Torvaldsによって開発されたLinuxカーネルが登場し、[ 5 ] 1992年12月にGNU一般公衆利用許諾書バージョン2の下で利用可能になりました。[ 6 ] GNUプロジェクトによって既に開発されていたオペレーティングシステムユーティリティと組み合わせることで、フリーソフトウェアである最初のオペレーティングシステム(一般にLinuxとして知られる)が誕生しました。[ 7 ] [ 8 ]

プロジェクトの現在の活動には、ソフトウェア開発、意識啓発、政治運動、新しい資料の共有などが含まれます。

起源

1970年代後半、リチャード・ストールマンは当時勤務していたMIT AIラボに導入された新しいプリンターに問題を抱えていました。そのプリンターはプロプライエタリなファームウェアを使用していました。リチャード・ストールマンは、プリンターのソフトウェアのコピーを入手してコードを編集し、問題を解決できないことに苛立ちを感じていました。この初期の経験から、彼は非フリーソフトウェアの限界が社会問題であることを認識しました。[ 9 ]

リチャード・ストールマンは1983年9月にユーズネットのメッセージでGNUプロジェクトのコーディングを開始する意向を発表しました。[ 10 ]ストールマンはそれまでUnixを使ったことがなかったにもかかわらず、移植性が高く「かなりクリーン」であるため、GNUプロジェクトの基盤として最も適切なシステム設計であると感じました。[ 11 ]

GNUプロジェクトが始まった当初は、エディタコマンドを書くためのLispを備えたEmacsテキストエディタ、ソースレベルデバッガyacc互換のパーサジェネレータ、リンカがありました。[ 12 ] GNUシステムでは、独自のCコンパイラとツールがフリーソフトウェアである必要があったため、これらも開発する必要がありました。1987年6月までに、プロジェクトは、アセンブラ、ほぼ完成した移植可能な最適化Cコンパイラ(GCC)、エディタ(GNU Emacs)、さまざまなUnixユーティリティ(、、、など)のフリーソフトウェアを蓄積および開発しました。 [ 13 ]リチャード・ストールマンは、 GNUオペレーティングシステム用の最初のカーネルが存在するともGNU宣言で述べています。そのカーネルはすぐにTRIXカーネルであることが明らかになりました。[ 14 ]開発者TRIXGNUカーネルのベースとして利用しようとしましたが、 GNU Machを支持してその努力を断念しました。 lsgrepawkmakeld

カーネルとコンパイラが完成すると、GNUはプログラム開発に利用できるようになりました。主な目標は Unixシステムに似た多くのアプリケーションを作成することでした。GNUはUnixプログラムを実行できましたが、Unixと完全に同一ではありませんでした。GNUは、より長いファイル名、ファイルバージョン番号、そしてクラッシュプルーフファイルシステムを組み込んでいました。GNU宣言は、プロジェクトへの他者からの支援と参加を得るために書かれました。プログラマーは、興味のあるプロジェクトのあらゆる側面に参加することが奨励されました。人々は資金、コンピュータ部品、あるいは自分の時間を寄付して、プロジェクトのためにコードやプログラムを書くことができました。[ 4 ]

GNU プロジェクト(およびフリーソフトウェア全般)のほとんどの側面の起源と発展については、Emacs ヘルプ システムの詳細な説明で共有されています。(Ch g は Emacs エディタ コマンド を実行しますdescribe-gnu-project。)これは、Emacs の Web サイトに掲載されている詳細な歴史と同じです。

GNU宣言

GNU宣言は、リチャード・ストールマンがGNUプロジェクトへの支持と参加を得るために書いたものです。宣言の中で、ストールマンはソフトウェア利用者にとって不可欠な4つの自由を挙げています。それは、プログラムをあらゆる目的で実行する自由、プログラムの仕組みを研究し改変する自由、複製を再配布する自由、改変版を公共の利用のために改良・変更する自由(無償と自由も参照)です。[ 15 ] [ 16 ]これらの自由を実現するために、利用者はソースコードに完全にアクセスできる必要がありました。コードが無料のまま公衆に提供されることを保証するために、ストールマンはGNU一般公衆利用許諾書(GPL)を作成しました。これにより、ソフトウェアおよびそこから派生した将来の世代のコードは公共の利用において無料のままとなります。

哲学と行動主義

GNUプロジェクトの成果物の大部分は技術的な性質のものですが、社会的、倫理的、そして政治的な取り組みとして立ち上げられました。GNUプロジェクトは、ソフトウェアやライセンスの作成に加え、数多くの著作を発表しており、その多くはリチャード・ストールマンが執筆したものです。

フリーソフトウェア

GNUプロジェクトは、ユーザーが自由にコピー、編集、配布できるソフトウェアを使用しています。[ 17 ]自由とは、ユーザーが個々のニーズに合わせてソフトウェアを変更できるという意味です。プログラマーがフリーソフトウェアを入手する方法は、入手先によって異なります。友人やインターネット経由で提供される場合もあれば、プログラマーが勤務する会社が購入する場合もあります。[ 18 ]

資金調達

フリーソフトウェア財団の準会員、購入、寄付からの収益はGNUプロジェクトを支援しています。 [ 19 ]

コピーレフト

コピーレフトライセンスは、他のプログラマーによるソフトウェアの自由な利用を維持するのに役立ちます。コピーレフトは、配布条件が変更されない限り、すべての人にプログラムまたはプログラムのコードを使用、編集、再配布する法的権利を与えます。その結果、ソフトウェアを合法的に入手したすべてのユーザーは、他のユーザーと同じ自由を持ちます。

GNUプロジェクトとフリーソフトウェア財団は、「強い」コピーレフトライセンスと「弱い」コピーレフトライセンスを区別することがあります。「弱い」コピーレフトライセンスのプログラムは通常、配布者が非フリープログラムとリンクすることを許可しますが、「強い」コピーレフトライセンスでは、このような行為は厳しく禁止されます。GNUプロジェクトの成果物の大部分は強いコピーレフトライセンスの下でリリースされていますが、一部は弱いコピーレフトライセンス、あるいは緩く、押し通しのフリーソフトウェアライセンスの下でリリースされています。[ 20 ] [ 21 ]

オペレーティングシステム開発

GNU Hurd ライブ CD

GNUプロジェクトの当初の目標は、完全なフリーソフトウェア・オペレーティングシステムを構築することでした。UNIXは既に広く普及しており、当時のCP/MMS-DOSマシンと比較して、より高性能なマシンで動作していたため、[ 22 ] Unixライクなオペレーティングシステムとなることが決定されました。リチャード・ストールマンは後に、MS-DOSを「おもちゃ」と考えていたと述べています。[ 23 ]

1992年までに、GNUプロジェクトは主要なオペレーティングシステムユーティリティをすべて完成させましたが、提案されたオペレーティングシステムカーネルであるGNU Hurdはまだ完成していませんでした。 1992年にLinuxカーネルバージョン0.12が初めてGPLv2の下でリリースされたことで(このプロジェクトは1991年にLinus Torvaldsによって独立して開始されましたが、GPLの下ではありませんでした)、完全にフリーソフトウェアで構成されたオペレーティングシステムを実行することが可能になりました。LinuxカーネルはGNUプロジェクトの一部ではありませんが、GCCやその他のGNUプログラミングツールを使用して開発され、 GNU一般公衆利用許諾書の下でフリーソフトウェアとしてリリースされました。[ 24 ] LinuxカーネルのコンパイルのほとんどはまだGNUツールチェーンで行われていますが、現在ではコンパイルにClangコンパイラとLLVMツールチェーンを使用することもできます。[ 25 ]

現時点では、GNUプロジェクトは35年以上前にGNU/Hurdプロジェクトが開始されて以来、実稼働環境に適したバージョンのGNU/Hurdをリリースしていません。 [ 26 ]

GNU/Linux

GNUの安定版(またはバリアント)は、GNUパッケージとLinuxカーネルを組み合わせることで実行でき、機能的なUnixライクなシステムを構築できます。GNUプロジェクトはこれをGNU/Linuxと呼んでおり、その特徴は以下のとおりです。

GNUウェブサイトにはプロジェクトのリストが掲載されており、各プロジェクトには、GNUプロジェクトの特定の部分に必要なタスクを実行できる開発者のタイプが具体的に示されています。スキルレベルはプロジェクトごとに異なりますが、プログラミングの知識をお持ちの方であればどなたでもプロジェクトへの支援を歓迎します。

GNUツールをLinuxカーネルやその他のプログラムと共にパッケージ化したものは、通常Linuxディストリビューション(ディストロ)と呼ばれます。GNUプロジェクトは、GNUとLinuxカーネルの組み合わせを「GNU/Linux」と呼び、他のプロジェクトにも同様の呼称を求めています。[ 38 ]この結果、 GNU/Linuxの命名論争が巻き起こりました。

ほとんどのLinuxディストリビューションは、GNUパッケージと独自のバイナリBLOBを含むLinuxカーネルを組み合わせています。[ 39 ]

GNUフリーシステム配布ガイドライン

GNU フリー システム ディストリビューション ガイドライン (GNU FSDG) は、インストール可能なシステム ディストリビューション (Linux ディストリビューションなど) がフリー (libre) として適格となる条件を説明し、ディストリビューション開発者がディストリビューションをフリーとして適格となるように支援するシステム ディストリビューションの取り組みです。

このリストは主に、GNU パッケージとLinux-libreカーネル (バイナリ blob、難読化コード、プロプライエタリ ライセンスのコード部分を取り除いた修正 Linux カーネル) を組み合わせ、フリー ソフトウェアのみ (プロプライエタリ ソフトウェアを完全に排除) で構成されたディストリビューションについて説明しています。[ 40 ] [ 41 ] [ 39 ] GNU FSDG を採用しているディストリビューションには、 Dragora GNU/Linux-LibreGNU Guix SystemHyperbola GNU/Linux-libreParabola GNU/Linux-libreTrisquel GNU/LinuxPureOSなどがあります。[ 42 ]

2022年、DebianはFSF承認ディストリビューションになる寸前でしたが、サーバー上に非フリーパッケージを含む別のリポジトリがあったため、FSF承認には至りませんでした。また、2022年にDebian 12では、非フリーハードウェアで非フリーコードを実行するためのオプションがインストーラーに追加されました。[ 43 ]

FedoraプロジェクトのディストリビューションライセンスガイドラインはFSDGの基礎として使用されました。[ 44 ]しかし、Fedoraプロジェクト自身のガイドラインは現在FSDGに準拠しておらず、そのためGNUプロジェクトはFedoraを完全にフリー(libre)なGNU/Linuxディストリビューションとは考えていません。[ 39 ]

戦略プロジェクト

1990年代半ば以降、多くの企業がフリーソフトウェア開発に投資するようになり、フリーソフトウェア財団は資金をフリーソフトウェア開発の法的および政治的支援に振り向けるようになりました。それ以降のソフトウェア開発は、既存プロジェクトの維持に重点が置かれ、フリーソフトウェアコミュニティに深刻な脅威が生じた場合にのみ、新規プロジェクトが開始されました。GNUプロジェクトの最も注目すべきプロジェクトの一つはGNUコンパイラコレクションであり、そのコンポーネントは多くのUnix系システムの標準コンパイラシステムとして採用されています。

GNUプロジェクトのほとんどの作品の著作権はフリーソフトウェア財団が所有しています。[ 45 ]

GNOME

GNUプロジェクトがGNOMEデスクトップの取り組みを開始したのは、別のデスクトップシステムであるKDEが人気を集めていたものの、当時プロプライエタリソフトウェアだったQtのインストールが必要だったためです。ユーザーがKDEとQtをインストールしたくなる誘惑に負けないよう、GNUプロジェクトは2つのプロジェクトを同時に立ち上げました。1つはHarmonyツールキットです。これは、Qtのフリーソフトウェア代替品を作ろうとする試みでした。このプロジェクトが成功していれば、KDEの問題点が解決されていたでしょう。2つ目のプロジェクトはGNOMEで、これは同じ問題に別の角度から取り組みました。プロプライエタリソフトウェアに依存しないKDEの代替品を作ることを目指しました。Harmonyプロジェクトはあまり進展しませんでしたが、GNOMEは非常に順調に開発されました。最終的に、KDEが依存していたプロプライエタリコンポーネント(Qt)はフリーソフトウェアとしてリリースされました。[ 46 ] GNOMEはその後GNUプロジェクトおよびフリーソフトウェア財団から離脱し、現在はGNOMEプロジェクトによって独立して管理されています。[ 47 ]

GNUエンタープライズ

GNUエンタープライズGNUe)は1996年に開始されたメタプロジェクトであり、[ 48 ] GNUプロジェクトのサブプロジェクトとみなすことができます。GNUeの目標は、無料の「エンタープライズクラスのデータ対応アプリケーション」(エンタープライズリソースプランナーなど)を作成することです。GNUeは、GNUシステム用のエンタープライズソフトウェアを単一の場所に収集するように設計されており(GNOMEプロジェクトがデスクトップソフトウェアを収集するのと同様に)、後に廃止されました。[ 49 ]

認識

2001年、GNUプロジェクトは「自由に利用可能で再配布可能かつ改変可能なソフトウェアの普遍性、広範さ、そして品質により、一世代にわたる研究と商業開発を可能にした」としてUSENIX生涯功労賞を受賞した。[ 50 ]

参照

参考文献

  1. ^ 「A Bold GNU Head」。2014年12月5日時点のオリジナルよりアーカイブ。2014年11月30日閲覧。このグラフィックを提供してくださったAurelio A. Heckert氏に感謝します。
  2. ^ 「A GNU Head」2011年7月28日時点のオリジナルよりアーカイブ2014年11月30日閲覧。このグラフィックはエティエンヌ・スヴァサが描いたものです。
  3. ^ 「GNUとは何か?」 . GNUオペレーティングシステム.フリーソフトウェア財団. 2009年9月4日. 2004年4月2日時点のオリジナルよりアーカイブ2009年10月9日閲覧。「GNU」という名称は、「GNUはUnixではない!」の再帰的頭字語であり、「g-noo」と発音され、 gnの間に母音のない1音節である
  4. ^ a b「GNU宣言」 .フリーソフトウェア財団. 2007年7月21日. 2018年7月14日時点のオリジナルよりアーカイブ2015年10月8日閲覧。
  5. ^ Torvalds, Linus Benedict (1991年8月). "comp.os.minix" . 2013年5月9日時点のオリジナルよりアーカイブ2009年9月6日閲覧。
  6. ^ 「Linuxバージョン0.99のz-archive」。Linuxカーネルアーカイブ。1992年12月。2017年1月30日時点のオリジナルよりアーカイブ
  7. ^ Balsa, Andrew D. 「Linuxカーネルメーリングリスト FAQ」 . Linuxカーネルアーカイブ. Kernel.org. 2012年10月1日時点のオリジナルからのアーカイブ。 2013年6月13日閲覧…私たちは「Linux」という単語や「Linuxカーネル」という表現をカーネルを指し、「GNU/Linux」をGNU/GPLのOSソフトウェア全体を指すものとして使おうとしてきましたが……多くの人が、Linuxカーネルメーリングリストはカーネル関連の議論の場であり、GNU/Linux全般に関する議論の場ではないことを忘れています…
  8. ^ Mark Shuttleworth (2014年2月14日). 「Losing graciously」 . 2014年3月22日時点のオリジナルよりアーカイブ2014年4月27日閲覧。現在、私たちはクラウドとモバイルに注力しており、どちらの分野でもGNU/Linuxをリードしていることは明らかです。
  9. ^ https://www.gnu.org/philosophy/rms-nyu-2001-transcript.txt
  10. ^リチャード・ストールマン. 「新しいUnix実装」 . 2011年1月22日時点のオリジナルよりアーカイブ2013年9月27日閲覧。
  11. ^ Stallman, Richard (2022). 「How I do my computing」 . 2023年1月31日時点のオリジナルよりアーカイブ2023年1月31日閲覧。
  12. ^ Wardrip-Fruin, Noah; Nick Montfort. 「GNU宣言」. The NewMediaReader . マサチューセッツ州ケンブリッジ: MIT, 2003. pp.545–550.
  13. ^ 「GNUの速報、第1巻第3号」gnu.org1987年6月。2015年11月25日時点のオリジナルよりアーカイブ。 2014年4月18日閲覧
  14. ^ https://www.gnu.org/gnu/manifesto.en.html#whats-gnu
  15. ^リチャード・ストールマン(1985年3月)「GNU宣言 – GNUプロジェクト – フリーソフトウェア財団(FSF)」gnu.org GNUプロジェクト。2018年7月14日時点のオリジナルよりアーカイブ。 2011年10月18日閲覧
  16. ^ Weber, S. (2004).『オープンソースの成功』 ケンブリッジ: ハーバード大学出版局.
  17. ^ 「4つの不可欠な自由」 . GNUオペレーティングシステム. フリーソフトウェア財団. 2024年1月1日. 2025年12月23日閲覧
  18. ^ 「フリーソフトウェアは商用化できる」 GNUオペレーティングシステムFree Software Foundation, Inc. 2024年1月1日. 2025年12月23日閲覧
  19. ^ GNUプロジェクトとフリーソフトウェア運動への支援 – GNUプロジェクト – フリーソフトウェア財団 2015年12月25日アーカイブ、 Wayback Machine . gnu.org. 2013年7月17日閲覧。
  20. ^ "Ncurses" . wiki.freedesktop.org . 2021年3月22日時点のオリジナルからのアーカイブ。 2019年3月18日閲覧これは、GNU一般公衆利用許諾書(GNU General Public License)またはGNU劣等一般公衆利用許諾書(Lesser General Public License)の下で配布されていない数少ないGNUファイルの一つであり、X11ライセンスのようなライセンスの下で配布されています。
  21. ^ 「なぜ次のライブラリに劣等GPLを使うべきではないのか」 GNU . 2007年11月26日時点のオリジナルよりアーカイブ。 2019年3月18日閲覧場合によっては、劣等GPLを使う方がよい理由がいくつかあります。
  22. ^ 「GNU's Bulletin Volume 1 No.1」 1986年2月. 2015年6月23日時点のオリジナルよりアーカイブ2020年8月16日閲覧。
  23. ^ “Richard Stallman: Freedom” . Radio New Zealand . 2008年8月9日. 2020年10月31日時点のオリジナルよりアーカイブ2020年8月16日閲覧。
  24. ^ Linus Benedict Torvalds (1991年8月26日). "What would you like to see most in minix?" . comp.os.minix. 2013年4月30日時点のオリジナルよりアーカイブ2016年7月28日閲覧。
  25. ^カーネル開発コミュニティ。「Clang/LLVMを使用したLinuxのビルド」。Linuxカーネルドキュメント。2022年9月27日時点のオリジナルよりアーカイブ。 2022年10月8日閲覧
  26. ^ "GNU Hurd/ hurd/ status" . GNUオペレーティングシステム. フリーソフトウェア財団. 2020年11月12日時点のオリジナルよりアーカイブ。 2018年4月15日閲覧バグや機能不足が残っているため、実稼働環境での使用には適さない可能性があります。
  27. ^ a b「すべてのGNUパッケージ」 . gnu.org . 2015年12月25日時点のオリジナルよりアーカイブ2014年4月18日閲覧。
  28. ^ a b GNU @ Free Software Directory 2015年12月5日アーカイブ、 Wayback Machine (fsf.org)
  29. ^ 「POSIX – GNU C ライブラリ」2014年4月24日時点のオリジナルよりアーカイブ2014年4月18日閲覧。
  30. ^ GNU C ライブラリ#一時的なフォーク
  31. ^ GCC アーキテクチャ
  32. ^ 「Linuxカーネルアーカイブ」2011年2月21日時点のオリジナルよりアーカイブ2016年7月25日閲覧。
  33. ^ 「Linux v0.12 リリースノート」2013年5月26日時点のオリジナルよりアーカイブ2012年12月24日閲覧。
  34. ^ GPLライセンスのプログラムすべてにGNU/命名規則を適用すべきか? 2013年9月7日アーカイブ、ウェイバックマシンGNU/Linux FAQ by Richard Stallman
  35. ^なぜ「GNU Linux」ではなく「GNU/Linux」と書くのですか? 2013年9月7日アーカイブWayback Machine GNU/Linux FAQ by Richard Stallman
  36. ^ Linus Torvalds の著作を GNU と呼ぶのは間違いではないでしょうか? 2013年9月7日アーカイブ、 Wayback Machine GNU/Linux FAQ by Richard Stallman
  37. ^ Linus TorvaldsはLinuxが単なるカーネルであるということに同意しますか? 2013年9月7日アーカイブWayback Machine GNU/Linux FAQ by Richard Stallman
  38. ^ 「なぜLinuxではなくGNU/Linuxと呼ぶのですか?」 2013年9月7日時点のオリジナルよりアーカイブ2014年4月18日閲覧
  39. ^ a b c「他のシステムを推奨しない理由の説明」 GNU . 2011年4月24日時点のオリジナルよりアーカイブ。 2016年7月22日閲覧
  40. ^ 「フリーシステムディストリビューションのガイドライン」gnu.org。 2015年12月8時点のオリジナルよりアーカイブ2014年4月17日閲覧。
  41. ^ 「破滅的な妥協を避ける」 www.gnu.org . 2018年6月22日時点のオリジナルよりアーカイブ。 2016年7月22日閲覧
  42. ^ 「無料GNU/Linuxディストリビューション一覧 – GNUプロジェクト – フリーソフトウェア財団」gnu.org。 2014年12月16時点のオリジナルよりアーカイブ。 2014年8月18日閲覧
  43. ^ https://www.gnu.org/distros/common-distros.html
  44. ^ 「フリーシステムディストリビューションガイドライン(GNU FSDG)– GNUプロジェクト」 gnu.org .発行元。2015年12月8日時点のオリジナルからのアーカイブ。 2014年6月7日閲覧これらのポリシーの焦点を絞る上でご協力いただき、また、本文書のベースとしてFedoraプロジェクト独自のディストリビューションライセンスガイドラインの使用を許可していただいたことに感謝申し上げます。
  45. ^ Moglen, Eben. 「なぜFSFは貢献者から著作権譲渡を受けるのか」 GNUプロジェクト2023年5月11日時点のオリジナルよりアーカイブ。 2023年5月11日閲覧
  46. ^リチャード・ストールマン (2000年9月5日). 「ストールマン氏、Qt、GPL、KDE、GNOMEについて語る」 . Linux Today. 2012年4月19日時点のオリジナルよりアーカイブ。 2005年9月9日閲覧
  47. ^ https://x.com/nmcgovern/status/1382360647464316931
  48. ^ 「GNU Enterpriseプロジェクトの歴史 – GNU Enterprise」 . 2013年1月16日. 2013年1月16日時点のオリジナルよりアーカイブ2019年2月18日閲覧。
  49. ^ 「GNU Enterprise ホームページ」
  50. ^ 「USENIX生涯功労賞("The Flame")」 USENIX。2007年12月28日時点のオリジナルよりアーカイブ2007年12月5日閲覧。