GNU プロジェクトに関する簡単な情報。 GNU と GPL とは何ですか? コンピュータ製造元が提供する UNIX

もともと本に掲載されていたもの オープンソース。 Richard Stallman は でしたが、フリー ソフトウェア運動のアイデアがその本から完全に欠けてしまわないように、この記事を寄稿しました。

初のソフトウェア共有コミュニティ

1971 年に MIT 人工知能研究所で働き始めたとき、私は長年存在していたソフトウェア共有コミュニティの一員になりました。 ソフトウェアの共有は特定のコミュニティに限定されませんでした。 レシピの共有が料理と同じくらい古いのと同じように、それはコンピューターと同じくらい古いものです。 しかし、私たちは他の多くの人よりもそれをやり遂げました。

AI ラボでは、研究所のスタッフのハッカー (1) が当時の大型コンピューターの 1 つである Digital PDP -10 用に設計し、アセンブラー言語で作成した ITS (非互換タイムシェアリング システム) と呼ばれるタイムシェアリング オペレーティング システムを使用していました。このコミュニティのメンバーであり、AI Lab のスタッフ システム ハッカーである私の仕事は、このシステムを改善することでした。

私たちはソフトウェアを「フリー ソフトウェア」とは呼びませんでした。なぜなら、その用語はまだ存在していなかったからです。 しかし、それはそうでした。 他の大学や企業の人々がプログラムを移植して使用したいと考えたときは、喜んで許可しました。 誰かが馴染みのない興味深いプログラムを使用しているのを見たら、いつでもソース コードを見せてもらい、それを読んだり、変更したり、その一部を共食いして新しいプログラムを作成したりすることができます。

(1) 「ハッカー」を「セキュリティ破壊者」という意味で使用するのは、マスメディア側の混乱です。 私たちハッカーはその意味を認識することを拒否し、プログラミングを愛する人、遊び心のある賢さを楽しむ人、またはその 2 つの組み合わせを意味するためにこの言葉を使い続けています。 私の記事「ハッキングについて」を参照してください。

コミュニティの崩壊

1980 年代初頭に Digital が PDP-10 シリーズを生産中止したため、状況は大きく変わりました。 60 年代にはエレガントで強力だったそのアーキテクチャは、80 年代に実現可能になりつつあったより大きなアドレス空間に自然に拡張することはできませんでした。 これは、ITS を構成するほぼすべてのプログラムが廃止されたことを意味します。

AI Lab のハッカー コミュニティは、少し前にすでに崩壊していました。 1981 年、スピンオフ会社シンボリックスが AI ラボからほぼ全員のハッカーを雇用し、過疎化したコミュニティは維持できなくなりました。 (Steve Levy 著『Hackers』という本では、これらの出来事について説明するとともに、最盛期のこのコミュニティの様子を明確に描いています。) AI Lab が 1982 年に新しい PDP-10 を購入したとき、その管理者は Digital の不自由な PDP-10 を使用することに決めました。 ITSではなくタイムシェアリングシステム。

VAX や 68020 などの当時の最新のコンピューターには独自のオペレーティング システムがありましたが、それらはどれもフリー ソフトウェアではありませんでした。実行可能コピーを入手するためにさえ機密保持契約に署名する必要がありました。

これは、コンピュータを使用するための最初のステップは、隣人を助けないことを約束することであることを意味しました。 協力的なコミュニティは禁止されました。 プロプライエタリなソフトウェアの所有者が定めたルールは、「隣人と共有したら海賊だ。 変更が必要な場合は、変更を依頼してください。」

プロプライエタリなソフトウェアの社会システム、つまりソフトウェアの共有や変更が許可されていないというシステムは反社会的であり、非倫理的であり、単に間違っているという考えは、一部の読者にとっては驚くかもしれません。 しかし、国民を分断し、ユーザーを無力に保つことに基づいたシステムについて、他に何が言えるでしょうか? このアイデアを意外だと思う読者は、プロプライエタリなソフトウェアの社会システムを当然のものとして受け止めているか、プロプライエタリなソフトウェア企業が提案する条件に基づいてそれを判断しているかもしれない。 ソフトウェア発行者は、この問題を解決する方法は 1 つしかないことを人々に説得するために、長い間懸命に取り組んできました。

ソフトウェア発行者が「権利」の「強制」や「著作権侵害の阻止」について語るとき、実際に何をしているのか 言う二次的です。 これらの声明の真のメッセージは、当然のことと考えられている明言されていない前提にあり、国民はそれを検討することなく受け入れることが求められています。 したがって、それらを調べてみましょう。

1 つの前提として、ソフトウェア会社はソフトウェアを所有する疑いの余地のない自然な権利があり、したがってすべてのユーザーに対して権限を持っているということです。 (もしこれが自然権であれば、それが公衆にどれほどの害を与えても、私たちは反対することはできません。) 興味深いことに、米国憲法と法的伝統はこの見解を拒否しています。 著作権は自然権ではなく、ユーザーのコピーする自然な権利を制限する、政府によって強制された人為的な独占です。

もう 1 つの暗黙の前提は、ソフトウェアに関して唯一重要なことは、ソフトウェアでどのような仕事ができるかということだけであり、私たちコンピュータ ユーザーは、どのような社会を持つことが許可されているかを気にすべきではないということです。

3 番目の仮定は、プログラムのユーザーに対する会社の権限を提供しなければ、使用可能なソフトウェアは存在しない (または、特定の仕事を実行するプログラムが存在しない) ということです。 フリーソフトウェア運動が、チェーンをかけずに有用なソフトウェアをたくさん作ることができることを実証する前は、この仮定はもっともらしく思われたかもしれません。

これらの仮定を受け入れることを拒否し、ユーザーを第一に考えながら通常の常識的な道徳に基づいてこれらの問題を判断すると、まったく異なる結論に達することになります。 他の人を助けることが社会の基本であるため、コンピュータ ユーザーは自分のニーズに合わせてプログラムを自由に変更したり、ソフトウェアを自由に共有したりできるべきです。

厳しい道徳的選択

私のコミュニティがなくなってしまったので、以前と同じように続けることは不可能でした。 その代わりに、私は厳しい道徳的選択に直面しました。

簡単な選択は、プロプライエタリなソフトウェアの世界に参加し、機密保持契約に署名し、仲間のハッカーを助けないと約束することでした。 おそらく、私は機密保持契約に基づいてリリースされるソフトウェアも開発することになるでしょう。そのため、他の人たちにも仲間を裏切るようプレッシャーがかかることになります。

この方法でお金を稼ぐこともできたでしょうし、おそらくコードを書いて楽しんでいたかもしれません。 しかし、キャリアの終わりには、人々を分断するために壁を築き続けてきた長年のことを振り返り、世界をさらに悪くするために自分の人生を費やしたと感じるだろうということはわかっていました。

私は、誰かが私と MIT AI ラボにプリンターの制御プログラムのソース コードを提供することを拒否したとき、機密保持契約を受け取る側になった経験をすでに持っていました。 (このプログラムには特定の機能が欠けているため、プリンターの使用が非常にイライラさせられました。) そのため、私は機密保持契約が無実であるとは自分に言い聞かせることができませんでした。 彼が私たちと分かち合うことを拒否したとき、私はとても腹を立てました。 振り返って他のみんなに同じことをすることはできませんでした。

もう 1 つの選択は、簡単ではありますが、コンピュータ分野から離れることでした。 そうすれば私のスキルが悪用されることはありませんが、それでも無駄になってしまいます。 コンピューター ユーザーを分割したり制限したりすることに関して私は責任を負いませんが、それでもそうなってしまうでしょう。

そこで私は、プログラマーが何か良いことをできる方法を探しました。 私は、コミュニティをもう一度可能にするために、自分に書けるプログラムはないだろうかと自問しました。

答えは明らかでした。最初に必要なのはオペレーティング システムでした。 それは、コンピュータを使い始めるための重要なソフトウェアです。 オペレーティング システムを使用すると、さまざまなことができます。 これがなければ、コンピュータをまったく実行できません。 無料のオペレーティング システムがあれば、再び協力的なハッカーのコミュニティを作ることができ、誰でも参加できるようになります。 そして、友人の権利を奪おうと共謀することなく、誰もがコンピュータを使用できるようになるでしょう。

オペレーティング システム開発者として、私はこの仕事に適したスキルを持っていました。 ですから、成功を当然のこととは思えませんでしたが、自分がその仕事をするために選ばれたのだと気づきました。 私は、移植性を高め、Unix ユーザーが簡単に切り替えられるように、システムを Unix と互換性のあるものにすることにしました。 GNU という名前は、ハッカーの伝統に従い、「GNU は Unix ではない」の再帰的な頭字語として選ばれました。 硬い g が付いた 1 音節として発音されます。

オペレーティング システムは、他のプログラムを実行するのに十分なだけの単なるカーネルを意味するものではありません。 1970 年代には、その名にふさわしいすべてのオペレーティング システムには、コマンド プロセッサ、アセンブラ、コンパイラ、インタプリタ、デバッガ、テキスト エディタ、メーラーなどが含まれていました。 ITS にはそれらがあり、Multics にはそれらがあり、VMS にはそれらがあり、Unix にはそれらがありました。 GNU オペレーティング システムにもこれらが含まれます。

後で私はヒレルによるとされる次の言葉を聞きました (1):

もし私が自分のためではないとしたら、誰が私のためになるでしょうか?
もし私が自分だけのものであるとしたら、私は何ですか?
今ではないとしたら、いつですか?

GNU プロジェクトを開始するという決定も、同様の精神に基づいていました。

(1) 無神論者として、私は宗教指導者を支持しませんが、時々、彼らの一人の発言に感心することがあります。

自由と同じように自由に

「フリー ソフトウェア」という用語は時々誤解されますが、それは価格とは何の関係もありません。 それは自由についてです。 したがって、ここにフリーソフトウェアの定義があります。

次の場合、プログラムは特定のユーザーにとってフリー ソフトウェアです。

  • 目的を問わず、プログラムを自由に実行できます。
  • ニーズに合わせてプログラムを自由に変更できます。 (この自由を実際に有効にするには、ソース コードにアクセスできる必要があります。ソース コードを持たずにプログラムを変更するのは非常に難しいためです。)
  • あなたには、無料または有料でコピーを再配布する自由があります。
  • コミュニティがあなたの改善から利益を得られるように、プログラムの修正バージョンを配布する自由があります。

「無料」とは価格ではなく自由を指すため、コピーの販売とフリーソフトウェアの間に矛盾はありません。 実際、コピーを販売する自由は極めて重要です。CD-ROM で販売されるフリー ソフトウェアのコレクションはコミュニティにとって重要であり、それらを販売することはフリー ソフトウェア開発の資金を集める重要な方法です。 したがって、人々がこれらのコレクションに自由に含めることができないプログラムはフリー ソフトウェアではありません。

「無料」という言葉には曖昧さがあるため、人々は長い間代替言葉を探してきましたが、これより適切な言葉は見つかりませんでした。 英語には他の言語よりも多くの単語とニュアンスがありますが、freedom のような「自由」を意味する単純で明確な単語がありません。意味的に最も近い単語は「unfettered」です。 「解放」、「自由」、「オープン」などの選択肢は、間違った意味を持っているか、その他の不利な点があります。

GNU ソフトウェアと GNU システム

システム全体の開発は非常に大規模なプロジェクトです。 それを実現するために、可能な限り既存のフリー ソフトウェアを適応させて使用することにしました。 たとえば、私は最初に主要なテキスト フォーマッタとして TeX を使用することに決めました。 数年後、私は GNU 用に別のウィンドウ システムを作成するのではなく、X ウィンドウ システムを使用することにしました。

これらの決定やその他の同様の決定により、GNU システムはすべての GNU ソフトウェアの集合体と同じではなくなりました。 GNU システムには、GNU ソフトウェアではないプログラム、他の人や独自の目的でプロジェクトが開発したプログラムが含まれますが、これらはフリー ソフトウェアなので使用できます。

プロジェクトの開始

1984 年 1 月に私は MIT での仕事を辞め、GNU ソフトウェアを書き始めました。 MIT が GNU をフリー ソフトウェアとして配布することに干渉できないようにするために、MIT を離れることが必要でした。 もし私がスタッフに留まっていたら、MIT は作品の所有権を主張し、独自の配布条件を課したり、作品を独自のソフトウェア パッケージに変えることさえできたかもしれません。 新しいソフトウェア共有コミュニティを作成するという本来の目的のために大量の仕事をするつもりはありませんでした。

しかし、当時 MIT AI ラボの所長だったウィンストン教授が、研究室の施設を使い続けるよう私に誘ってくれました。

最初のステップ

GNU プロジェクトを開始する少し前に、VUCK としても知られる Free University Compiler Kit について聞きました。 (「無料」を意味するオランダ語は、 v.) これは、C や Pascal を含む複数の言語を処理し、複数のターゲット マシンをサポートするように設計されたコンパイラでした。 私はその作者に、GNU がそれを使用できるかどうか尋ねる手紙を書きました。

彼は嘲笑的に答え、大学は無料だが編纂者は無料ではないと述べた。 そこで私は、GNU プロジェクトの最初のプログラムを多言語、マルチプラットフォームのコンパイラにすることに決めました。

コンパイラ全体を自分で作成する必要を避けたいと考えて、ローレンス リバモア研究所で開発されたマルチプラットフォーム コンパイラである Pastel コンパイラのソース コードを入手しました。 これは、システム プログラミング言語として設計された Pascal の拡張バージョンをサポートし、その拡張バージョンで記述されました。 私は C フロント エンドを追加し、それを Motorola 68000 コンピュータに移植し始めました。 しかし、コンパイラには何メガバイトものスタック スペースが必要であり、利用可能な 68000 Unix システムでは 64k しか許可されないことがわかり、それを諦めなければなりませんでした。

その後、Pastel コンパイラは、入力ファイル全体を構文ツリーに解析し、構文ツリー全体を一連の「命令」に変換し、ストレージを解放することなく出力ファイル全体を生成することによって機能することに気づきました。 この時点で、私は新しいコンパイラを最初から作成する必要があると結論付けました。 その新しいコンパイラは現在 GCC として知られています。 この中では Pastel コンパイラは一切使用されていませんが、自分で作成した C フロント エンドをなんとか適応させて使用することができました。 しかし、それは数年後のことでした。 まず、GNU Emacs に取り組みました。

GNU Emacs

私は 1984 年 9 月に GNU Emacs の開発を開始し、1985 年の初めには GNU Emacs が使い始めました。 これにより、Unix システムを使用して編集できるようになりました。 vi や ed の使い方を学ぶことに興味がなかったので、それまでは他の種類のマシンで編集を行っていました。

この時点で、人々は GNU Emacs を使用したいと考え始め、それをどのように配布するかという問題が生じました。 もちろん、私が使用していた MIT コンピューターの匿名 FTP サーバーに置きました。 (このコンピューター、prep.ai.mit.edu は、主要な GNU FTP 配布サイトになりました。数年後に廃止されたとき、私たちはその名前を新しい FTP サーバーに移しました。) しかし当時、興味を持った多くのユーザーが、人々はインターネットに接続していなかったので、ftp でコピーを取得できませんでした。 そこで問題は、彼らに何と言えばいいでしょうか?

「ネット上でコピーを作ってくれる友達を見つけてください」と言うこともできたでしょう。 あるいは、オリジナルの PDP-10 Emacs でやったことと同じことをすることもできました。「テープと SASE を郵送してください。Emacs を入れて返送します。」と伝えてください。 しかし、私には仕事がなかったので、フリーソフトウェアでお金を稼ぐ方法を探していました。 そこで私は、希望者にテープを 150 ドルの手数料で郵送すると発表しました。 このようにして、私はフリー ソフトウェア配布ビジネスを開始しました。これは、今日 GNU/Linux システム ディストリビューション全体を配布する会社の前身です。

プログラムはすべてのユーザーに無料ですか?

プログラムが作成者の手を離れた時点でフリー ソフトウェアであるとしても、そのコピーを所有するすべての人にとって必ずしもフリー ソフトウェアであるとは限りません。 たとえば、パブリック ドメイン ソフトウェア (著作権で保護されていないソフトウェア) はフリー ソフトウェアです。 しかし、誰でもそれを独自に修正したバージョンを作成できます。 同様に、多くの無料プログラムは著作権で保護されていますが、独自の修正バージョンを許可する単純な寛容なライセンスの下で配布されています。

この問題の典型例は X Window System です。 MIT で開発され、寛容なライセンス付きのフリー ソフトウェアとしてリリースされた後、すぐにさまざまなコンピューター会社に採用されました。 彼らは独自の Unix システムにバイナリ形式のみで X を追加し、同じ秘密保持契約の対象としました。 これらの X のコピーは、Unix と同様にフリー ソフトウェアではありませんでした。

X Window System の開発者は、これを問題とは考えませんでした。彼らは、これが起こることを予期し、意図していました。 彼らの目標は自由ではなく、単に「多くのユーザーを獲得すること」として定義される「成功」でした。 彼らは、これらのユーザーに自由があるかどうかなど気にせず、ユーザーが多数であるべきであることだけを気にしていました。

これにより、自由の量をカウントする 2 つの異なる方法によって、「このプログラムは無料ですか?」という質問に対して異なる答えが得られるという逆説的な状況が生じました。 MIT リリースの配布条件によって提供される自由に基づいて判断した場合、X はフリー ソフトウェアであると言えるでしょう。 しかし、X の平均的なユーザーの自由度を測ると、それはプロプライエタリなソフトウェアであると言わざるを得ません。 ほとんどの X ユーザーは、無料バージョンではなく、Unix システムに付属する独自バージョンを実行していました。

コピーレフトと GNU GPL

GNU の目標は、人気を得ることだけではなく、ユーザーに自由を与えることでした。 そのため、GNU ソフトウェアが独自のソフトウェアになることを防ぐ配布条件を使用する必要がありました。 私たちが使用する手法は「コピーレフト」と呼ばれます。(1)

コピーレフトは著作権法を使用しますが、それをひっくり返して、通常の目的とは逆の役割を果たすようになります。つまり、プログラムを制限する手段ではなく、プログラムを自由に保つ手段になります。

コピーレフトの中心的な考え方は、プログラムを実行し、プログラムをコピーし、プログラムを変更し、修正されたバージョンを配布する許可を全員に与えるが、独自の制限を追加する許可は与えないということです。 したがって、「フリー ソフトウェア」を定義する重要な自由は、コピーを持っているすべての人に保証されています。 それらは譲渡不可能な権利になります。

コピーレフトを有効にするには、修正されたバージョンも無料でなければなりません。 これにより、私たちの作品が公開された場合、私たちの作品に基づいた作品が確実にコミュニティで利用できるようになります。 プログラマーとしての仕事を持つプログラマーが GNU ソフトウェアの改善にボランティアとして参加するとき、雇用主が「その変更はプログラムの独自バージョンを作成するために使用するため、共有することはできません」と言うことを防ぐのはコピーレフトです。

プログラムのすべてのユーザーに自由を確保したい場合、変更は自由でなければならないという要件は不可欠です。 X Window System を民営化した企業は通常、X Window System を自社のシステムやハードウェアに移植するためにいくつかの変更を加えました。 これらの変化は、X の大幅な範囲に比べれば小さいものでしたが、簡単ではありませんでした。 変更を行うことがユーザーの自由を否定する口実であれば、誰でもその口実を利用するのは簡単でしょう。

関連する問題は、自由なプログラムと不自由なコードの組み合わせに関するものです。 このような組み合わせは必然的に不自由になります。 自由でない部分に欠けている自由は、全体にも同様に欠けていることになります。 このような組み合わせを許可すると、船が沈没するほどの大きな穴が開くことになります。 したがって、コピーレフトの重要な要件は、この穴をふさぐことです。コピーレフト化されたプログラムに追加または結合されるものは、より大きな結合バージョンも自由でコピーレフト化されるようにする必要があります。

ほとんどの GNU ソフトウェアで使用されているコピーレフトの具体的な実装は、GNU General Public License (略して GNU GPL) です。 特定の状況で使用される他の種類のコピーレフトもあります。 GNU マニュアルもコピーレフト化されていますが、GNU GPL の複雑さはマニュアルには必要ないため、より単純な種類のコピーレフトが使用されています。(2)

(1) 1984 年か 1985 年に、ドン・ホプキンス (非常に想像力豊かな人物) が私に手紙を送りました。 封筒には、「コピーレフト、すべての権利は逆転する」など、いくつかの面白い言葉が書かれていました。 私は当時開発していた流通コンセプトに「コピーレフト」という言葉を使いました。

Free Software Foundation の職員は、数多くの GNU ソフトウェア パッケージを作成し、保守してきました。 注目すべき 2 つは、C ライブラリとシェルです。 GNU C ライブラリは、GNU/Linux システム上で実行されているすべてのプログラムが Linux と通信するために使用するものです。 これは、Free Software Foundation スタッフのメンバーである Roland McGrath によって開発されました。 ほとんどの GNU/Linux システムで使用されるシェルは BASH、Bourne Again Shell(1) で、FSF 従業員の Brian Fox によって開発されました。

GNU プロジェクトはツールや開発環境だけを目的としたものではないため、私たちはこれらのプログラムの開発に資金を提供しました。 私たちの目標は完全なオペレーティング システムであり、その目標にはこれらのプログラムが必要でした。

(1) 「Bourne Again Shell」は、Unix の通常のシェルであった「Bourne Shell」という名前をもじったものです。

無料ソフトウェアサポート

フリーソフトウェアの哲学は、広く普及している特定のビジネス慣行を拒否しますが、ビジネスに反するものではありません。 企業がユーザーの自由を尊重するとき、私たちは彼らの成功を祈ります。

Emacs のコピーの販売は、一種のフリー ソフトウェア ビジネスを示しています。 FSF がそのビジネスを引き継いだとき、私は生計を立てる別の方法が必要でした。 私が開発したフリーソフトウェアに関連するサービスを販売する中でそれを見つけました。 これには、GNU Emacs のプログラミング方法や GCC のカスタマイズ方法などの教育、および主に GCC を新しいプラットフォームに移植するソフトウェア開発が含まれます。

今日、これらの種類のフリー ソフトウェア ビジネスはそれぞれ多くの企業によって実践されています。 無料のソフトウェア コレクションを CD-ROM で配布しているところもあります。 ユーザーの質問への回答からバグ修正、主要な新機能の追加に至るまで、さまざまなレベルのサポートを販売する企業もいます。 新しいフリーソフトウェア製品を発売することに基づいたフリーソフトウェア会社も現れ始めています。

ただし、「オープンソース」という言葉を連想する多くの企業は、実際には、フリー ソフトウェアと連携して動作する不自由なソフトウェアをビジネスの基盤としているので注意してください。 これらはフリー ソフトウェア会社ではなく、その製品がユーザーを自由から遠ざけるプロプライエタリ ソフトウェア会社です。 彼らはこれらのプログラムを「付加価値パッケージ」と呼んでいます。これは、彼らが私たちに採用してほしいと考えている価値、つまり自由よりも利便性を示しています。 自由をもっと重視するなら、それらを「自由を差し引いた」パッケージと呼ぶべきです。

技術的な目標

GNU の主な目標は、フリー ソフトウェアになることです。 たとえ GNU に Unix に対して技術的な利点がなかったとしても、ユーザーが協力できるという社会的な利点と、ユーザーの自由を尊重するという倫理的な利点があるでしょう。

しかし、既知の優れた実践基準を作業に適用するのは自然でした。たとえば、任意の固定サイズ制限を回避するためにデータ構造を動的に割り当てたり、意味のある場合は可能な限りすべての 8 ビット コードを処理したりするなどです。

さらに、私たちは 16 ビット マシンをサポートしないことを決定し (GNU システムが完成する頃には 32 ビット マシンが標準になることは明らかでした)、小さなメモリ サイズを重視する Unix の姿勢を拒否し、努力をしませんでした。メガバイトを超えない限り、メモリ使用量を削減します。 非常に大きなファイルの処理が重要ではないプログラムでは、プログラマが入力ファイル全体をコアに読み取り、I/O を気にせずにその内容をスキャンすることを推奨しました。

これらの決定により、多くの GNU プログラムが信頼性と速度の点で Unix プログラムを上回ることが可能になりました。

寄贈されたコンピュータ

GNU プロジェクトの評判が高まるにつれ、人々は Unix を実行するマシンをプロジェクトに寄付することを申し出始めました。GNU のコンポーネントを開発する最も簡単な方法は、Unix システム上で開発し、そのシステムのコンポーネントを置き換えることだったため、これらは非常に役に立ちました。しかし、彼らは、そもそも Unix のコピーを持つことが正しいのかどうかという倫理的な問題を提起しました。

Unix はプロプライエタリなソフトウェアであり、GNU プロジェクトの理念ではプロプライエタリなソフトウェアを使用すべきではないとされていますが、自己防衛のための暴力は正当であるという結論につながる同じ論拠を適用すると、私はその使用が正当であると結論付けました。他の人が独自のパッケージの使用をやめるのに役立つ無料の代替品を開発するために、それが重要である場合に独自のパッケージを使用すること。

しかし、たとえそれが正当な悪だったとしても、それは悪であることに変わりはありません。 現在では、Unix のコピーは無料のオペレーティング システムに置き換えられたため、もう存在しません。 マシンのオペレーティング システムを無料のオペレーティング システムに置き換えることができない場合は、代わりにマシンを置き換えました。

GNU タスク リスト

GNU プロジェクトが進行し、発見または開発されるシステム コンポーネントの数が増えるにつれて、最終的には残りのギャップのリストを作成することが役立つようになりました。 私たちはこれを利用して、不足している部分を作成する開発者を募集しました。 このリストは GNU タスク リストとして知られるようになりました。 欠落している Unix コンポーネントに加えて、真に完全なシステムにはこれらが必要であると考えられる、その他のさまざまな有用なソフトウェアとドキュメント プロジェクトをリストしました。

現在 (1)、GNU タスク リストには Unix コンポーネントはほとんど残されていません。いくつかの重要でないものを除いて、それらの仕事はすでに完了しています。 しかし、リストには「アプリケーション」と呼ばれるプロジェクトがたくさんあります。 限られた層以上のユーザーにアピールするプログラムは、オペレーティング システムに追加すると便利です。

ゲームもタスク リストに含まれており、最初から含まれています。 Unix にはゲームが含まれていたため、当然 GNU も含まれるべきです。 しかし、ゲームに関しては互換性は問題ではなかったので、Unix が提供するゲームのリストには従いませんでした。 代わりに、ユーザーが好む可能性のあるさまざまな種類のゲームをリストしました。

(1) これは 1998 年に書かれたものです。2009 年には、私たちは長いタスク リストを管理しなくなりました。 コミュニティはフリー ソフトウェアの開発が非常に速いため、すべてを追跡することさえできませんが、その代わりに、人々に作成を奨励​​したいプロジェクトのより短いリストである、優先度の高いプロジェクトのリストを用意しています。

GNU ライブラリ GPL

GNU C ライブラリは、GNU Library General Public License(1) と呼ばれる特別な種類のコピーレフトを使用しており、これによりプロプライエタリなソフトウェアをライブラリにリンクする許可が与えられます。 なぜこの例外を設けるのでしょうか?

それは原則の問題ではありません。 プロプライエタリなソフトウェア製品に当社のコードを含める権利があるという原則はありません。 (なぜ私たちとの共有を拒否することを前提としたプロジェクトに貢献するのでしょうか?) C ライブラリまたはその他のライブラリに LGPL を使用するかどうかは戦略の問題です。

C ライブラリは一般的な仕事を行います。 すべての独自のシステムまたはコンパイラには C ライブラリが付属しています。 したがって、C ライブラリをフリー ソフトウェアのみが利用できるようにしても、フリー ソフトウェアには何の利点も与えられず、ライブラリの使用が妨げられるだけです。

1 つのシステムは例外です。GNU システム (これには GNU/Linux も含まれます) では、GNU C ライブラリが唯一の C ライブラリです。 したがって、GNU C ライブラリの配布条件によって、GNU システム用に独自のプログラムをコンパイルできるかどうかが決まります。 GNU システム上でプロプライエタリなアプリケーションを許可する倫理的な理由はありませんが、戦略的には、それらを禁止することは、無料のアプリケーションの開発を奨励するよりも、GNU システムの使用を妨げることになると思われます。 このため、ライブラリ GPL を使用することが C ライブラリにとって良い戦略となります。

他の図書館の場合は、戦略的な決定をケースバイケースで検討する必要があります。 ライブラリが特定の種類のプログラムの作成に役立つ特別な仕事をする場合、そのライブラリをフリー プログラムのみに限定して GPL に基づいてリリースすることは、他のフリー ソフトウェア開発者を支援し、プロプライエタリ ソフトウェアに対して有利になる方法です。

BASH のコマンドライン編集を提供するために開発されたライブラリである GNU Readline について考えてみましょう。 Readline は、Library GPL ではなく、通常の GNU GPL に基づいてリリースされます。 これにより Readline の使用量はおそらく削減されますが、それは私たちにとって損失ではありません。 一方、少なくとも 1 つの便利なアプリケーションが Readline を使用できるように特別にフリー ソフトウェア化されており、これはコミュニティにとって大きな利益です。

プロプライエタリなソフトウェア開発者には、お金がもたらす利点があります。 フリーソフトウェア開発者は、お互いに利点をもたらす必要があります。 私は、いつの日か、プロプライエタリなソフトウェアに匹敵するものがない GPL でカバーされたライブラリの大規模なコレクションを用意し、新しいフリー ソフトウェアの構成要素として機能する便利なモジュールを提供し、さらなるフリー ソフトウェア開発に大きな利点をもたらすことを願っています。

(1) このライセンスは、すべての図書館がそれを使用すべきであるという考えを与えることを避けるために、現在では GNU Lesser General Public License と呼ばれています。 詳細については、「次のライブラリに劣等 GPL を使用すべきではない理由」を参照してください。

かゆみを掻いていませんか?

エリック・レイモンドは、「ソフトウェアの優れた作品はすべて、開発者の個人的な悩みを解決することから始まります」と述べています。 おそらくそのようなことは時々起こりますが、GNU ソフトウェアの多くの重要な部分は、完全に無料のオペレーティング システムを実現するために開発されました。

たとえば、Unix 風のシステムには C ライブラリが必要なため GNU C ライブラリを開発し、Unix 風のシステムにはシェルが必要なので BASH を、Unix 風のシステムには tar プログラムが必要なので GNU tar を開発しました。 同じことが私自身のプログラム、つまり GNU C コンパイラ、GNU Emacs、GDB、GNU Make にも当てはまります。

一部の GNU プログラムは、私たちの自由に対する特定の脅威に対処するために開発されました。 そこで、LZW 特許のためにコミュニティに失われてしまった Compress プログラムを置き換える gzip を開発しました。 私たちは、特定の独自ライブラリによって引き起こされる問題に対処するために、LessTif を開発し、最近では GNOME と Harmony を開発している人々を見つけました (以下を参照)。 ユーザーがプライバシーと自由のどちらかを選択する必要がないように、私たちは一般的な不自由な暗号化ソフトウェアに代わる GNU Privacy Guard を開発しています。

もちろん、これらのプログラムを作成する人々はその仕事に興味を持ち、さまざまな人々が自分たちのニーズや興味のために多くの機能をプログラムに追加しました。 しかし、それがプログラムが存在する理由ではありません。

予想外の展開

GNU プロジェクトの開始当初、私は GNU システム全体を開発し、それを全体としてリリースすることを想像していました。 そんなことは起こらなかった。

GNU システムの各コンポーネントは Unix システム上で実装されていたため、完全な GNU システムが存在するずっと前から、各コンポーネントは Unix システム上で実行できました。 これらのプログラムの一部は人気を博し、ユーザーはそれらを拡張して、互換性のないさまざまなバージョンの Unix に、また場合によっては他のシステムにも移植し始めました。

このプロセスにより、これらのプログラムはさらに強力になり、資金と貢献者の両方が GNU プロジェクトに集まりました。 しかし、GNU 開発者は、不足しているコンポーネントを次々と作成するのではなく、これらのポートを維持し、既存のコンポーネントに機能を追加することに時間を費やしたため、最小限の動作システムの完成がおそらく数年遅れました。

GNU ハード

1990 年までに、GNU システムはほぼ完成しました。 主要な欠落コンポーネントはカーネルだけでした。 私たちはカーネルを、Mach 上で実行されるサーバー プロセスの集合として実装することに決めました。 Mach は、カーネギー メロン大学、その後ユタ大学で開発されたマイクロカーネルです。 GNU Hurd は、Mach 上で実行され、Unix カーネルのさまざまなジョブを実行するサーバーの集合 (つまり、GNU の群れ) です。 約束通り、Mach がフリーソフトウェアとしてリリースされるのを待っていたため、開発の開始は遅れました。

この設計を選択した理由の 1 つは、ソース レベルのデバッガを使用せずにカーネル プログラムをデバッグするという、作業の最も難しい部分と思われる部分を回避するためでした。 この部分の作業は Mach ですでに完了しており、GDB を使用して Hurd サーバーをユーザー プログラムとしてデバッグすることを期待していました。 しかし、それを可能にするのには長い時間がかかり、相互にメッセージを送信するマルチスレッド サーバーのデバッグは非常に困難であることが判明しました。 ハードを確実に機能させるには何年もかかりました。

アリックス

GNU カーネルは、当初は Hurd と呼ばれる予定ではありませんでした。 元々の名前はアリックスで、当時私の恋人だった女性にちなんで名付けられました。 Unix システム管理者である彼女は、自分の名前が Unix システム バージョンの一般的な命名パターンにどのように適合するかを指摘していました。 彼女は冗談として、「誰かカーネルに私の名前を付けるべきだ」と友人に言いました。 私は何も言いませんでしたが、Alix という名前のカーネルで彼女を驚かせることにしました。

このままでは済まなかった。 カーネルの主な開発者である Michael (現在は Thomas) Bushnell は Hurd という名前を好み、カーネルの特定の部分、つまりシステム コールをトラップし、Hurd サーバーにメッセージを送信して処理する部分を指すように Alix を再定義しました。

その後、アリックスと私は別れ、彼女は名前を変えました。 これとは別に、C ライブラリがメッセージをサーバーに直接送信するように Hurd の設計が変更され、これにより Alix コンポーネントが設計から削除されました。

しかし、これらのことが起こる前に、彼女の友人がハードのソースコードでアリックスという名前を見つけ、それを彼女に話しました。 そこで彼女は、自分にちなんで名付けられたカーネルを見つける機会がありました。

Linux および GNU/Linux

GNU Hurd は運用環境での使用には適していませんし、今後そうなるかどうかもわかりません。機能ベースの設計には、設計の柔軟性から直接生じる問題があり、解決策が存在するかどうかは不明です。

幸いなことに、別のカーネルが利用可能です。 1991 年、Linus Torvalds は Unix 互換カーネルを開発し、それを Linux と呼びました。 当初はプロプライエタリでしたが、1992 年にフリー ソフトウェアにしました。 Linux と完全ではない GNU システムを組み合わせることで、完全に無料のオペレーティング システムが誕生しました。 (もちろん、これらを結合すること自体が大変な仕事でした。) 現在、GNU システムのバージョンを実際に実行できるのは、Linux のおかげです。

私たちの未来への挑戦

当社には、幅広いフリー ソフトウェアを開発する実証済みの能力があります。 これは、私たちが無敵で止められないという意味ではありません。 いくつかの課題により、フリー ソフトウェアの将来は不確実になっています。 それらに対処するには、時には何年にもわたる、たゆまぬ努力と忍耐が必要です。 それには、人々が自分の自由を大切にし、誰にもそれを奪わせないときに示すような決意が必要です。

次の 4 つのセクションでは、これらの課題について説明します。

秘密のハードウェア

ハードウェア メーカーは、ハードウェアの仕様を秘密にする傾向がますます高まっています。 このため、Linux と XFree86 が新しいハードウェアをサポートできるように無料のドライバーを作成することが困難になります。 現在は完全に無料のシステムがありますが、明日のコンピューターをサポートできなければ、明日にはそのシステムは存在しません。

この問題に対処するには 2 つの方法があります。 プログラマーはリバース エンジニアリングを行って、ハードウェアをサポートする方法を見つけることができます。 残りの人は、フリー ソフトウェアでサポートされているハードウェアを選択できます。 私たちの数が増えるにつれて、仕様の秘密は自滅的な政策になるでしょう。

リバースエンジニアリングは大仕事です。 それを実行するのに十分な決意を持ったプログラマーがいるでしょうか? そうです。フリー ソフトウェアは原則の問題であり、フリーでないドライバーは耐えられないという強い感覚を私たちが築いてきたのであれば、そうです。 そして、私たちの多くは、無料のドライバーを使用するために、余分なお金、あるいは少しでも余分な時間を費やすでしょうか? はい、自由を得ようという決意が広く広まっていれば可能です。

(2008 年注: この問題は BIOS にも当てはまります。無料の BIOS である LibreBoot (coreboot のディストリビューション) があります。問題は、LibreBoot が不自由な「blob」なしでマシンをサポートできるようにマシンのスペックを取得することです。)

不自由なライブラリ

フリーのオペレーティング システム上で動作する不自由なライブラリは、フリー ソフトウェア開発者にとって罠として機能します。 ライブラリの魅力的な機能は「おとりです。ライブラリを使用すると、あなたのプログラムは無料のオペレーティング システムの一部になることができないため、罠にはまってしまいます。(厳密に言えば、あなたのプログラムを含めることはできますが、そうはなりません)」 走るさらに悪いことに、独自のライブラリを使用するプログラムが普及すると、何も知らない他のプログラマが罠に陥る可能性があります。

この問題の最初の例は、80 年代の Motif ツールキットでした。 無料のオペレーティング システムはまだ存在していませんでしたが、Motif が後にどのような問題を引き起こすかは明らかでした。 GNU プロジェクトは 2 つの方法で対応しました。1 つは個々のフリー ソフトウェア プロジェクトに、無料の X Toolkit ウィジェットと Motif をサポートするよう依頼すること、もう 1 つは Motif の無料の代替品を作成するよう依頼することです。 この仕事には何年もかかりました。 Hungry Programmers によって開発された LessTif は、1997 年になってようやくほとんどの Motif アプリケーションをサポートできるほど強力になりました。

1996 年から 1998 年にかけて、Qt と呼ばれる別の不自由な GUI ツールキット ライブラリが、フリー ソフトウェアの実質的なコレクションであるデスクトップ KDE で使用されました。

無料の GNU/Linux システムでは、ライブラリを使用できなかったため、KDE ​​を使用できませんでした。 しかし、GNU/Linux システムの商用ディストリビュータの一部は、フリー ソフトウェアに固執することに厳密ではなかったので、自社のシステムに KDE を追加し、より多くの機能を備えたシステムを作成しましたが、自由度は低下しました。 KDE グループは、より多くのプログラマーに Qt を使用するよう積極的に奨励していましたが、何百万もの新しい「Linux ユーザー」は、これに問題があるという考えにさらされたことがありませんでした。 状況は厳しいようでした。

フリー ソフトウェア コミュニティは、GNOME と Harmony という 2 つの方法でこの問題に対応しました。

GNOME (GNU ネットワーク オブジェクト モデル環境) は GNU のデスクトップ プロジェクトです。1997 年に Miguel de Icaza によって開始され、Red Hat Software のサポートを受けて開発されました。GNOME は同様のデスクトップ機能を提供することを目指しましたが、フリー ソフトウェアのみを使用しています。 C++ だけでなくさまざまな言語をサポートするなどの利点もあります。

Harmony は互換性のある代替ライブラリであり、Qt を使用せずに KDE ソフトウェアを実行できるように設計されています。

1998 年 11 月、Qt の開発者はライセンスの変更を発表しました。変更が実行されれば、Qt はフリー ソフトウェアになるはずです。 確かなことはできませんが、これは Qt が不自由だったときに引き起こした問題に対するコミュニティの断固たる対応が部分的にあったのではないかと思います (新しいライセンスは不便で不公平であるため、使用を避けることが依然として望ましいです)クォート)

次の魅力的な不自由なライブラリに私たちはどう対応するでしょうか? コミュニティ全体が罠に陥らないようにする必要性を理解するでしょうか? それとも、私たちの多くが利便性のために自由を放棄し、大きな問題を引き起こすのでしょうか? 私たちの未来は私たちの哲学にかかっています。

ソフトウェア特許

私たちが直面する最悪の脅威はソフトウェア特許から来ており、アルゴリズムや機能が最長 20 年間にわたってフリー ソフトウェアの使用を禁止される可能性があります。 LZW 圧縮アルゴリズムの特許は 1983 年に申請されましたが、適切な圧縮 GIF を生成するフリー ソフトウェアをまだリリースできません。 1998 年、MP3 圧縮オーディオを作成する無料プログラムが特許訴訟の脅威により配布から削除されました。

特許に対処する方法はいくつかあります。特許が無効であるという証拠を探すことも、仕事を遂行する別の方法を探すこともできます。 しかし、これらの方法はそれぞれ、時々しか機能しません。 どちらも失敗すると、特許によりすべてのフリー ソフトウェアにユーザーが望む機能が欠けることになる可能性があります。 長い間待った後、特許が期限切れになります (MP3 の特許は 2018 年までに期限切れになる予定です) が、それまで何をするのでしょうか?

自由のためにフリーソフトウェアを評価する人は、いずれにせよフリーソフトウェアを使い続けるだろう。私たちは特許機能がなくてもなんとか仕事を進めるだろう。しかし、技術的に優れていると期待してフリーソフトウェアを評価する人は、それをそう呼ぶだろう。このように、開発の「バザール」モデルの実際的な有効性や、一部のフリー ソフトウェアの信頼性と能力について語ることは有益ですが、自由と原則という点で立ち止まってはなりません。

無料のドキュメント

私たちの無料オペレーティング システムの最大の欠陥はソフトウェアにありません。システムに含めることができる優れた無料マニュアルが不足していることです。 ドキュメントはあらゆるソフトウェア パッケージの重要な部分です。 重要な無料ソフトウェア パッケージに適切な無料マニュアルが付属していない場合、それは大きなギャップとなります。 今日、私たちにはそのようなギャップがたくさんあります。

無料のドキュメントは、無料のソフトウェアと同様に、価格の問題ではなく、自由の問題です。 無料マニュアルの基準は、無料ソフトウェアの基準とほぼ同じです。すべてのユーザーに一定の自由を与えるかどうかです。 プログラムのすべてのコピーにマニュアルを添付できるように、オンラインおよび紙での再配布 (商業販売を含む) を許可する必要があります。

改変の許可も重要です。 原則として、あらゆる種類の記事や書籍を変更する許可を得ることが必須ではないと思います。たとえば、あなたや私には、この記事のような記事を変更する許可を与える義務はないと思います。 、私たちの行動と見解を説明します。

しかし、自由ソフトウェアのドキュメントにとって変更の自由が重要である特別な理由があります。 ソフトウェアを修正し、その機能を追加または変更する権利を行使する場合、良心的であればマニュアルも変更するでしょう。そうすることで、修正されたプログラムで正確で使用可能なドキュメントを提供できるようになります。 プログラマが良心的に仕事を終えることができない不自由なマニュアルは、私たちのコミュニティのニーズを満たしません。

変更の実行方法に関するある種の制限は問題を引き起こしません。 たとえば、元の作成者の著作権表示、配布条件、または作成者のリストを保存するという要件は問題ありません。また、変更されたバージョンに、変更されたことを示す通知を含めるよう要求することも問題ありません。これらのセクションが技術的以外のトピックを扱っている限り、削除または変更することができます。 言い換えれば、フリーソフトウェアコミュニティがマニュアルを最大限に活用することを妨げるものではありません。

ただし、すべての変更が可能でなければなりません。 テクニカルマニュアルの内容を作成し、その結果をすべての通常のメディア、すべての通常のチャネルを通じて配布します。 そうしないと、制限によりコミュニティが妨げられ、マニュアルは無料ではなくなり、別のマニュアルが必要になります。

フリーソフトウェア開発者は、あらゆる範囲の無料マニュアルを作成する認識と決意を持っているでしょうか? もう一度言いますが、私たちの未来は哲学にかかっています。

私たちは自由について語らなければなりません

現在、Debian GNU/Linux や Red Hat "Linux" などの GNU/Linux システムのユーザーは 1,000 万人と推定されています。 フリー ソフトウェアは実用的な利点を開発したため、ユーザーは純粋に実用的な理由でフリー ソフトウェアに群がるようになりました。

この良い結果は明らかです。フリー ソフトウェアの開発に対する関心が高まり、フリー ソフトウェア ビジネスの顧客が増え、プロプライエタリ ソフトウェア製品ではなく商用フリー ソフトウェアの開発を企業に奨励する能力が高まりました。

しかし、ソフトウェアへの関心は、ソフトウェアが基づいている哲学への認識よりも速いスピードで高まっており、これがトラブルにつながっています。 上記の課題や脅威に対処できる私たちの能力は、自由を求めて毅然と立ち向かう意志にかかっています。 私たちのコミュニティにこのような意志があることを確認するには、コミュニティに参加する新しいユーザーにこのアイデアを広める必要があります。

しかし、私たちはそれを怠っています。新しいユーザーをコミュニティに引き付ける努力が、コミュニティの公民を彼らに教える努力をはるかに上回っています。 私たちは両方を行う必要があり、2 つの取り組みのバランスを保つ必要があります。

"オープンソース"

1998 年にコミュニティの一部が「フリー ソフトウェア」という用語の使用をやめ、代わりに「オープン ソース ソフトウェア」と呼ぶことにしたため、新しいユーザーに自由について教えることはさらに困難になりました。

この用語を支持した人の中には、「無料」と「無料」の混同を避けることを目的とした人もいましたが、これは正当な目的です。 しかし、フリーソフトウェア運動や GNU プロジェクトの動機となった原則の精神を脇に置き、その代わりに経営者やビジネス ユーザーにアピールすることを目的としたものもありました。彼らの多くは、利益よりも自由よりも、コミュニティよりも、より優先するというイデオロギーを持っています。原則。 したがって、「オープンソース」のレトリックは、高品質で強力なソフトウェアを作成できる可能性に焦点を当てていますが、自由、コミュニティ、原則の概念は避けています。

「Linux」雑誌はその明らかな例です。雑誌には GNU/Linux で動作する独自のソフトウェアの広告が満載です。 次の Motif や Qt が登場したとき、これらの雑誌はプログラマーにそれらに近づかないように警告するでしょうか、それともその広告を掲載するのでしょうか?

ビジネスのサポートはさまざまな形でコミュニティに貢献できます。 他のすべてが等しい場合、それは役に立ちます。 しかし、自由と原則についてさらに語らずに彼らの支持を勝ち取ることは、悲惨な結果を招く可能性があります。 それは、アウトリーチと公民教育の間のこれまでの不均衡をさらに悪化させます。

「フリー ソフトウェア」と「オープン ソース」は、多かれ少なかれ同じカテゴリのソフトウェアを表しますが、ソフトウェアや価値について異なることを述べています。 GNU プロジェクトは、テクノロジーだけではなく自由が重要であるという考えを表現するために、「フリー ソフトウェア」という用語を使い続けています。

試す!

ヨーダの格言(「『試み』は存在しない」)はきれいに聞こえますが、私にはうまくいきません。 私は仕事のほとんどを、自分にできるだろうか、できたとしても目標を達成できるだろうかという不安を抱えながら取り組んできました。 しかし、敵と私の街の間には私以外に誰もいなかったので、とにかく試してみました。 自分でも驚いているのですが、時々成功することがあります。

時には失敗もした。 私の街のいくつかは崩壊しました。 それから私は別の都市が脅かされていることに気づき、次の戦いに備えました。 時間が経つにつれて、私は脅威を探し、脅威と自分の街の間に身を置き、他のハッカーたちに参加するよう呼びかけることを学びました。

最近では、「私だけではないのです。ハッカー部隊が前線を守るために塹壕を掘っているのを見ると安堵し、喜びを感じます。そして、今のところはこの都市が生き残れるかもしれないと悟ります。しかし、危険はそれぞれより大きくなります」そして今、マイクロソフトは私たちのコミュニティを明確にターゲットにしています。私たちは「自由の未来を当然のことと考えることはできません。 「それを当然のことだと思わないでください! 自由を守りたいなら、それを守る準備ができていなければなりません。

主な規格

コンピュータ製造元が提供する UNIX

オペレーティング·システム "オリジナル"
日曜日 1、2、10、... SunOS 4.1.2 BSD4.3
日 10,20,1000 SunOS 5.5 SVR4.0
IBM RS/6000 AIX SV3.2
HP アポロ 900 HP/UX10 BSD 4.2 および SV 3.2
続いて ディニックス SW4.0
モトローラ 922 SVR4/88 SVR4.0
ベスタ-88 ベスティクス SV3.1
12月 ウルトリックス BSD4.2
12月アルファAXP OSF/1 BSD4.3
SGCS シリコン グラフィック アイリックス6.0

プラットフォームを選択すると、自動的に「独自の」UNIX が組み込まれます。 おそらく、ユーザーおよび管理者環境の利便性と完全性の観点から、最も快適なのは AIX でしょう。 そして最も一般的なのは Solaris 2.5 です (もちろん)。

いわゆる Unix 戦争を引き起こしたのは、Unix の商用実装の出現でした。 各企業は、市場での優位性を達成するために、自社のシステムにいくつかの機能、独自の改善や改善を組み込み、時には市場で自社のシステムを他の企業から分離するという直接の目的を持っていました。 企業開発者は、競合他社に対して優位性を獲得するために、 アプリケーションプログラミングインターフェース(API- アプリケーション プログラマーのインターフェイス)、 - ソフトウェア開発者がプロ​​グラムをオペレーティング システムと互換性を持たせるために準拠しなければならない一連の機能の仕様。これにより、Unix のさまざまなバージョンの非互換性がさらに増大し、Unix によって開発されたソフトウェアの非互換性が生じました。異なる(独立系を含む)サプライヤー。

しかし、Unix の異なるバージョン間の戦争のさらに悪い結果は、Unix が開発の初期段階で急速に改善するのに役立っていたソース コードの自由な交換が中止されたことでした。 AT&T は、ソフトウェアを秘密にし、商用製品の開発を完全に管理すること以外に、ソフトウェアから利益を得る他のモデルを知らないため、ソース コードの配布を厳しく禁止しました。 Unix テープを違法に配布することに対する法的措置の脅威に魅力を感じる人はほとんどいませんでした。 大学からの新しいアイデアの流れは枯渇した。

この問題を克服するために、Unix を標準化するためにいくつかの試みが行われました。

System V と Berkeley 用に開発された API (プログラミング インターフェイス) のバージョンを標準化する最初の本格的な取り組みは、1983 年に /usr/group と呼ばれるイニシアチブ グループによって行われました。 しかし、オペレーティング システムのバージョン数が増加するにつれて、この標準の有効性は低下し、1 年後の 1985 年に POSIX (Portable Operating System Interface for Computing Environment) 標準が作成されました。



1988 年に、アプリケーション プログラミング インターフェイスを定義した POSIX 1003.1-1988 標準が開発されました。 この標準は、UNIX 以外のアーキテクチャを含む多くのオペレーティング システムで広く適用されています。 2 年後、この規格は IEEE (電気電子学会、現在も存在) IEEE 1003.1-1990 標準として採用されました。 この標準ではインターフェイスのみが定義されており、特定の構成は定義されていないため、システム コールとライブラリ関数は区別されず、プログラミング インターフェイスのすべての要素は単に関数と呼ばれます。

以降のすべての Unix 標準には POSIX が含まれており、以降の Unix バージョンはすべてこの標準に準拠しています。 後に Unix カーネルに登場した唯一の大きな追加機能は、BSD から提供されたソケットでした。

多くのヨーロッパ企業によって 1984 年に設立された非営利団体である X / Open コンソーシアム (後の Open Group) は、さまざまなメーカー間で合意されたオペレーティング システム インターフェイスの共通セットの開発に取り組み、真のアプリケーションの移植性のコストが最小限に抑えられるオープン システム。

1992 年に、X/OpenPortability Guide バージョン 3 (XPG3) として知られる文書が登場しました。これには、POSIX 1003.1-1988 と、マサチューセッツ工科大学 (米国) で開発された X Windows System グラフィック システムの標準が含まれていました。 1994 年 - XPG4.2。

1996 年、X/Open と OSF の統合により Open Group コンソーシアムが設立され、共通デスクトップ環境ユーザー インターフェイスや分散コンピューティング環境用インターフェイスのさらなる開発など、オープン システムの分野で開発が継続されました。 - DCEなど

(米国規格協会)

1989 年に、米国規格協会は C プログラミング言語の X3.159-1989 標準を承認しました。 標準は、標準ライブラリの構文、セマンティクス、および内容を定義します。

GNU は、あらゆる種類のフリー ソフトウェアを作成する開発者の団体です。

GNU は、オープンソース戦略の一環として多くのフリー ソフトウェアを作成してきたプロジェクトです。

同時に、これらのプログラムはファイルの操作からワードプロセッサまであらゆる作業を行うことができ、gcc コンパイラ (GNU C) は最も信頼性が高く効率的な UNIX コンパイラの 1 つです。 これにより、ほぼすべての UNIX 系オペレーティング システムにフリー ソフトウェアを装備することが可能になります。

GNU/Linux とは何ですか?

Linux は単なるカーネルなので、この種の機器は必須です。 カーネルはメモリ、ディスク、内部デバイスの操作を担当しますが、たとえば、テキスト エディタは備えていません。 ただし、他のプログラムを実行することはできます。 したがって、無料のプログラムのセットとともに無料のカーネルを追加することは非常に自然に見えます。 その結果が GNU/Linux タンデムです。

「GNU という略語は、「GNU は UNIX ではありません」(GNU - Not UNIX) の略です。GNU システム開発の背後にある主な考え方は、UNIX とは完全に異なるということです。UNIX は、これまでも、そしてこれからも非フリー ソフトウェアであり続けます。ユーザーが共同作業する自由や、コンピューターを制御する自由を奪います。コンピューターを自由に使用できるコミュニティになるためには、無料のオペレーティング システムが必要でした。 」

1985 年、R. ストールマンは有名な GNU 宣言 (Dr. Dobb's Journal の 1985 年 3 月号に掲載されました) を執筆し、フリー ソフトウェア開発のための慈善財団であるフリー ソフトウェア財団 (FSF) を設立しました。 、その後、他のフリー ソフトウェア (GNU プロジェクト内外の両方) を配布し、そのマニュアルを販売して、GNU プロジェクトの開発資金を提供しました。FSF は寄付を受け入れましたが、収益のほとんどは常に、無料のソフトウェアと関連サービス。

フリー ソフトウェアの開発は非常に重要なステップでしたが、R.Stallman のさらに大きな功績は、GNU General Public License (GPL) の創設であると認識されるべきです。 さまざまな著者がこの名前をさまざまな方法でロシア語に翻訳しています - 普遍的公衆利用許諾契約書、一般公衆利用許諾契約書など。 しかし、それは次のように考えられます このライセンスは英語版のみが有効です。 GPL の主な考え方は、ユーザーは次の 4 つの権利 (または 4 つの自由) を持たなければならないということです。

任意の目的でプログラムを実行する権利 (自由 0)

· プログラムの構造を研究し、ニーズに合わせて変更する権利 (自由 1)。これには、プログラムのソース コードへのアクセスが含まれます。

· 他の人を支援しながらプログラムを配布する権利 (自由 2)。

· コミュニティ全体の利益のためにプログラムを改善し、改善を公開する権利 (自由 3)。これには、プログラムのソース コードへのアクセスも含まれます。

お客様は、そのような処理の結果も GPL ライセンスに基づいて配布される場合に限り、修正された (または修正されていない) バージョンを任意の方法で使用、コピー、変更、変更、配布、または他者に販売することができます。 最後の条件は最も重要であり、このライセンスを定義するものです。 これにより、フリー ソフトウェア開発者の努力の結果がオープン ソースのままとなり、従来のライセンス製品の一部にならないことが保証されます。 また、フリーソフトウェアとフリーソフトウェアも区別されます。 このライセンスの要件の 1 つは、GPL に基づいてソフトウェアを販売する場合、そのソフトウェアのソース コードを、アクセスを希望するすべての人が利用できるようにする必要があるということです。 FSF の作成者の言葉を借りれば、GPL は「ソフトウェアを無料にし、無料であり続けることを保証する」ものです。

GPL の主な目的は、フリーソフトウェアを「私物化」から保護することです。 ただし、フリー ソフトウェアから収益を得るすべての「正直な」方法を許可するように設計されていることに注意する必要があり、これは特に注意が必要な非常に重要な点です。 GPL を初めて知ったとき、このライセンスはソフトウェアやその開発から収益を得るいかなる方法も一般的に禁止しているという誤解を受けるかもしれません。 実際、特に GPL と一般的な FSF は、トレーニング、コンサルティング、ソフトウェアの商用複製など、関連サービスの提供に関連するビジネスを直接奨励しています。 これにより、道徳的インセンティブよりも物質的な利益が重要な企業と人々の両方を協力に引き付けることが可能になります。

UNIX に似たオペレーティング システムとフリー ソフトウェアの世界を理解し始めたユーザーは、必ずタイトルの略語に遭遇するでしょう。

GNU は「GNU is not UNIX」の略で、さまざまなシステム ライブラリやアプリケーションを開発する大規模プロジェクトを指します。 このプロジェクトのフレームワーク内で作成されたものはすべてオープンソースです。 これは、プログラミングの適切な知識を持つ人であれば誰でも、このコードを独自の開発の基礎として使用でき、コードを変更して配布する完全な権利を持っていることを意味します。

プロジェクトの枠組み内で開発されたソフトウェア製品は、GNU ハード システム カーネルによって補完され、GNU という用語でも指定される本格的なオペレーティング システムの基礎を形成しました。 しかし、その創設は 1990 年に始まり、現在に至るまで完了していません。 しかし 1991 年に、Linus Torvalds の発案である Linux カーネルが登場しました。 ここで、GNU プロジェクトがオペレーティング システムとしての Linux の開発において大きな役割を果たしました。 結局のところ、システムは単なるカーネルではなく、ライブラリ、ユーティリティ、ドライバーなどが含まれるシステム ソフトウェアのセット全体です。 そして、Linux カーネルと組み合わせて使用​​された GNU 参加者の開発により、現在 Windows や MacOS と十分に競合できる製品そのものが世界に示されました。 そしてそれは「GNU / Linux」と呼ばれ、最初の部分はほとんどの場合破棄されますが、これは一般的に間違っています。

ソフトウェアに加えて、GNU プロジェクトは一般公衆利用許諾書 (GNU GPL) を作成しました。これはオープンソースの世界での主要なライセンスとなり、広く使用されました。 フリーソフトウェアの配布を規制しており、極めて民主的です。 このライセンスでは、すべてのユーザーが、このライセンスでマークされたアプリケーションのソース コードを変更、配布、およびプロジェクト内で使用する権利があると記載されています。 この場合、すべての子プログラムも GPL の対象となります。 つまり、オープンソースを使用する開発者はオープンソースも作成するため、ライセンス自体も継承されます。 これは必須のルールですが、GPL を回避して、使用されているオープンコードに基づいて独自のコードを閉じる方法があります。

GNU とその下で作成された GPL はテクノロジー業界に大きな影響を与えました。 フリー ソフトウェアは、その業界に膨大な数の才能あるプログラマーを惹きつけ、最大のコミュニティを形成しました。 GPL に基づいて作成された製品は、広く実用化されているだけでなく、高品質で手頃な価格のコードのおかげで、何百万人もの初心者開発者にとって優れたトレーニングの場となっています。 この情報交換の概念と通常の著作権に代わる最も声高な概念は、明白ではありませんが、ソフトウェアの開発を可能にし、現在勢いを増しています。

GNU 3DLDF は、Metafont に似た言語を介して MetaPost 形式への出力による 3D 描画をサポートします。 これは主に、TeX ドキュメントの 3D コンテンツを作成する手段を提供することを目的としていますが、TeX によってタイプセットされたテキストを含むアニメーションを作成することもできます。 (ドクター)

8同期

8sync (エイトシンクと発音) は、GNU Guile の非同期プログラミング ライブラリです。 区切り文字で区切られた継続を利用してコールバックの混乱を回避し、クリーンで読みやすいノンブロッキングのコードを実現します。 (ドクター)

a2ps

GNU a2ps は、ほとんどすべてのものを PostScript ファイルに変換し、印刷できるようにします。 これは、Groff や Gzip などの外部ハンドラーにファイルを委任できることで実現されます。 きれいに印刷されたファイルを作成するために必要なだけ多くのステップが処理されます。 また、 --help 出力をきれいに印刷するなど、特殊な場合に備えたいくつかの追加機能も含まれています。 (ドクター)

アカウント

GNU acct は、システム管理者がシステムの使用パターンを決定する手段を提供します。 これは、接続、実行されたプログラム、使用されたシステム リソースなどに関する情報を提供します。 (ドクター)

acm

GNU ACM は、プレイヤーが F-16C ファルコンや MiG-29 フルクラムに似た装備の整ったジェット機を操縦して、さまざまなコンピューターから空中戦を競うことができるフライト シミュレーターです。 (ドクター)

広告

GNU adns は、使いやすい DNS 解決機能を提供する C ライブラリです。 ライブラリは非同期であるため、複数の同時呼び出しが可能です。 このパッケージには、スクリプトで使用するためのいくつかのコマンドライン ユーティリティも含まれています。 (ドクター)

生きている

GNU Alive は、通常、接続を維持するためにサーバーに定期的に ping を送信します。 (ドクター)

アヌビス

Anubis は、メール ユーザー エージェント (MUA) とメール転送エージェント (MTA) の間に位置するデーモンです。 MUA 内のユーザーによってメールが送信されると、そのメールはまず Anubis に渡され、MTA による配信のためにメッセージを渡す前に追加の処理がメッセージに実行されます。 たとえば、Anubis はメッセージのヘッダーや本文を変更したり、メッセージを暗号化したり署名したりする場合があります。 (ドクター)

APL

GNU APL は、プログラミング言語 APL の無料のインタープリターです。 これは ISO 標準 13751 の実装です。(ドキュメント)

アルキメデス

Archimedes は、半導体デバイス シミュレーション用の無料パッケージです。 これは、アンサンブル モンテカルロ法に基づいてサブミクロンおよびメゾスコピック半導体デバイスを設計およびシミュレーションするエンジニアを支援することを目的としています。 多種多様な材料や構造を扱うことができ、それらは簡単なスクリプトで記述されます。 (ドクター)

アリス

Aris は論理証明を行うためのプログラムです。 命題論理と述語論理に加え、ブール代数と算術論理もサポートします。 Aris は、事前定義された推論ルールと等価ルールに加えて、古い証明への参照もサポートしています。 標準的な論理記号の使用と自然な演繹インターフェイスにより、初心者にとっても使いやすくなっています。 (ドクター)

アルタニス

GNU Artanis は、Guile Scheme で書かれた Web アプリケーション フレームワークです。 Web アプリケーション フレームワーク (WAF) は、動的な Web サイト、Web アプリケーション、Web サービス、および Web リソースの開発をサポートするように設計されたソフトウェア フレームワークです。 このフレームワークは、Web 開発で実行される一般的なアクティビティに関連するオーバーヘッドを軽減することを目的としています。 Artanis は、データベース アクセス、テンプレート フレームワーク、セッション管理、RESTful 用の URL 再マッピング、ページ キャッシュなど、Web 開発用のツールをいくつか提供します。 (ドクター)

スペル

Aspell は、ライブラリまたはスタンドアロン プログラムとして使用できるスペルチェッカーです。 Aspell の注目すべき機能には、UTF-8 エンコーディングで書かれたドキュメントの完全なサポートと、個人用の辞書を含む複数の辞書を使用する機能が含まれます。 (ドクター)

オークテックス

AUCTeX は、Emacs で TeX ドキュメントを作成するための統合環境です。 これを使用すると、単純なキーストロークまたはメニュー選択で、さまざまな標準 TeX マクロを挿入できます。 外部プログラムへのインターフェイスを提供し、Emacs 内からドキュメントをコンパイルしたり表示したりできるようにします。 AUCTeX には、数式などの複雑な TeX ステートメントのインライン プレビューを配置する機能もあります。 (ドクター)

自動設定

Autoconf は、シェル コードに展開して Unix 系システムの機能をテストし、ソフトウェア パッケージをこれらのシステムに自動的に適応させる堅牢な M4 マクロのセットを開発者に提供します。 結果として得られるシェル スクリプトは自己完結型で移植可能であるため、ユーザーは Autoconf や M4 について何も知る必要がなくなります。 (ドクター)

Autoconf-アーカイブ

Autoconf Archive は、Autoconf 用の 450 を超える新しいマクロのコレクションであり、その機能の領域を大幅に拡張します。 これらのマクロは、コミュニティによってフリー ソフトウェアとして提供されています。 (ドクター)

オートジェン

AutoGen は、大量の繰り返しテキストを含むプログラムのメンテナンスを容易にするプログラムです。 コードのこれらのセクションの構築が自動化され、テキストの同期を維持するタスクが簡素化されます。 また、プログラム オプションのメンテナンスと文書化に特化した AutoOpts と呼ばれるアドオン パッケージも含まれています。 (ドクター)

オートメイク

標準に準拠した Makefile を生成するための GNU ビルド システムの一部を Automake します。 ビルド要件が直感的な形式で入力されると、Automake が Autoconf と連携して堅牢な Makefile を生成し、開発者にとってプロセス全体が簡素化されます。 (ドクター)

アヴル

libavl は、C 用の二分探索ツリーと平衡ツリー ルーチンの大規模なコレクションを提供します。これらのツリーは、データ構造からの項目の検索、挿入、削除など、通常コストのかかる操作に対して少なくとも O(log n) のパフォーマンスを提供します。 (ドクター)

ボールとパドル

Ball and Paddle は古典的なアーケード ゲームで、画面の下部にあるパドルを使用してボールを上部のレンガに跳ね返し、レンガが当たるたびにレンガを消します。 新しい工夫として、すべてのオブジェクト (レンガ、ボールなど) のイベントと属性を GNU Guile でスクリプト化できます。 (ドクター)

バーコード

GNU Barcode は、テキスト文字列から印刷バーコードを作成する柔軟なツールです。 さまざまなエンコード規格とサイジング測定をサポートします。 バーコードは、PostScript または Encapsulated PostScript 形式で出力できます。 (ドクター)

バッシュ

Bash は、GNU システムのシェル、つまりコマンドライン インタプリタです。 これは Bourne Shell と互換性がありますが、Korn Shell と C Shell の便利な機能や独自の新しい改良点も統合されています。 これにより、コマンドライン編集、無制限のコマンド履歴、シェル関数とエイリアス、およびジョブ制御が可能になると同時に、ほとんどの sh スクリプトを変更せずに実行できます。 (ドクター)

バイヨンヌ

Bayonne は、GNU Telephony プロジェクトのテレフォニー サーバーです。 SIP に重点を置いたテレフォニー ソリューションの開発と展開のためのスケーラブルな環境を提供します。 (ドクター)

バザール

GNU Bazaar は、プロジェクト ファイルへの変更を長期的に記録できるバージョン管理システムです。 分散ワークフローと従来の集中ワークフローの両方をサポートします。 (ドクター)

bc は任意精度の数値処理言語です。 これには、数学的ステートメントを評価するための対話型環境が含まれています。 その構文は C の構文に似ているため、基本的な使用法は馴染みがあります。 逆研磨計算機 dc も含まれています。 (ドクター)

BFD

ビヌティルス

GNU Binutils は、バイナリ ファイルを操作するためのツールのコレクションです。 おそらく最も注目に値するのは、リンカーの ld とアセンブラの as でしょう。 その他のツールには、バイナリ プロファイリング情報を表示するプログラム、バイナリ ファイル内の文字列をリストするプログラム、アーカイブを操作するためのユーティリティなどがあります。 実行可能ファイルおよびオブジェクト形式を操作するための bfd ライブラリも含まれています。 (ドクター)

バイソン

GNU Bison は、汎用のパーサー ジェネレーターです。 注釈付きの文脈自由文法から決定論的または一般化された LR パーサーを構築できます。 単純なツールのパーサーから複雑なプログラミング言語まで、多くのアプリケーションを使用できる汎用性があります。 (ドクター)

ブール

GNU Bool は、ブール式を使用してファイルのテキスト検索を実行するユーティリティです。 たとえば、「hello AND world」を検索すると、「Hello, world!」というフレーズを含むファイルが返されます。 。 AND ステートメントと OR ステートメントの両方に加え、互いに近接した単語の出現を検索する NEAR ステートメントもサポートしています。 新しい行や段落の変更を考慮して、コンテキストを適切に処理します。 また、HTML ファイルの解析も強力にサポートされています。 (ドクター)

BPEL2oWFN

GNU BPEL2oWFN は、Web サービス ビジネス プロセス実行言語 (WS-BPEL) で表現された Web サービスをオープン ワークフロー ネット (oWFN) に変換します。 さらに、BPEL4Chor コレオグラフィーを Petri Net モデルに変換する場合もあります。 静的解析を使用してモデルをコンパクトにするため、ペトリ ネットのプロパティを効率的に解析できます。 制御およびデータ フローの分析、デッドロックなどの基本的なチェックが利用可能です。 (ドクター)

Cグラフ

GNU C-Graph は、畳み込み理論を実証するためのツールです。 したがって、信号理論とシステム理論を学ぶ学生にとって、畳み込みプロセスを視覚化するのに優れた助けとなります。 このプログラムは、学生にコードの作成を強制するのではなく、対話型のダイアログを備えた直観的なインターフェイスを提供して学生をガイドします。 (ドクター)

ccオーディオ

GNU ccAudio2 は、ディスクからのオーディオ データを操作するための移植可能な C++ クラスです。 クラスはエンディアンとコンテンツの両方を認識します。 このライブラリはオーディオをバイナリ データとして扱うのではなく、サンプルのシーケンスとして扱います。 メタデータ情報も扱うことができます。 ccAudio2 は、sun オーディオ、生のサンプル、および RIFF エンコードされたオーディオ データをサポートします。 (ドクター)

Ccd2cue

GNU ccd2cue は、独自の CCD フォーマットをフリー ソフトウェアで十分にサポートされている CUE フォーマットに変換できる CD 書き込みソフトウェア用のプリプロセッサです。 これらのファイルは通常、CD イメージとともに配布され、イメージ上でトラックがどのようにレイアウトされるかを記述するために使用されます。 (ドクター)

サイド

GNU Ccide は、C 言語用のデシジョン テーブル コード ジェネレーターです。 これは、ネストされた if-else ステートメントの管理不能でエラーが発生しやすいチェーンを回避するのに役立ちます。 代わりに、意思決定表は直感的で読みやすい形式で入力され、移植可能な C コードに拡張されます。 (ドクター)

ccRTP

GNU ccRTP は、IETF のリアルタイム トランスポート プロトコルである RTP の実装です。 大容量サーバーと個人クライアント アプリケーションの両方に適しています。 設計が柔軟であり、単なるパケット操作ライブラリではなく、フレームワークのフレームワークとして機能することができます。 (ドクター)

ccスクリプト

GNU ccScript3 は、リアルタイムの状態遷移駆動システムのスクリプト言語またはアセンブラ言語として、またはスクリプト言語またはアセンブラ言語として使用するための仮想マシン実行システムを追加するライブラリです。 (ドクター)

流れ

GNU cflow は C ソース ファイルを分析し、プログラムの制御フローを示すグラフを作成します。 グラフをいくつかのスタイルで、POSIX 形式または拡張 GNU 形式で出力できます。 cflow には、生成されたフローチャートを調べるための Emacs のメジャー モードも含まれています。 (ドクター)

cgic

GNU cgicc は、CGI アプリケーションを作成するための ANSI 準拠の C++ ライブラリであり、FastCGI のサポートを備えています。 このライブラリは、GET データと POST データの両方の処理、さまざまなフォーム データ型の処理、オンザフライ HTML 生成など、いくつかの機能をサポートしています。 (ドクター)

チェス

GNU Chess はチェス エンジンです。 これにより、デフォルトのターミナル インターフェイスまたは GNU XBoard などの外部ビジュアル インターフェイスを介して、チェスのゲームでコンピュータと対戦することができます。 (ドクター)

シム

Cim は、最初のオブジェクト指向プログラミング言語である Simula 用の GNU コンパイラです。 (ドクター)

クラスパス

GNU クラスパスは、Java 仮想マシンとコンパイラに必須のライブラリを提供します。 言語 API 仕様の大部分と互換性があり、幅広い機能を提供します。 (ドクター)

クリスプ

GNU CLISP は、ANSI Common Lisp の実装です。 Common Lisp は、高レベルのオブジェクト指向関数型プログラミング言語です。 CLISP には、インタープリタ、コンパイラ、デバッガなどが含まれています。 (ドクター)

組み合わせる

GNU 結合は、ハッシュ テーブル内の共通キーに基づいてファイルを結合します。 これは標準の結合ユーティリティに似ていますが、それよりもはるかに強力です。 join とは異なり、見つかった一致に基づいて任意の数のファイルをマージできます。 結合には、日付解析やディレクトリ トラバーサルなどの他の高度な機能もあります。 (ドクター)

[u]一般的な C++

GNU Common C++ は、スレッド アプリケーション用に移植可能で最適化されたクラス フレームワークで、同時同期、ソケットを介したプロセス間通信、およびシリアル化や XML 解析などのさまざまなデータ処理メソッドをサポートします。 これには、より小規模な実装である uCommon C++ ライブラリが含まれています。 (ドクター)

複雑

GNU の複雑さは、複雑な手順、長すぎる手順、またはその他の点で理解が難しい手順を見つけるためのツールを提供します。 これは、なじみのないコードを学習またはレビューしたり、作成時に理解できたように見えた独自のコードを強調表示したりするのに役立つ場合があります。 (ドクター)

構成

config.guess スクリプトは正規のシステム トリプルを推測しようとし、config.sub は検証して正規化します。 これらは、ほぼすべての GNU パッケージ (およびその他の多くのパッケージ) で構成の一部として使用されます。 (ドクター)

コアユーティリティ

GNU Coreutils には、POSIX システムで期待される基本的なコマンドライン ツールがすべて含まれています。 これらは、GNU システムの基本的なファイル、シェル、テキスト操作機能を提供します。 これらのツールのほとんどは、POSIX 標準で概説されている機能を超える拡張機能を提供します。 (ドクター)

CPIO

GNU cpio は、cpio または tar アーカイブにファイルをコピーしたり、cpio または tar アーカイブからファイルをコピーしたりします。 実際、レガシー形式を含む多くの形式がサポートされています。 形式はプログラムによって自動的に決定され、適切に処理されます。 さらに、アーカイブの場所は重要ではありません。 ドライブ上の別のファイル、テープ、またはパイプ上のデータである可能性があります。 (ドクター)

コッピ

GNU Cppi は、C ソース コード ファイルを処理して、プリプロセッサ ディレクティブを適切にインデントし、そのネストを反映します。 また、ディレクティブとそれに続くテキストの間のスペースの数を修正するなど、他の標準化も実行されます。 (ドクター)

CSSC

GNU CSSC は、従来の Unix ソース コード管理システム SCCS の代替を提供します。 これにより、そのシステムにまだある古いコードにアクセスして、最新のシステムに移行できるようになります。 (ドクター)

カーシンセ

GNU cursynth は、ターミナル内でグラフィカルに実行されるポリフォニック シンセサイザーです。 フル機能の減算合成エンジンに基づいて構築されています。 ノートやパラメータの変更は、MIDI またはコンピュータのキーボード経由で入力できます (ドキュメント)。

ダプ

GNU Dap は統計とグラフィックのパッケージです。 独自の統計システム SAS 用に作成されたプログラムを読み取ることができます。 その構文は C に似ていますが、C よりも単純であるため、高度なグラフィカル機能を提供しながら、ほとんどのタスクを比較的簡単に実行できます。 (ドクター)

データマッシュ

プレーン テキスト ファイルに対して基本的な数値操作、テキスト操作、および統計操作を実行します。 追加コードなしで標準パイプライン内で動作するように設計されています。 (ドクター)

DDD

GNU DDD (データ表示デバッガー) は、コマンドライン デバッガーのグラフィカル フロントエンドです。 多くのバックエンド デバッガ、特に GNU デバッガ、GDB がサポートされています。 ソース ファイルの表示などの通常のデバッグ機能に加え、DDD にはデバッグを支援する追加のグラフィカルな対話型機能があります。 (ドクター)

アドレスキュー

GNU ddrescue は、完全に自動化されたデータ回復ツールです。 あるファイルから別のファイルにデータをコピーし、読み取りエラーが発生した場合にデータを救出します。 このプログラムには、必要なブロックのみを読み取ることでより効率的にデータを回復するために使用されるログ ファイルを操作するツールも含まれています。 (ドクター)

デジャヌー

DejaGnu はソフトウェアをテストするためのフレームワークです。 実際には、プログラム用に作成されたすべてのテストのフロントエンドとして機能します。 したがって、各プログラムは複数のテスト スイートを持つことができ、それらはすべて単一のハーネスによって管理されます。 (ドクター)

デネモ

GNU Denemo は、強力な音楽彫刻プログラム Lilypond に便利なインターフェイスを提供する楽譜エディタです。 音楽は、コンピュータのキーボードを使用して入力したり、MIDI キーボードを使用して再生したり、サウンド カードに接続されたマイクを介して入力したりすることもできます。 最終製品は出版品質の楽譜であり、作業中にバックグラウンドで継続的に生成されます。 (ドクター)

ダイヤ

ディコ

GNU Dico は、RFC 2229 (DICT サーバー) に従って柔軟な辞書サーバーとクライアントを実装します。 モジュール構造のおかげで、形式に関係なく、利用可能なあらゆるデータベースにアクセスできます。 新しいモジュールは、C、Guile、または Python で作成できます。 Dico には、リモート辞書データベースのクエリに使用できるコマンドライン クライアントも含まれています。 (ドクター)

辞書

2 つの古典的な Unix コマンド、style と diction を提供するパッケージ。 辞書は、テキスト本文内で冗長で誤用されやすいフレーズを識別するために使用されます。 代わりに、スタイルは、文章の長さやその他の読みやすさの尺度など、書かれた作品の表面的な側面を分析します。 (ドクター)

ディフューティル

GNU Diffutils は、ファイル間の相違点を見つけるためのツールを含むパッケージです。 diff コマンドは 2 つのファイルがどのように異なるかを示すために使用され、cmp はそれらが異なる箇所のオフセットと行番号を表示します。 diff3 を使用すると、3 つのファイルを比較できます。 最後に、sdiff は 2 つのファイルをマージする対話型の手段を提供します。 (ドクター)

ディオニュソス

GNU Dionysus は、科学や工学で使用される数学定数の値を迅速に取得するための便利なシステムです。 シンプルなコマンドライン ツールを使用して、普遍定数、原子番号、半導体関連定数の 3 つのデータベースから値を選択して値を検索できます。 (ドクター)

ディレベント

ファイルの作成、削除、変更などのイベントについてディレクトリを監視するデーモン。 さまざまなイベントについてさまざまなディレクトリのセットを監視できます。 イベントが検出されると、direvent は、イベントが発生したファイル システム内の場所などのイベントに関する情報を使用して、指定された外部プログラムを呼び出します。 したがって、direvent は、たとえば重要なシステム構成ファイルの変更を追跡するなど、特定のファイルに変更が加えられた場合に即座に対応する簡単な方法を提供します。 (ドクター)

ドミニオン

GNU Dominion は、マルチプレイヤー世界シミュレーション ゲームです。 その中で、各プレイヤーは国家を統治し、他のプレイヤーとの競争に直面して国家を維持しなければなりません。 プレイヤーは国家が生き残るために、政治的、経済的、軍事的、外交的な決断を下さなければなりません。 このゲームは、同じコンピュータ システムにアクセスできるすべてのプレイヤーがプレイすることを目的としています。 (ドクター)

イーズジス

ease.js は、JavaScript 用の古典的なオブジェクト指向フレームワークであり、定型コードを排除し、他のオブジェクト指向言語から JavaScript への移行を容易にすることを目的としています。 (ドクター)

Ed は行指向のテキスト エディタです。ed は文書の概要を提供するのではなく、一度に 1 行ずつ編集を実行します。 これは、対話的に実行することも、シェル スクリプトを介して実行することもできます。 コマンド入力の方法により、複雑なタスクを自動化された方法で実行できます。 GNU ed は、標準ユーティリティに対するいくつかの拡張機能を提供します。 (ドクター)

EDMA

GNU EDMA は、オブジェクト指向プログラミングとコンポーネントベースのシステムの両方のアイデアを組み合わせた開発環境です。 これは、モジュール式の進化するアプリケーションや再利用可能なコンポーネントを構築するために使用されます。 EDMA は、C++ を必要とせずに C でオブジェクト指向プログラムを構築する便利な手段を提供します。 また、プロプライエタリな対応物の設計を模倣する他のフリー ソフトウェア コンポーネント ベースのシステムとは異なり、独自のコンポーネント システムを備えています。 これには、グラフィカル ウィザード gidfwizard、GNU EDMA インターフェイス定義ファイルを構築し、EDMA クラスの構築に必要なスケルトン ファイルを作成するツール、およびグラフィカル クラス ブラウザ gecb が含まれています。 (ドクター)

電気の

GNU Electric は、電気回路を設計し、カスタム IC レイアウト、回路図、およびハードウェア記述言語仕様を処理するための CAD プログラムです。 ルールチェックやシミュレーションなど、いくつかの CAD 操作がサポートされています。 さまざまなタイプのデザインを作成し、さまざまな形式で入力または出力できます。 (ドクター)

emacs

GNU Emacs は、拡張可能で高度にカスタマイズ可能なテキスト エディタです。 これは、テキスト編集用の拡張機能を備えた Emacs Lisp インタプリタに基づいています。 Emacs はコンピューティングの基本的にすべての分野に拡張され、電子メール、IRC および XMPP メッセージング、スプレッドシート、リモート サーバー編集などをサポートする膨大なパッケージが誕生しました。 Emacs には、基本的な編集から大規模な Lisp プログラムの作成に至るまで、システムのあらゆる側面に関する広範なドキュメントが含まれています。 ほぼすべての人間の言語に対する Unicode を完全にサポートしています。 (ドクター)

emacs-ミューズ

Muse は、GNU Emacs のオーサリングおよびパブリッシュ環境です。 便利で学びやすい形式でのテキスト入力をサポートします。 後で、ドキュメントは HTML、LaTeX、PDF などのさまざまな形式で公開される可能性があります。 Muse は、出力形式に従って適切に結合された複数のドキュメントで構成されるプロジェクトをサポートします。 (ドクター)

EMMS

EMMS は Emacs マルチメディア システムです。 これは、サポートされている外部プレーヤーの 1 つを制御できる小さなフロントエンドです。 したがって、音楽プレーヤーがサポートするあらゆる形式をサポートします。 また、タグ付けとプレイリスト管理もサポートしており、これらはすべてクリーンで軽量なユーザー インターフェイスで行われます。 (ドクター)

エンスクリプト

GNU Enscript は、ASCII テキスト ファイルを PostScript、HTML、または RTF 形式に変換して、ファイルに保存したり、プリンタにすぐに送信したりするプログラムです。 また、いくつかの異なるプログラミング言語の構文強調表示を実行する機能も含まれています。 (ドクター)

fdisk

GNU fdisk は、一般的なディスク パーティショニング ツール fdisk の GNU バージョンを提供します。 fdisk はディスク パーティション テーブルの作成と操作に使用され、さまざまな形式を理解します。 (ドクター)

フェレット

GNU Ferret は、エンティティ/リレーションシップ パラダイムのグラフィカル データ モデラーです。 データ モデルからリレーショナル スキーマを自動的に作成でき、さまざまな言語で SQL ステートメントを生成するために使用できます。 (ドクター)

findutils

Findutils は、GNU システムの基本的なファイル ディレクトリ検索ユーティリティを提供します。 これは 2 つの主要な検索ユーティリティで構成されます。find は指定された条件に従ってディレクトリ内のファイルを再帰的に検索し、locate はクエリに一致するデータベース内のファイルをリストします。 2 つの補助ツールが含まれています。updatedb はファイル名データベースを更新し、xargs は任意の長さの引数を持つコマンドを適用するために使用できます。 (ドクター)

フィシカラボ

GNU FisicaLab は、物理学の問題を解決するための教育アプリケーションです。 その主な目的は、ユーザーが数学的な詳細を脇に置き、物理概念に集中できるようにすることです。 (ドクター)

フォリオット

GNU Foliot は、プロジェクトの作業に費やした時間を追跡するためのアプリケーションです。 (ドクター)

フォントピア

Fontopia は、使いやすいテキストベースのコンソール フォント エディターです。 これは、GNU/Linux がテキストベースの端末にテキストを表示するために使用するフォントを編集するために使用されます。Fontopia は、PSF 1 および 2、BDF、コード ページ (CP) フォント、および Raw フォント ファイルの両方で動作します。フレンドリーで使いやすいグリフ エディターで、フォント メトリクス (長さ、幅、高さなど) を簡単に変更したり、異なるフォント形式間で変換したりできます。(doc)

フォントユーティリティ

GNU Fontutils は、フォントを処理するためのプログラムのコレクションです。 スキャンした文字イメージからビットマップを抽出し、編集してアウトラインフォントに変換できます。 一般に、Fontutils は、PostScript Type 1 フォントを含む、TeX 写植環境でサポートされるフォント形式をサポートします。 (ドクター)

フリーディンク

GNU FreeDink は、ロールプレイング ゲーム Dink Smallwood 用のエンジンを無料でポータブルに再実装したものです。 オリジナルのゲーム データ ファイルだけでなく、ユーザーが作成したゲーム MOD や D-Mods もサポートしています。 その点で、すべての D-Mod を管理するためのフロントエンドも含まれています。 (ドクター)

無料のUCSアウトラインフォント

GNU FreeFont は、一般的なコンピュータでの使用やデスクトップ パブリッシングに適した、スケーラブルなアウトライン フォントのコレクションです。 セリフ、サンセリフ、等幅フォントが含まれており、すべて TrueType 形式と OpenType 形式の両方で使用できます。 これらのフォントは、さまざまな書記体系の幅広い文字をサポートしており、数学的表記法を十分にカバーしています。 (ドクター)

無料IPMI

GNU FreeIPMI は、IPMI v1.5/2.0 仕様に準拠した帯域内および帯域外の IPMI ソフトウェアのコレクションです。 これらのプログラムは、プラットフォーム管理用の一連のインターフェイスを提供します。 共通の機能には、センサー監視、システム イベント監視、電源制御、および Serial-over-LAN が含まれます。 (ドクター)

フリートーク

GNU Freetalk は、コマンドライン Jabber/XMPP チャット クライアントです。 特に、入力の処理に Readline ライブラリを使用しているため、テキストの便利なナビゲーションや、仲間の名前、コマンド、英語の単語のタブ補完が特徴です。 また、Guile を介してスクリプト化および拡張可能です。 このパッケージはメンテナーを募集しています。 (ドクター)

フリビディ

GNU FriBidi は、Unicode 双方向アルゴリズムの実装です。 このアルゴリズムは、必要に応じてテキストを左から右または右から左の順序で適切に表示するために使用されます。 (ドクター)

Gゴルフ

G-Golf (Gnome: (Guile Object Library for)) は、Guile Scheme で最新のアプリケーションを開発するためのライブラリです。 これは、GObject Introspection API への直接バインディングと、Gnome ライブラリをインポートし、GObject クラス (およびメソッド) を Guile のオブジェクト指向プログラミング システム GOOPS で利用できるようにするための高レベルの機能で構成されています (ドキュメント)。

ガマ

GNU Gama は、測地ネットワークを調整するためのプログラムです。 地下など全地球測位システム (GPS) が利用できない場所での測定に役立ちます。 グローバル座標系での調整を部分的にサポートするだけでなく、ローカル デカルト座標で調整する機能も備えています。 (ドクター)

無償 ARP デーモン

GNU garpd は、MAC アドレスのリストに対する Gratuitous ARP (アドレス解決プロトコル) 要求/応答をブロードキャストします。<->指定されたインターフェイス上の IP アドレス マッピングを定期的に実行します。 Gratuitous ARP 要求パケットは、送信元 IP と宛先 IP が両方とも要求側マシンの IP であるパケットです。 Gratuitous ARP 応答は、対応する要求なしで行われた応答です。 (ドクター)

ゴーク

Gawk は、データ表などの書式設定されたテキストを簡単に操作するための特殊なプログラミング言語である Awk の GNU 実装です。 Gawk は、ネットワーク アクセス、ソート、大規模ライブラリなど、従来の実装を超える多くの拡張機能を備えています。 (ドクター)

グベヒスタン

GNU Behistun は、地質学的および地球物理学的モデリングと、内部構造と力学のマッピングのためのソフトウェアとユーティリティで構成されています。 Behistun 多言語碑文と同様に、Behistun ソフトウェア ユーティリティは、惑星系に取り組み、その内部を自由に調査するための知識と機能を提供します。 (ドクター)

Gcal

Gcal は、コマンドラインでカレンダーを計算して印刷するプログラムです。 カレンダーは、1 か月、3 か月、または 1 年間のビューで印刷できます。 さらに、多くの国に対して永久休暇リストを生成でき、これをユーザーが作成した固定日付のリストで補完して議題を作成することができます。 Gcal は月の満ち欠けなどの天文データも計算でき、ユリウス暦、グレゴリオ暦、イスラム暦、中国暦などの代替暦形式もサポートしています。 (ドクター)

GCC

GCC は GNU コンパイラ コレクションです。 C、C++、Objective-C、Fortran、Java、Ada、Go などのいくつかの言語にコンパイラ フロントエンドを提供します。 これらの言語のランタイム サポート ライブラリも含まれています。 (ドクター)

ジーサイド

GCIDE は、ソースの組み合わせに基づいた無料の辞書です。 GNU Dico プログラム経由で使用することも、http://gcide.site.ua/ (ドキュメント) からオンラインでアクセスすることもできます。

GNU共通Lisp

GCL は Common Lisp 言語の実装です。 ネイティブ オブジェクト コードにコンパイルし、ネイティブ オブジェクト コード モジュールを Lisp コアに直接ロードする機能を備えています。 また、階層化されたガベージ コレクション戦略、ソース レベルのデバッガー、および Tk ウィジェット システムへの組み込みインターフェイスも備えています。 (ドクター)

Gcompris

GCompris は、子供向けの教育ソフトウェア スイートです。 2歳から10歳までのお子様に適したさまざまなアクティビティを提供しています。 このスイートには、コンピューターの使用、代数、科学、読書などのスキルを導入し、開発するためのアクティビティが含まれています。 チェスや数独などのゲームも備えています。 (ドクター)

gdb

GDB は GNU デバッガです。 これを使用すると、プログラムの実行中にプログラムが何をしていたか、またはクラッシュの直前に何をしていたかを監視できます。 これにより、実行時の条件を指定したり、ブレークポイントを定義したり、プログラムの実行方法を変更してバグを修正したりすることができます。 C、C++、Ada、Objective-C、Pascal などで書かれたプログラムのデバッグに使用できます。 (ドクター)

Gdbm

GDBM は、ハッシュされたデータベースを操作するためのライブラリです。 これは、Unix dbm ライブラリと同様の方法でキーと値のペアをファイルに保存するために使用され、従来のファイル形式へのインターフェイスを提供します。 (ドクター)

ゲンゲン

GNU Gengen は、テキストジェネレーター、つまり可変セクションを持つテキストを生成する関数を生成するプログラムです。 テキストは、最初にパラメーターを含むテンプレート ファイルでユーザーによって指定され、次に gengen によって処理されてテキスト ジェネレーターが作成されます。 実行時に、変数テキストはプログラムの残りの部分によって定義されてテキスト ジェネレーターに渡され、テキスト ジェネレーターはそれをテンプレート パラメーターに代入して結果を返します。 Gengen を使用すると、C および C++ コードを生成できます。 (ドクター)

ゲンゲトプト

GNU Gengetopt は、GNU libc にある getopt_long 関数を使用してコマンドライン オプションを解析するための C/C++ 関数を生成するプログラムで、多くのオプションを受け入れる大規模なプログラムでのこのタスクの面倒な作業の一部を除去します。 生成された関数によって解析されるオプションは、GNU コーディング標準で指定されているように、短い形式 (-h など) と長い形式 (--help) の両方になります。 さらに、標準オプション --help および --version の出力が自動的に生成されます。 (ドクター)

テキストを取得する

GNU Gettext は、プログラムのテキスト出力を複数の言語に翻訳するためのフレームワークを提供するパッケージです。 これは、翻訳者にメッセージ カタログを作成する手段、メッセージ カタログを操作するための Emacs モード、およびカタログから翻訳されたメッセージをロードするためのランタイム ライブラリを提供します。 ほぼすべての GNU パッケージは Gettext を使用します。 (ドクター)

ずっと

Gforth は、ANSI Forth 言語の高速かつ移植可能な実装です。 これには、Emacs の編集モードと、補完と履歴を備えたインタプリタが含まれています。 汎用仮想マシン環境 vmgen も含まれています。 (ドクター)

成績表

GNU Gradebook は、生徒の成績を追跡するための教師用アプリケーションです。 米国 (A、B、C、D、F) およびヨーロッパの数値スケールを含む、いくつかの評価スタイルをサポートしています。 (ドクター)

GNU ゴーストスクリプト

Ghostscript は、PostScript 言語と PDF ファイル形式のインタープリタです。 また、PostScript 言語のグラフィック機能を実装する C ライブラリも含まれています。 さまざまな出力ファイル形式とプリンターをサポートしています。 (ドクター)

贈り物

GNU Image-Finding Tool (GIFT) は、コンテンツ ベースの画像検索システムです。 画像のコンテンツを使用してコレクションに対してクエリを実行し、例によるクエリを実行できるようにします。 また、ディレクトリ ツリー全体にインデックスを付けるツールも含まれています。 (ドクター)

GIMP

GIMP は、写真のレタッチ、合成、オーサリングなどの画像操作タスクのためのアプリケーションです。 すべての一般的な画像形式と特殊な画像形式をサポートします。 プラグイン システムを介して拡張可能な、高度にカスタマイズ可能なインターフェイスが特徴です。 (ドクター)

落穂拾い

GNU glean は自習用のモジュール式システムで、標準的なフラッシュ カードによる方法よりもかなり複雑です。 非常にカスタマイズ可能で、ユーザーは興味のある主題とそれを研究するためのアクティビティを定義できます。 現時点では、Guile REPL 内にテキストベースのインターフェイスと実験的な Web インターフェイスがあります。 (ドクター)

グリーム

GNU gleem は、3D シーンとの直接ユーザー操作をサポートする 3D ウィジェットのセットを提供する Java および C++ 用のライブラリです。 これらのウィジェットは、線に沿った移動、平面内での移動、および 3 次元の移動と回転を行うために使用されます。 このパッケージはメンテナーを募集しています。 (ドクター)

GLib

グローバル

GNU GLOBAL は、さまざまなテキスト エディター、シェル、Web ブラウザーなど、さまざまな環境で同じように機能するソース コード タグ付けシステムです。 結果として得られるタグは、大規模で深くネストされたプロジェクト内を素早く移動するのに役立ちます。 (ドクター)

GLPK

GLPK は、大規模線形計画法 (LP)、混合整数計画法 (MIP)、およびその他の関連問題を解決するための C ライブラリです。 AMPL 言語のサブセットである GNU MathProg モデリング言語をサポートし、その言語のトランスレーターを備えています。 C ライブラリに加えて、スタンドアロンの LP/MIP ソルバーがパッケージに含まれています。 (ドクター)

Gメディアサーバー

GMediaServer は、UPnP 互換のメディア サーバーです。 バックグラウンドで実行されるコマンドライン プログラムを介して、ネットワークに接続されたメディア プレーヤーにオーディオ ファイルとビデオ ファイルを提供します。 (ドクター)

GMP

GMP は、符号付き整数、有理数、および浮動小数点数を操作する任意精度演算用のライブラリです。 精度は利用可能なメモリによってのみ制限されます。 このライブラリは高度に最適化されており、実行速度を重視した設計になっています。 これは、暗号化や計算代数などでの使用を目的としています。 (ドクター)

グナッシュ

Gnash は無料の Flash ムービー プレーヤーです。 SWF バージョン v7 と、v8 および v9 の一部をサポートします。 いくつかの異なるオーディオまたはビデオ バックエンドを使用するように Gnash を構成し、良好なパフォーマンスを確保することが可能です。 (ドクター)

グナット

ブヨ

GNATS は、バグやユーザーから報告されたその他のソフトウェアの問題を追跡するためのツールのセットです。 データベースのクエリ、編集、保守の方法は完全に自由であり、コマンドラインから Emacs に至るまでのインターフェースを備えていますが、主な対話手段は Web インターフェース経由です。 また、ユーザー作成のユーティリティをサポートするのに十分な柔軟性もあります。 (ドクター)

ブヨの巣

ニューラルネットワーク

Gneural Network は、プログラム可能なニューラル ネットワークを実装します。 現在、カーブフィッティングなどの単純なタスクを学習できるフィードフォワードネットワークをサポートしています。 (ドクター)

GNOME

GNOME は GNU のグラフィカル デスクトップです。 Web の閲覧、テキストや画像の編集、文書や図の作成、メディアの再生、スキャンなどを行うためのさまざまなアプリケーションが含まれています。 (ドクター)

GNU C リファレンスマニュアル

これは、GNU C コンパイラ (gcc) によって実装される C プログラミング言語のリファレンス マニュアルです。 参考として記載していますが、言語のチュートリアルを目的としたものではありません。 むしろ、言語のすべての構成要素の概要を説明します。 ライブラリ関数は含まれていません。 (ドクター)

gnu-pw-mgr

このプログラムは、攻撃のリスクを制限しながら、必要なときに難しいパスワードを簡単に再構築できるように設計されています。 このプログラムのユーザーは、Web サイト URL の自己定義の変換を入力し、その Web サイトのパスワードとユーザー名のヒントを取得します。 (ドクター)

GNUbatch

GNUbatch は、高度なバッチ スケジューリング システムです。 指定された日時に、または相互依存関係に従って計算ジョブを実行します。 ジョブは、ネットワーク上で共有される任意の数のプロセッサ上で実行できます。 ジョブの完全なアクセス制御がサポートされています。 (ドクター)

バックギャモン

GNU バックギャモン アプリケーションは、ゲームのプレイ、分析、教育に使用できます。 人工ニューラルネットワークに基づく高度な評価エンジンを備えており、初心者と上級プレイヤーの両方に適しています。 コマンドライン インターフェイスに加えて、プレイボードの魅力的な 3D 表現も備えています。 (ドクター)

GNUbiff

GNUbiff は、メールをチェックし、新しいメッセージが到着したときに通知するプログラムです。 POP3、IMAP、MH、メールファイルなどのさまざまな方法でアクセスできる複数のメールボックスをサポートします。 GTK ではグラフィカル通知が提供され、GNOME との完全な統合がサポートされています。 (ドクター)

グヌビック

GNUbik は、立方体を操作して各面の色を均一にするパズル ゲームです。 このゲームはカスタマイズ可能で、立方体のサイズ (デフォルトは 3x3) を設定したり、色を変更したりできます。 色の代わりに写真を顔に適用することもできます。 このゲームは Guile でスクリプト化可能です。 (ドクター)

GNUcap

GNUcap は回路解析パッケージです。 汎用回路シミュレータを提供し、DC および過渡解析、フーリエ解析、AC 解析を実行できます。 このエンジンは、真の混合モード シミュレーションを実行するように設計されています。 (ドクター)

GnuCash

GnuCash は、個人向けおよびプロフェッショナル向けの財務会計ソフトウェアです。 複式簿記の慣行に基づいて、銀行口座、株式、収入と支出を追跡するために使用できます。 これには、QIF/OFX/HBCI インポートとトランザクション マッチングのサポートが含まれます。 また、財務計算やスケジュールされたトランザクションなどのいくつかのタスクも自動化します。 (ドクター)

GnuComm

GNU プロジェクトのテレコム サブシステム: GNU テレフォニー ソフトウェアの包括的なプロジェクト、現在は Bayonne、SIP Witch、およびそれらのサポート ライブラリ (Common C++ / uCommon、ccAudio、ccScript、ccRTP および ZRTP / ZRTP4J)。 (ドクター)

GnuDOS

GnuDOS は、GNU システムの新規ユーザー、特に DOS のバックグラウンドを持つユーザーがシステムに慣れるのを助けるように設計されたプログラムのセットです。 これは、ファイル マネージャー、テキスト エディター、コンソール用のフォーム デザイナー、および同様のユーティリティを構築するためのコア ライブラリで構成されています。 (ドクター)

GNU エンタープライズ

GNU Enterprise は企業計画をサポートします。 これには、アプリケーション サーバー、共通開発ライブラリ、データ フォームを設計するための IDE、フォーム インターフェイス、ナビゲータおよびメニュー システム、データ レポート システムが含まれます。 (ドクター)

GNUgo

GNU Go は、碁のゲームをプレイするプログラムです。プレーヤーは、グリッド上に石を配置して領土を形成したり、他の石を占領したりします。 GNU Go は、ASCII 文字でレンダリングして端末から直接再生できますが、サードパーティのグラフィカル インターフェイスや Emacs でさえも再生することもできます。 標準のゲーム保存形式 (SGF、Smart Game Format) とプロセス間通信形式 (GMP、Go Modem Protocol) をサポートします。 (ドクター)

GNU インタラクティブ ツール

GNU インタラクティブ ツールは、軽量でインタラクティブなコマンド ライン ツールのセットです。 これらには、拡張可能なオーソドックスな (2 ペイン) ファイル マネージャー、ASCII/hex ファイル ビューアー、およびプロセス ビューアー/キラーが含まれています。 このパッケージには、あらゆる種類のアーカイブ ファイルを解凍するツールなど、いくつかの関連ユーティリティとスクリプトも含まれています。 すべてのツールは、構成ファイルを通じて強化および拡張して、新しいコマンドを実行できます。 (ドクター)

GNUジャンプ

GNUjump はシンプルですが中毒性のあるゲームで、落ちないようにプラットフォームからプラットフォームへとジャンプする必要があり、上に行くほどプラットフォームの落下速度が速くなります。 このゲームは、マルチプレイヤー、無制限の FPS、スムーズな床落下、テーマに合わせたグラフィックとサウンド、リプレイを備えています。 (ドクター)

GNUlib

Gnulib は、GNU パッケージに必要な共通インフラストラクチャの中心的な場所です。 これは、多くのシステム間での移植性、Unicode 文字列の操作、暗号計算など、さまざまな機能を提供します。 コードは、配布、構築、インストールされるスタンドアロン ライブラリではなく、ソース ファイル レベルで共有されることを目的としています。 付属の gnulib-tool スクリプトは、他のパッケージで Gnulib コードを使用するのに役立ちます。 Gnulib には、便宜上、ライセンスおよびメンテナンス関連のファイルのコピーも含まれています。 (ドクター)

マッハ

GNUmed

GNUmed は、ペーパーレス医療行為をサポートする電子医療記録ソフトウェアです。 いくつかのインターフェース言語がサポートされています。 (ドクター)

GNUmeric

GNUmeric は、GNOME 上で実行される GNU スプレッドシート アプリケーションです。 他のスプレッドシート アプリケーションと相互運用できます。 線形および非線形ソルバー、統計解析、通信エンジニアリングのサポートなど、一般的なスプレッドシート機能を超える幅広い機能を備えています。 (ドクター)

GNUmp3d

GNUMP3d は、MP3 および Ogg Vorbis オーディオ ファイル、ムービー、およびその他のメディア形式用のストリーミング サーバーです。 これは小型で自己完結型であり、シンプルでテーマに合わせた HTML インターフェイスを提供します。 オーディオ ファイルは、HTTP 経由のストリーミングをサポートする任意のプレーヤーで再生できます。 (ドクター)

GN国連

GNUnitednation は、www.site の Web サイトを翻訳するためのビルド システムです。 これはテンプレート ファイルを介して機能し、変更をページの個々の翻訳にマージし、そこから最終的な HTML が生成されます。 実際、これはページのすべての翻訳を最新の状態に保つのに役立ちます。 (ドクター)

GNUnet

GNUnet は、安全なピアツーピア ネットワーキングのためのフレームワークです。 大まかな目標は、セキュリティとプライバシーを提供するグローバルな分散ネットワークにフリー ソフトウェアの強力な基盤を提供することです。 その意味で、GNUnet は現在のインターネット プロトコル スタックを置き換えることを目指しています。 ファイルを安全に公開するためのアプリケーションに加えて、GNU インターネットの基盤となるあらゆる種類の基本アプリケーションを含むように成長しました。 (ドクター)

GnuPG

GNU Privacy Guard は、OpenPGP 標準の完全な実装です。 データと通信の暗号化と署名に使用されます。 強力な鍵管理と公開鍵サーバーにアクセスする機能を備えています。 これには、libassuan (GnuPG コンポーネント間の IPC)、libgpg-error (一元化された GnuPG エラー値)、および libskba (X.509 証明書および CMS データを処理する) などのいくつかのライブラリが含まれています。 (ドクター)

GNUpod

GNUpod は、GNU/Linux およびその他のオペレーティング システムで iPod を使用するためのスクリプトのコレクションです。 音楽やカバーアートの転送、ファイルの検索、ファイルの削除、タグの編集、プレイリストの作成などに使用できます。 (ドクター)

GNUprologjava

GNU Prolog for Java は、ISO Prolog 標準を Java ライブラリ (gnu.prolog) として実装したものです。 したがって、これを使用すると、Java プログラム内から Prolog を使用できます。 (ドクター)

無線

GNU Radio は、ソフトウェア ラジオを実装するためのツールキットです。 その信号処理ブロックを低コストの外部 RF ハードウェアと組み合わせて、ソフトウェア無線を作成できます。 ハードウェアがなくてもシミュレーションに使用できます。 ラジオ アプリケーションは主に Python で書かれており、パフォーマンスが重要な処理タスクについては C++ がサポートされています。 (ドクター)

ロボット

GNU Robots は、ロボットをプログラムして、ロボットを傷つける可能性のある敵、障害物、食べ物でいっぱいの世界を探索するゲームです。 ゲームの目的は、生き残って賞品を集めることです。 ロボット プログラムは、Scheme プログラミング言語でプレーン テキスト ファイルに記述することができます。 (ドクター)

GNUスクール

GNUschool は、学生、教師、学校管理者向けの Web アプリケーションです。 これを使用すると、教師は生徒がオンラインで受けられるテストを作成し、フィードバックを与え、成績を割り当てることができます。 学校管理者はこれを使用して、生徒の出席状況を監視したり、生徒の情報を編集したりできます。 (ドクター)

GNU将棋

GNU Shogi は、将棋をプレイするプログラムです。 ゲームへのグラフィカル インターフェイスも含まれています。 標準的なチェスに似ていますが、このバリエーションははるかに複雑です。 (ドクター)

GNUsound

GNUsound は、GNOME 1 および 2 用のマルチトラック サウンド エディタです。WAV、MP3、FLAC などの多くのオーディオ ファイル形式を読み書きできます。 OSS、ALSA、または JACK オーディオ バックエンドと連携できます。 フェードイン/アウト、遅延、フィルターなど、さまざまな組み込みオーディオ処理モジュールを提供します。 GLADSPA プラグインは、さらなる処理にも使用できます。 (ドクター)

GNUスプール

GNUspool は、高度な印刷スプール システムです。 標準の印刷システムの機能に加えて、後処理機能、フォーム タイプの処理、ページの調整などの機能が提供されます。 これはネットワーク上で透過的に機能し、任意のホスト上のジョブを他のホスト上のプリンタと共有します。 いくつかのユーザー インターフェイスが利用可能です。 (ドクター)

GNUstep

GNUstep は、完全に機能するオブジェクト指向開発環境です。 多数のユーザー アプリケーションも含まれています。 これは Cocoa API に厳密に従っていますが、プラットフォームには依存しません。 (ドクター)

GnuTLS

GnuTLS は、SSL、TLS、DTLS プロトコルを実装する安全な通信ライブラリです。 これは、プロトコルをサポートするだけでなく、X.5009、PKCS 12、OpenPGP、およびその他の必要な構造を解析して書き込むために、C ライブラリの形式で提供されます。 (ドクター)

栄養補給

GNUtrition は無料の栄養分析ソフトウェアです。 これを使用すると、食品の栄養情報を追跡することができます。 このソフトウェアは、食品栄養情報のソースとして米国農務省の標準参照栄養データベースを使用します。 (ドクター)

GNUzilla

ゴプティカル

Gooptical は、C++ での光学設計およびシミュレーション用のライブラリです。 光学コンポーネント、表面、および材料のモデル クラスを提供します。 これを使用すると、3D 空間に光学コンポーネントを作成して配置することで光学システムの構築をシミュレーションし、システム内を伝播する光を視覚化できます。 (ドクター)

ゴーム

Gペイント

GNU ペイントは、GNOME 環境用のシンプルで使いやすいペイント プログラムです。 基本的な図形やテキストだけでなく、フリーハンドでの描画もサポートしています。 不規則な領域や多角形のカットアンドペーストが特徴です。 (ドクター)

gperf

gperf は完璧なハッシュ関数ジェネレーターです。 指定された文字列リストに対して、C または C++ コードでハッシュ関数とハッシュ テーブルを生成します。 ハッシュ関数が完全であるということは、衝突が存在せず、単一の文字列比較によって検索が可能であることを意味します。 (ドクター)

グプロローグ

GNU Prolog は、有限領域にわたる制約解決を備えた標準準拠の Prolog コンパイラーです。 Prolog+ 制約プログラムを受け入れ、スタンドアロンで機能するコンパイル済みのネイティブ バイナリを生成します。 インタラクティブな通訳機能も備えています。 (ドクター)

phpGrabコミック

phpGrabComics は、Web から漫画を取得して保存するプログラムです。 これは、さまざまなソースからストリップをダウンロードできるサーバーと、サーバーから利用可能なコミックのリストを取得する小さなアプリケーションであるポートの両方を備えています。 (ドクター)

グレッグ

GNU Greg は、プログラムとライブラリをテストするためのフレームワークです。 パッケージのすべてのテストに単一のフロントエンドを提供するだけでなく、テストを作成するためのシンプルなフレームワークも提供します。 これは、Guile インタープリタが組み込まれたソフトウェアに Guile モジュールとしてロードされます。 また、Guile に動的にリンクして外部プログラムをテストできるコンパイル済みモジュールも提供します。 (ドクター)

grep

grep は、ファイル内のテキストを検索するためのツールです。 テキストは、1 つまたは複数のファイル内でユーザーが指定したパターンと一致することによって検索されます。 パターンは、基本または拡張正規表現、または固定文字列として提供できます。 デフォルトでは、一致するテキストが単に画面に出力されますが、出力は行番号などを含めるように大幅にカスタマイズできます。 GNU grep は、再帰的ディレクトリ検索など、標準ユーティリティに対して多くの拡張機能を提供します。 (ドクター)

グレートル

GNU Gretl は、計量経済学の統計計算を実行するためのパッケージです。 これは、コマンドライン クライアントとグラフィカル クライアントの両方で構成されます。 最小二乗法や最尤法などのさまざまな推定器を備えています。 ARIMA や GARCH などのいくつかの時系列メソッド。 ロジット、プロビット、トビットなどの限定された従属変数。 そして強力なスクリプト言語。 モデルを LaTeX ファイルとして出力できます。 また、さらなるデータ分析のために GNU R および GNU Octave にリンクすることもできます。 (ドクター)

グロフ

Groff は、プレーン テキストを読み取り、テキスト内に含まれる書式設定コマンドに基づいて書式設定された出力を生成する植字パッケージです。 通常、これはマニュアルページのフォーマッタです。 (ドクター)

グラブ

GRUB はマルチブート ブートローダーです。 これは、オペレーティング システムのカーネルを最初にロードし、次に制御をそれに移すために使用されます。 その後、カーネルはオペレーティング システムの残りの部分をロードし続けます。 GRUB は、マルチブート ブートローダーとして、同じコンピュータにインストールされている複数のオペレーティング システムの存在を処理します。 コンピュータを起動すると、インストールされているオペレーティング システムの 1 つを選択するメニューが表示されます。 (ドクター)

グサスル

GNU SASL は、簡易認証およびセキュリティ層フレームワークの実装です。 IMAP サーバーや SMTP サーバーなどのネットワーク サーバーでは、クライアント/サーバー認証の処理に SASL が使用されます。 このパッケージには、ライブラリと、ライブラリにアクセスするためのコマンドライン ツールの両方が含まれています。 (ドクター)

ゲセグラフィックス

GSEGrafix は、科学および工学向けの高品質なグラフィック プロットを作成するアプリケーションです。 プロットは単純な ASCII パラメータ ファイルとデータ ファイルを介して指定され、アンチエイリアス処理された GNOME キャンバスに表示されます。 このプログラムは、長方形の 2 次元プロット、ヒストグラム、極軸プロット、および 3 次元プロットをサポートしています。 プロットは印刷したり、BMP、JPEG、または PNG 画像形式で保存したりできます。 (ドクター)

GNU 科学ライブラリ

GNU Scientific Library は、C および C++ での数値解析用のライブラリです。 これには、合計 1000 を超える関数を含む幅広い数学的ルーチンが含まれています。 ライブラリがカバーする主題分野には、微分方程式、線形代数、高速フーリエ変換、乱数が含まれます。 (ドクター)

GNU スリップ

GNU Slip は、C++ 標準テンプレート ライブラリ (STL) リストおよびキュー コンテナで提供される機能の機能拡張ですが、SLIP は STL コンテナに代わるものではありません。 SLIP データ セルは、他の拡張機能の中でも特に、アプリケーション固有の計算で使用できます。 (ドクター)

GSRC は、既存のシステムへの GNU パッケージの最新リリースのインストールをサポートします。 新しいバージョンは、システムのバージョンに干渉しないように別の場所にインストールされます。 目標は、オリジナルのアップストリーム GNU ソースの操作を容易にし、おそらく開発とテストを支援することです。 (ドクター)

汎用セキュリティサービス

GNU Generic Security Service は、GSS-API 仕様の無料実装を提供します。 プログラムがセキュリティ サービスにアクセスするための汎用アプリケーション プログラミング インターフェイスを提供します。 セキュリティ サービスは汎用の GSS インターフェイスを提供し、呼び出し側アプリケーションはこのライブラリを介して対話するため、アプリケーション開発者は基礎となるセキュリティ実装について知る必要がなくなります。 (ドクター)

Gティック

GTickはメトロノームアプリです。 2/4、3/4、4/4 などのさまざまなメーターをサポートします。 また、10 ~ 1000 BPM までの幅広い速度をサポートします。 GTK+ ベースのユーザー インターフェイスを提供し、OSS と ALSA の両方をオーディオ バックエンドとして使用できます。 (ドクター)

GTK+

ジータイピスト

GNU Typist は、ユニバーサル タイピングの家庭教師です。 タッチタイピングの学習と練習に使用できます。 いくつかのチュートリアルが含まれています。 標準の QWERTY レイアウトのチュートリアルに加えて、代替レイアウトの Dvorak および Colemak、およびテンキーのチュートリアルもあります。 チュートリアルは主に英語ですが、他の言語でもいくつか提供されています。 (ドクター)

ガイル

Guile は、GNU Ubiquitous Intelligent Language for Extensions であり、GNU システムの公式拡張言語です。 これは、他のアプリケーションに簡単に埋め込むことができる Scheme 言語の実装であり、ソース コードを書き直すことなくアプリケーションの機能を拡張する便利な手段を提供します。 (ドクター)

ガイルCV

Guile-CV は、Guile Scheme 言語用の Computer Vision 関数プログラミング ライブラリです。 Guile-CV は Vigra (Vision with Generic Algorithms) に基づいています。 これは、vigra_c (Vigra ライブラリのサブセットへの C ラッパー) への直接バインディングと、Guile Scheme で書かれた高レベル API で構成されています。 (ドクター)

ガイルdbi

guile-dbi は、SQL データベースへの便利なインターフェイスを提供する Guile のライブラリです。 guile-dbi を使用したデータベース プログラミングは、どのデータベース システムが使用されているかに関係なく、同じプログラミング インターフェイスが表示されるという点で汎用的です。 現在、MySQL、Postgres、SQLite3 をサポートしています。 (ドクター)

ガイルノーム

guile-clutter、guile-gnome-gstreamer、guile-gnome-platform (GNOME 開発者ライブラリ)、および guile-gtksourceview が含まれます。 (ドクター)

ガイルの呪い

guile-ncurses は、ncurses ライブラリ用の Guile 言語バインディングを提供します。 (ドクター)

ガイルオープングル

Guile-OpenGL は、OpenGL グラフィック API へのバインディングを提供する Guile のライブラリです。 (ドクター)

ガイル-SDL

Guile-SDL は、Simple DirectMedia Layer (SDL) へのバインディングのセットです。 これらを使用すると、Guile プログラマーはグラフィックス、サウンド、デバイス入力 (キーボード、ジョイスティック、マウスなど) に簡単にアクセスできます。 (ドクター)

ギクス

GNU Guix は、GNU システムの機能パッケージ マネージャーであり、そのディストリビューションでもあります。 これには仮想マシンイメージが含まれます。 通常のパッケージ管理機能に加えて、トランザクションのアップグレードとロールバック、ユーザーごとのプロファイルなどもサポートします。 これは Nix パッケージ マネージャーに基づいています。 (ドクター)

ゴロゴロ

GURGLE は、ファイルのレコードとフィールド情報からデータベース レポート リストを作成します。 このレポートを使用して、(La)TeX 形式の出力、プレーン ASCII テキスト、troff、PostScript、HTML、XML、またはその他の ASCII ベースの出力形式を生成します。 これは、テキストの小さな部分がデータベースからの情報で置き換えられる、大きなテキスト本文を作成するために使用される場合があります。 GURGLE は、GNUSQL、PostgreSQL、MySQL、および CA-Ingres データベースをサポートしています。 (ドクター)

GNU GV は、Ghostscript インタプリタへのグラフィカル ユーザー インターフェイスです。 これを使用すると、X Windows で PostScript ドキュメントと PDF ドキュメントを表示し、ナビゲートすることができます。 (ドクター)

GVPE

GNU Virtual Private Ethernet は、さまざまなトランスポート プロトコルを使用して複数のノードを持つ仮想ネットワークを作成します。 これは、複数のエンドポイント間に暗号化されたホスト間トンネルを作成することで機能します。 (ドクター)

GWL

GWL は、パッケージ管理用の Guix 宣言言語を拡張してプログラムの実行を自動化するワークフロー言語です。さらに、GWL は Grid Engine を使用してプログラムの実行をオフロードできます。(ドキュメント)

gxメッセージ

GNU gxmessage は、ダイアログ ウィンドウをポップアップ表示するプログラムで、ユーザーにメッセージを表示し、ユーザーのアクションを待ちます。 その後、プログラムは応答に対応する終了コードで終了します。 (ドクター)

Gzip

GNU Gzip は、データ圧縮および解凍ユーティリティを提供します。 一般的な拡張子は .gz です。 zip 形式とは異なり、単一のファイルを圧縮します。 その結果、 tar と組み合わせて使用​​されることが多く、 .tar.gz や .tgz などになります。 (ドクター)

ハリファックス

HaliFAX は、lpr コマンドのラッパーを含め、FAX の送信と表示をサポートします。 このパッケージはメンテナーを募集しています。 (ドクター)

健康

GNU Health は、電子医療記録 (EMR)、病院情報システム (HIS)、および医療情報システムのサポートを含む、無料の医療ソフトウェア システムです。 スペイン語と英語の両方のインターフェイスをサポートしています。 これは、国連大学での実施と訓練、および世界中のいくつかの病院や保健省で採用されています。 (ドクター)

こんにちは

GNU Hello は、Hello, world! というメッセージを出力します。 そして終了します。 これは、標準的な GNU コーディング手法の例として機能します。 そのため、コマンドライン引数や複数の言語などをサポートしています。 (ドクター)

ヘルプ2マン

GNU help2man は、標準の --help および --version コマンドライン引数の出力をマニュアル ページに自動的に変換するプログラムです。 (ドクター)

HP2xx

GNU hp2xx は、HP-GL プロッタ言語で指定されたベクトル グラフィックスを、EPS、PCX、IMG、TeX ドキュメント内での使用を目的とした形式など、ベクトルベースとラスターベースの両方のさまざまなグラフィック形式に変換します。 (ドクター)

httpトンネル

GNU httptunnel は、HTTP リクエストでトンネリングされる双方向データ パスを作成します。 これにより、ファイアウォールの背後にあるユーザーは、Telnet 接続や SSH 接続など、通常はブロックされるデータを送受信できるようになります。 (ドクター)

ハード

Hurd は GNU システムのカーネルであり、標準 Unix カーネルの代替および拡張です。 これは、システム相互作用 (ファイル システム、ネットワーク、認証) およびそれらを実装するサーバーのためのプロトコルのコレクションです。 サブプロジェクトには、基本的なプロセス間通信メカニズムを提供する Hurd のベースとなるマイクロカーネルである Mach と、Mach のインターフェイス ジェネレーターである MIG が含まれます。 (ドクター)

誇張

Hyperbole は、GNU Emacs 用のプログラム可能な情報およびハイパーテキスト システムです。 ハイパーテキストを文書、メールメッセージ、ニュース記事に埋め込むことができます。 これにより、表示された情報をマウスベースで制御できるようになります。 (ドクター)

アイスキャット

IceCat は、Firefox ブラウザの GNU バージョンです。 これは完全に無料のソフトウェアであり、無料でないプラグインやアドオンは推奨しません。 プライバシー保護機能も組み込まれています。 (ドクター)

アイドゥティルス

GNU idutils パッケージには、ファイル名のリストで使用されるテキスト トークンのインデックスを作成し、そのインデックスをクエリするためのツールが含まれています。 したがって、ユーザーは、たとえば、大規模なプログラミング プロジェクト内の特定の関数の使用法をすべて見つけることができます。 テキストのトークンを処理するだけでなく、数値定数や文字列の内容も処理できます。 (ドクター)

イグヌイット

Ignuit は、ライトナー フラッシュカード システムに基づいた新しい情報の記憶を支援するツールです。 このシステムでは、覚えるのが困難にならない限り、新しいカードは古くなるにつれて学習頻度が減り、その後はより頻繁に学習されます。 カードには埋め込みオーディオ、画像、数式を含めることができ、カード コレクションをいくつかの形式にエクスポートできます。 (ドクター)

インデント

インデントは、ソースコードを一貫したスタイルに再フォーマットすることで読みやすくするプログラムです。 スタイルを、GNU、BSD、K&R などのいくつかの異なるスタイルの 1 つに変更できます。 不完全な構文または不正な構文を処理できる柔軟性があります。 GNU indent は、標準ユーティリティに対していくつかの拡張機能を提供します。 (ドクター)

inetutils

Inetutils は、ftp クライアントとサーバー、telnet クライアントとサーバー、rsh クライアントとサーバーなどの一般的なネットワーク プログラムのコレクションです。 (ドクター)

インクリングリーダー

GNU InklingReader は、さまざまな無料形式へのデータ変換、基本的な編集機能、Inkscape プラグインを含む、Wacom Inkling デバイスをサポートするパッケージです。 (ドクター)

インテリフォント

GNU intlfonts には、BDF および TrueType 形式の無料の X11 フォントが含まれています。 特に、ヨーロッパ、アジア、中国語、日本語、韓国語、エチオピアなど、さまざまな書記体系の多数の文字をカバーしています。 (ドクター)

ジャカル

GNU JACAL は、Scheme に基づいた対話型の記号数学プログラムです。 方程式、スカラー、ベクトル、行列などのさまざまな数式を操作および簡素化します。 (ドクター)

ジャミ

Jami は、ユーザーの自由とプライバシーを尊重するユニバーサル コミュニケーションのためのプログラムです。 Jami は通信を確立するために分散ハッシュ テーブルを使用します。 これにより、ユーザーの集中レジストリの維持や個人データの保存が回避されます。 (ドクター)

java 取得

java-getopt は、glibc の GNU getopt 関数の Java ポートを提供します。 これは、長いコマンドライン引数と短いコマンドライン引数の両方を柔軟な方法で解析することをサポートしており、C バージョンと完全に互換性があります。 (ドクター)

ジェル

GNU JEL は、プログラムがユーザー定義の式を受け入れて実行時に入力および評価できるようにするライブラリです。 実際、式は JEL によって Java バイトコードにコンパイルされ、すでに解釈された言語に解釈された式を追加することによるパフォーマンスの低下を回避します。 (ドクター)

Java 補助輪

GNU Java Training Wheel は、Java でのプログラミングを学習するための学習曲線を緩やかにします。 このシステムは、Superfor マクロや C 言語のプリプロセッサによく似たファイル インクルージョン システムなどの機能を Java に追加するプリプロセッサを搭載しています (ドキュメント)。

ジュワース

GNU jwhois は、ドメイン名の所有者を照会できる WHOIS プロトコルのクライアントです。 このプログラムは、拡張可能な構成ファイルを使用してクエリに最適なサーバーを決定し、成功すると結果をユーザーに表示します。そうでない場合は、オプションでクエリを別のサーバーにリダイレクトできます。 (ドクター)

GNU Kawa は、Java プラットフォーム上に構築された Scheme プログラミング言語の実装です。 したがって、Java と便利に統合されており、コンパイラやオプションの静的型付けなどによってその利点が得られます。 Kawa は、Java プラットフォーム上で他のプログラミング言語を実装するためのフレームワークとしても機能します。 Kawa には、Java での XQuery の部分実装である qexo が含まれています。 (ドクター)

GNU Leg は、ゲーム エンジンとゲーム開発のためのライブラリのセットです。 ライブラリに加えて、ゲーム作成を容易にするために設計されたリソース エディターも含まれています。 このパッケージは汎用かつモジュール式になるように設計されており、さまざまなスタイルのゲームをサポートします。 (ドクター)

少ない

GNUless はページャーであり、大量のテキストをページサイズの塊で表示できるプログラムです。 従来のページャーとは異なり、文書内を前後に移動できます。 また、開始前に入力ファイル全体を読み取る必要がないため、ほとんどのテキスト エディタよりも高速に起動します。 (ドクター)

GNU C ライブラリ

GNU C ライブラリは、GNU システムの標準 C ライブラリです。 C 言語でプログラムを作成するために必要なシステム コールやその他の基本機能を定義します。 プロセスやファイル管理などのカーネルと通信する低レベルの機能だけでなく、文字列操作やコマンドライン引数の処理などの高レベルの機能も処理します。 (ドクター)

libcdio

GNU コンパクト ディスク入力および制御ライブラリ (libcdio) は、CD-ROM および CD イメージ ファイルにアクセスするためのライブラリです。 これにより、開発者は、OS やデバイスに依存する CD-ROM のプロパティや CD イメージ形式の特定の詳細を気にすることなく、アプリケーションに CD アクセスを追加できます。 これには、libcdio への Python インターフェイスである pycdio と、CD からジッターとエラーのないオーディオ抽出を提供するライブラリである libcdio-paranoia が含まれています。 (ドクター)

リブドブ

libdbh はディスクベースのハッシュ テーブルを提供し、キーと値のペアを簡単に検索できます。 その使用法は一般に (G)DBM と似ていますが、高度で特殊な使用法をサポートする異なる設計が施されています。 (ドクター)

リバティ エッフェル

Liberty Eiffel プロジェクトは GNU Eiffel コンパイラです。 Eiffel は、高品質で再利用可能なソフトウェアの設計と構築に重点を置いた高度なオブジェクト指向プログラミング言語です。 Liberty Eiffel は、Eiffel から C へのコンパイラ、ドキュメント ツール、きれいなプリンタ、デバッガ、その他のさまざまなツールを含む、完全で小型、高速な Eiffel コンパイラです。 また、大規模なクラス ライブラリと、広範なフリーソフトウェア ライブラリ用の包括的なラッパー/バインディング セットも含まれています。 (ドクター)

libextractor

GNU libextractor は、ファイルからメタデータを抽出するためのライブラリです。 オーディオ ファイル、ドキュメント ファイル、アーカイブ ファイルなど、非常に多くのファイル形式をサポートしています。 各ファイル形式はプラグインとして実装されているため、新しい形式を簡単に追加できます。 このパッケージには、ファイルからメタデータを抽出して結果を印刷するためのコマンド ライン ツールも含まれています。 (ドクター)

libgcrypt

Libgcrypt は汎用暗号ライブラリです。 対称暗号、ハッシュ アルゴリズム、公開キー アルゴリズム、大きな整数関数、乱数生成などの標準的な暗号化ビルディング ブロックを提供します。 (ドクター)

リビコン

libiconv は、iconv 関数が不足しているシステムにその関数の実装を提供します。 iconv は、プログラム内で文字エンコーディングを変換するために使用されます。 さまざまなエンコーディングをサポートしています。 (ドクター)

リビドン

libidn は、Stringprep、Punycode、および IDNA 仕様を実装するライブラリです。 これらは、国際化されたドメイン名のエンコードとデコードに使用されます。 これには、ネイティブ C、C#、および Java ライブラリが含まれます。 (ドクター)

リブマセヴァル

GNU libmatheval は、ユーザーがテキストとして入力した記号式を解析して評価するライブラリです。 C と Fortran の両方からロードできます。 インタプリタは柔軟で、任意の名前の任意の数の変数、10 進数および記号定数、基本的な単項演算子および 2 項演算子、および基本的な数学関数をサポートします。 また、シンボリック導関数を計算し、式を文字列に出力することもできます。 (ドクター)

libmicrohttpd

GNU libmicrohttpd は、C ライブラリとして実装された小さな組み込み可能な HTTP サーバーです。 これにより、HTTP サーバーを別のアプリケーションの一部として簡単に実行できるようになります。 このライブラリは HTTP 1.1 に完全に準拠しています。 複数のポートでリッスンでき、4 つの異なるスレッド モデルをサポートし、IPv6 をサポートします。 また、基本認証とダイジェスト認証、SSL3 と TLS のサポートなどのセキュリティ機能も備えています。 (ドクター)

リブレイス

LibreJS は、GNU Icecat およびその他の Firefox ベースのブラウザ用のアドオンです。 Web の閲覧時に、重要かつ自由ではない JavaScript コードが同意なしにロードされることを検出します。 無料または簡単な JavaScript コードのロードが許可されます。 (ドクター)

リブシグセグフ

GNU libsigsegv は、プログラムがユーザー モードで使用できないメモリ領域にアクセスしようとしたときに発生するページ フォールトを処理するためのライブラリです。 ページ フォールトを捕捉して処理することにより、プログラムはページング可能な仮想メモリ、スタック オーバーフロー ハンドラーなどを実装できます。 (ドクター)

リブタスン1

GNU libtasn1 は、ASN.1 表記法を実装するライブラリです。 これは、コンピューター ネットワーキングでデータ オブジェクトのマシン中立エンコーディングを送信するために使用され、一部の仕様に従ってデータを正式に検証できるようになります。 (ドクター)

リブツール

GNU Libtool は、プラットフォーム間で共有ライブラリを操作する際の通常の複雑さを隠す、単一の一貫性のある移植可能なインターフェイスを提供することで、共有ライブラリの作成と使用を支援します。 (ドクター)

ライブラリ文字列

GNU libunistring は、Unicode 文字列を操作するための関数と、Unicode 標準に従って C 文字列を操作するための関数を提供するライブラリです。 (ドクター)

リブシュミ

GNU libxmi は、C および C++ 用の 2D ベクトル グラフィックスをラスタライズするためのライブラリです。 ユーザーが指定したピクセルの行列への 2D プリミティブの描画をサポートします。 マルチカラーの破線パターンなどの洗練された線スタイルの指定もサポートします。 ポリゴンの塗りつぶしとテクスチャリングもサポートされています。 (ドクター)

稲妻

GNU Lightning は、実行時にアセンブリ言語コードを生成するライブラリです。 したがって、Just-In-Time コンパイラの作成に役立ちます。 標準化された RISC 命令セットをクライアントに公開することで、ターゲット CPU を抽象化します。 (ドクター)

スイレンの池

GNU LilyPond は、高品質の楽譜を作成する楽譜植字機です。 音楽は、LilyPond によって解釈されて最終ドキュメントを作成する制御シーケンスを含むテキスト ファイルに入力されます。 ガイルで拡張可能です。 (ドクター)

リム

GNU LIMS は、研究室情報管理システムです。 あらゆる分野の科学研究所の管理に使用されます。 Tryton エンタープライズ管理フレームワークの一連のモジュールで構成されているため、研究室の特定のニーズに柔軟に対応できます。 たとえば、このシステムには、サンプル管理、実験室機器の統合、会計および在庫管理のためのモジュールが含まれています。 (ドクター)

Linux-リブレ

GNU Linux-Libre は、Linux カーネルの無料 (自由という意味で) バリアントです。 すべての非フリーバイナリ BLOB を削除するように変更されました。 (ドクター)

リキッドウォー6

GNU Liquid War 6 は、ペースの速い、ユニークなアクション ゲームです。 各プレイヤーは、マップ全体を征服することを目標に、液体の塊を制御します。 デフォルトでは 13 レベルがあり、ボーナス パックではさらに 100 以上のレベルがあります。 新しいレベルは、単純なイメージ ファイルを使用して簡単に作成できます。 (ドクター)

リスピントロ

ルズズ

GNU lrzsz は、XMODEM、YMODEM、および ZMODEM ファイル転送プロトコルをサポートする通信パッケージです。 (ドクター)

ああ

GNU lsh は、SSH バージョン 2 プロトコルの無料実装です。 これは 2 台のコンピュータ間に安全な通信回線を作成するために使用され、クライアントからサーバー システムへのシェル アクセスを提供します。 サーバー デーモンとクライアント アプリケーションの両方に加え、キー ファイルを操作するためのツールも提供します。 (ドクター)

GNU M4 は M4 マクロ言語の実装であり、他の実装に対するいくつかの拡張機能を備えており、その一部は GNU Autoconf で必要とされます。 これはマクロ プロセッサとして使用されます。つまり、テキストを処理し、マクロに遭遇すると展開します。 また、シェル コマンドの実行や算術演算などの組み込み関数もいくつかあります。 (ドクター)

MACチェンジャー

GNU MAC Changer は、ネットワーク デバイスの MAC アドレスを表示および変更するためのユーティリティです。 新しいアドレスは明示的にまたはランダムに設定できます。 これらには、同じまたは他のハードウェア ベンダーの MAC アドレス、またはより一般的には同じカテゴリのハードウェアの MAC アドレスが含まれる場合があります。 (ドクター)

郵便配達員

GNU Mailman は、電子メール ディスカッションとメーリング リストを管理するためのソフトウェアです。 通常、ユーザーと管理者はどちらも Web インターフェイスでアクションを実行しますが、電子メール インターフェイスやコマンド ライン インターフェイスも提供されています。 このシステムには、アーカイブ、自動バウンス処理、コンテンツ フィルタリング、ダイジェスト配信などが組み込まれています。 (ドクター)

メールユーティリティ

GNU Mailutils は、電子メールを管理、表示、処理するためのプログラムのコレクションです。 これにはユーティリティとサーバー デーモンの両方が含まれており、すべてプロトコルに依存しない方法で動作します。 基盤となるライブラリも利用できるため、新しいソフトウェアへのメール機能の追加が簡単になります。 (ドクター)

作る

Make は、ソース ファイルからの実行可能ファイルやその他のファイルの生成を制御するために使用されるプログラムです。 このプロセスは Makefile から制御され、開発者は Makefile でソースから各ファイルを生成する方法を指定します。 強力な依存関係解決機能と、ソース変更後にファイルをいつ再生成する必要があるかを判断する機能があります。 GNU make は、標準ユーティリティに対して多くの強力な拡張機能を提供します。 (ドクター)

マースト

GNU MARST は、Algol から C への変換プログラムです。 このパッケージは、トランスレータ自体、必要な Algol 60 プロシージャを含むライブラリ、および既存の Algol 60 プログラムを他の表現から MARST 表現に変換するコンバータで構成されます。 (ドクター)

マーベリック

GNU MAVERIK は、3D 仮想環境とそれらの環境との対話をサポートする開発ツールキットです。 OpenGL または Mesa を使用する低レベルのレンダリング エンジンの上に位置し、さまざまな種類のオブジェクトをレンダリングし、環境を管理し、3D インタラクションをサポートするメカニズムを提供します。 (ドクター)

ミッドナイトコマンダー

GNU Midnight Commander は、一般的な 2 ペイン形式でレイアウトされたコマンドライン ファイル マネージャーです。 コピーや移動などの標準的なファイル管理タスクに加えて、Midnight Commander は、RPM パッケージ ファイルやその他のアーカイブの内容の表示や、FTP または FISH を介した他のコンピュータ上のファイルの管理もサポートしています。 テキスト ファイルを開くための強力なテキスト エディターも含まれています。 (ドクター)

マクロン

GNU Mcron は、Vixie cron の完全な代替品です。 これは、毎時間または毎週月曜日などのスケジュールに従ってタスクを実行するために使用されます。 Macron は Guile で書かれているため、その構成は Scheme で書くことができます。 オリジナルの cron 形式もサポートされています。 このパッケージはメンテナーを募集しています。 (ドクター)

MCシム

GNU MCSim はシミュレーションを実行するためのパッケージです。 モンテカルロ確率論的シミュレーションまたは動的 ODE ベースのシミュレーションを介して、統計的または決定論的シミュレーション モデルをサポートします。 また、マルコフ連鎖モンテカルロ シミュレーションを通じてベイズ推論を実行することもできます。 (ドクター)

MIX 開発キット

GNU MDK は、教育用コンピュータ MIX とそのアセンブリ言語 MIXAL のエミュレーションである Mix Development Kit です。 MIX には、レジスタ、メモリ セル、オーバーフロー トグル、比較フラグ、入出力デバイス、バイナリ命令セットなどの標準機能を備えた仮想 CPU があります。 パッケージには、コンパイラ、仮想マシン、仮想マシン用の GUI などが含まれています。 (ドクター)

メディアゴブリン

GNU Mediaゴブリンは、無料のメディア パブリッシング プラットフォームです。 これは連邦方式で実行され、ユーザーを集中化された Web サービスから解放します。 写真、ビデオ、オーディオをサポートします。 (ドクター)

溶融

GNU MELTING は、核酸二本鎖のヘリックス-コイル転移のエンタルピー、エントロピー、融解温度を計算します。 (ドクター)

メモリプール

MemPool ライブラリは、スタンドアロンのメモリ割り当てライブラリです。 これは、単一の固定サイズのメモリ プールを使用して可変サイズのメモリ ブロックを割り当て、malloc、realloc、free に似た関数をエクスポートするブロック アロケータ ライブラリです。 これは、GNU/Linux およびその他のシステム上の低メモリ ターゲットをシミュレートするか、システム メモリ管理を完全に置き換えることを目的としています。 (ドクター)

メス

GNU Mes は、GuixSD などの GNU/Linux システム用の完全なソース ブートストラップの作成を支援することを目的としています。 これは、単純な C で記述された相互自己ホスト型 Scheme インタプリタと、GNU Guile 互換の Scheme で記述された Nyacc ベースの C コンパイラを備えています。 Mes C ライブラリはブートストラップ gcc をサポートしています。 (ドクター)

メタHTML

GNU MetaHTML は、World Wide Web 用に設計されたサーバー側プログラミング言語です。 HTML や Lisp に似た構文を持っています。 ソケット、イメージ作成、他のプログラムへの接続のサポートを含む、大規模な関数ライブラリを提供します。 (ドクター)

ミフルズ

GNU mifluz は、全文逆索引を保存するための C++ ライブラリです。 後で検索できるように、一連のテキスト内の単語の出現を保存します。 単語を検索すると、インデックスはその単語を含むドキュメントのリストを返します。 (ドクター)

ミグ

その他のファイル

GNU Miscfiles は、一般的なデータ ファイルのコレクションです。 たとえば、国の略称、名前、首都などが含まれます。 通貨の略語と名前。 現在のベストプラクティスインデックス。 ASCII 文字セットのマップ。 3 文字の空港コードのリスト。 そして英単語リスト。 (ドクター)

MIT/GNU スキーム

GNU/MIT Scheme は、Scheme プログラミング言語の実装です。 インタプリタ、コンパイラ、デバッガを提供します。 また、統合された Emacs のようなエディターと大規模なランタイム ライブラリーも備えています。 (ドクター)

もえ

GNU Moe は、強力でありながら使いやすいテキスト エディタです。 これはモードレスな方法で動作し、各キーに重大度を割り当てる直感的なキー バインディング セットを備えています。 たとえば、Alt キーとのキーの組み合わせはカーソル移動などの無害なコマンド用であり、Control キーとの組み合わせはテキストを変更するコマンド用です。 私の機能は、複数のウィンドウ、無制限の元に戻す/やり直し、無制限の行の長さ、グローバル検索と置換などです。 (ドクター)

モッティ

GNU Motti は、ターミナルでプレイされるシンプルなマルチプレイヤー戦略ゲームです。 ゲームの目的は、領土を占領して包囲することで敵の首都を征服することです。 (ドクター)

mpc

GNU MPC は、複素数の算術演算を実行するための C ライブラリです。 任意の高精度をサポートし、結果を正しく丸めます。 (ドクター)

mpfr

GNU MPFR は、正確な丸めを使用して多精度浮動小数点計算を実行するための C ライブラリです。 (ドクター)

ムプリア

GNU MPRIA は、任意の高精度で有理算術計算を実行するための C ライブラリです。 GMP ライブラリに基づいて構築されています。 (ドクター)

エムツール

GNU Mtools は、GNU または Unix システムから MS-DOS ディスクにアクセスするためのユーティリティのセットです。 長いファイル名と複数のディスク形式をサポートします。 また、ボリューム ラベルや FAT 固有のファイル属性など、いくつかの FAT 固有の機能もサポートしています。 (ドクター)

ナナ

GNU Nana は、アサーション チェック、ロギング、パフォーマンス測定を C および C++ プログラムに追加するためのフレームワークです。 操作は C で直接実装することも、デバッガ コマンドを生成することによって実装することもできます。 チェック機能とログ機能は、コンパイル時または実行時に有効または無効にすることができます。 (ドクター)

ナノ

GNU nano は、端末で使用する小さくてシンプルなテキスト エディタです。 基本的な編集に加えて、元に戻す/やり直し、構文の強調表示、スペル チェック、両端揃え、自動インデント、括弧の一致、対話型の検索と置換 (正規表現を使用)、および複数のファイルの編集がサポートされています。 (ドクター)

ナノアルキメデス

nano-archimedes は、量子システムのシミュレーションのための無料パッケージです。 これは、シュレディンガー方程式と数学的に等価な位相空間に関する量子力学の定式化であるウィグナー方程式に基づいています。 nano-archimedes は Wigner モンテカルロ法を実装します。 このコードは、密度汎関数理論 (DFT) や時間依存の ab-initio シミュレーションに簡単に拡張できます。 (ドクター)

Ncurses

GNU Ncurses は、端末に依存しない方法で端末にテキストを書き込む機能を提供するライブラリです。 パッドとカラーだけでなく、複数のハイライトと文字の形成もサポートしています。 通常、コマンドライン アプリケーションのユーザー インターフェイスを実装するために使用されます。 付属の ncursesw ライブラリは、ワイド文字のサポートを提供します。 (ドクター)

イラクサ

GNU Nettle は、低レベルの暗号化ライブラリです。 ほぼあらゆる状況に簡単に適合するように設計されています。 オブジェクト指向言語の暗号化ツールキットやアプリケーション自体に簡単に組み込むことができます。 (ドクター)

オクラド

GNU Ocrad は、特徴抽出法に基づく光学式文字認識プログラムです。 PBM、PGM、または PPM 形式で画像を読み取ることができ、8 ビットまたは UTF-8 形式でテキストを生成します。 (ドクター)

オクターブ

GNU Octave は、数値計算に特化した高水準インタープリター言語です。 線形アプリケーションと非線形アプリケーションの両方に使用でき、結果の視覚化を強力にサポートします。 作業は、対話型コマンド ラインとスクリプト ファイルの両方で実行できます。 (ドクター)

オレオ

GNU Oleo はスプレッドシート プログラムです。 ターミナル インターフェイスと LessTif ベースのグラフィカル ユーザー インターフェイスの両方を提供します。 使い慣れた Emacs 風のキーバインドが特徴です。 マクロや関数など、多くの標準スプレッドシート機能をサポートしています。 (ドクター)

オルガドック

Doc は、コンピュータ間でドキュメントのプールを簡単に維持するためのシステムです。 ドキュメントは rsync または unison によって同期されます。 データベースや HTTP サーバーは必要ありません。 (ドクター)

oSIP

GNU oSIP は SIP プロトコルの実装です。 これは、SIP セッションを開始および制御するためのインターフェイスを備えたマルチメディアおよび通信開発者ソフトウェアを提供するために使用されます。 (ドクター)

パノラマ

GNU Panorama は、3D グラフィックスを作成するためのフレームワークです。 焦点ブラー、任意の光源、バンプ マッピング、およびいくつかの照明効果など、さまざまな効果を実行できます。 (ドクター)

平行

GNU Parallel は、1 つ以上のコンピュータを使用してシェル ジョブを並列実行するためのツールです。 ジョブは単一のコマンドまたはスクリプトで構成され、ファイル、ホスト、ユーザー、またはその他の項目のリストに対して実行されます。 (ドクター)

別れた

GNU Parted は、ディスク パーティション テーブルを作成および操作するためのパッケージです。 これには、ライブラリとコマンドライン ユーティリティが含まれています。 (ドクター)

パッチ

Patch は、プログラム diff によってレイアウトされた差異に基づいてファイルに変更を適用するプログラムです。 diff ファイルの内容に応じて、変更は 1 つ以上のファイルに適用される場合があります。 いくつかの異なる diff 形式を受け入れます。 また、以前に適用された差分を元に戻すために使用することもできます。 (ドクター)

パクスティルズ

GNU paxutils は、アーカイブ ユーティリティのスイートです。 これには、cpio、tar、および pax アーカイバーのバージョンが含まれています。 (ドクター)

プリント基板

GNU PCB は、プリント基板のレイアウトを編集するための対話型ツールです。 ラッツネストの実装、回路図/ネットリストのインポート、デザイン ルールのチェックが特徴です。 オートルーターとトレースオプティマイザーも含まれています。 フォトリアリスティックなデザインレビュー画像を作成できます。 (ドクター)

ペム

GNU Pem は、個人の収入と支出を追跡するためのシンプルなツールです。 コマンドラインから操作し、データを基本的なテキスト形式でホームディレクトリに保存します。 基本的な検索機能を使用して、さまざまな経費の支出レポートを簡単に印刷できます。 (ドクター)

ペセック

GNU pexec は、1 つまたは複数のコンピュータ上でコマンドまたはシェル スクリプトを並行して実行するためのプログラムです。 動作するにつれて、環境変数や標準入力、出力、エラーなどの実行パラメータが変化する可能性があります。 (ドクター)

パイ

GNU pies は、他のプログラムの呼び出しと実行を監視するプログラムです。 構成ファイルから起動するプログラムのリストを読み取って実行し、状態を監視して必要に応じて再実行します。 (ドクター)

プロットユーティリティ

GNU Plotutils は、2D グラフィックスをプロットして操作するためのパッケージです。 これには、2D ベクター グラフィックスをさまざまなファイル形式でエクスポートするための C および C++ 用ライブラリ libplot が含まれています。 2D ベクター グラフィックス アニメーションもサポートしています。 このパッケージには、科学データをプロットするためのコマンドライン プログラムも含まれています。 (ドクター)

ポーク

GNU poke は、バイナリ データ用の対話型で拡張可能なエディタです。 ビットやバイトなどの基本的なエンティティの編集に限定されず、データ構造を記述し、データ構造を操作するように設計された本格的な手続き型の対話型プログラミング言語を提供します。 (ドクター)

プロキシナイフ

GNU proxyknife は、ファイアウォールの内側から無料のプロキシを検証するツールです。 検証プロセスは、ニーズに合わせて完全にカスタマイズできます。 (ドクター)

揚水発電所

GNU PSPP は統計分析プログラムです。 記述統計、T テスト、線形回帰、ノンパラメトリック テストを実行できます。 グラフィカル インターフェイスとコマンドライン入力の両方を備えています。 PSPP は、Gnumeric、LibreOffice、OpenOffice と相互運用できるように設計されています。 データはスプレッドシート、テキスト ファイル、データベース ソースからインポートでき、テキスト、PostScript、PDF、または HTML で出力できます。 (ドクター)

サイコシンセ

GNU Psychosynth は、インタラクティブなモジュール式ソフト シンセです。 モジュールが配置および操作される 3D サーフェスをエミュレートし、音楽を生成および変更します。 Psychosynth は、C++ ライブラリ、3D インターフェイス、およびコマンドライン インターフェイスで構成されています。 (ドクター)

Pth

GNU Pth は、複数の実行スレッドに非プリエンプティブな優先順位ベースのスケジューリングを提供するポータブル ライブラリです。 各スレッドには独自のプログラム カウンター、ランタイム スタック、シグナル マスク、および errno 変数があります。 スレッドは、標準的なプリエンプティブな方法ではなく、協調的な方法でスケジュールされ、優先度とイベントに従って管理されます。 ただし、Pth には、下位互換性のための POSIX.1c スレッド (pthread) のエミュレーション機能もあります。 (ドクター)

pyconfigure

GNU pyconfigure は、標準に準拠した構成スクリプトと Python ベースのパッケージ用の Makefile を簡単に実装するためのテンプレート ファイルを提供します。 既存の Python セットアップ スクリプトと並行して動作するように設計されているため、既存のプロジェクトに簡単に統合できます。 強力で柔軟な Autoconf マクロが利用可能で、ターゲット コンピュータの機能に基づいてインストール手順を簡単に調整できます。 (ドクター)

ケクソ

R は、統計コンピューティングとグラフィックスのための言語および環境です。 線形および非線形モデリング、古典的な統計検定、時系列分析、分類、クラスタリングなどのさまざまな統計手法を提供します。 また、出版品質のデータ プロットを作成するための強力なサポートも提供します。 大量のサードパーティ パッケージが利用可能であり、その幅と範囲が大幅に拡大しています。 (ドクター)

半径

Radius は、リモート ユーザーの認証とアカウンティングを行うサーバーです。 これは一般に、ワークステーションに対する一元的な認証およびアカウンティング サービスを必要とするネットワークに役立ちます。 認証は、/etc/passwd や SQL データベースに保存された資格情報など、さまざまな方法で実行できます。 (ドクター)

RCS

RCS はオリジナルのリビジョン管理システムです。 CVS、Subversion、Git などの後続のバージョン管理システムとは対照的に、ファイルごとに機能します。 これにより、たとえば、本質的に 1 つのマシンにローカルであることが多いシステム管理ファイルに適したものになります。 (ドクター)

読み込まれた行

GNU readline ライブラリを使用すると、ユーザーはコマンド ラインを入力しながら編集できます。 以前に入力したコマンドの検索可能な履歴を維持できるため、過去のコマンドを簡単に呼び出し、編集し、再入力できます。 Emacs 風のキーバインドと vi 風のキーバインドを備えており、誰でも快適に使用できます。 (ドクター)

レクチルス

GNU Recutils は、人間が編集可能なテキストベースのデータベースを作成および操作するためのツールとライブラリのセットです。 Recutils で作成されたデータベースはテキストベースであるにもかかわらず、一意のフィールド、主キー、タイムスタンプなどの期待される機能をすべて備えています。 暗号化と同様に、さまざまなフィールド タイプがサポートされています。 (ドクター)

レフテックス

GNU RefTex は、LaTeX ドキュメントにラベル、参照、引用、インデックスを実装するためのパッケージです。 これは、label、ref、cite、index の 4 つの LaTeX マクロをラップすることで機能します。 これらのマクロを使用するときに通常必要となる一般的なタスクを自動化します。 (ドクター)

リモコン

GNU Remotecontrol は、IP 対応の HVAC サーモスタットやその他のビルディング オートメーション デバイスを管理するための Web アプリケーションです。 アプリケーションは、このような複数のデバイスからデータを読み取ったり、複数のデバイスにデータを書き込んだりできます。 (ドクター)

ロットログ

GNU Rot[t]log は、ログ ファイルを管理するためのプログラムです。 これは、ログ ファイルが指定されたサイズに達したとき、または指定されたスケジュールに従って、ログ ファイルを自動的にローテーションするために使用されます。 このようなログを自動的に圧縮してアーカイブするために使用することもできます。 Rot[t]log は、そのアクティビティのレポートをシステム管理者にメールで送信します。 (ドクター)

RPGE

GNU ロール プレイング ゲーム エンジンは、2 次元のグラフィカル ロールプレイング ゲームを作成するためのエンジンを提供し、たとえば、スプライト タイリング グリッド、スプライト レンダリング、イベント処理などを提供します。 (ドクター)

急ぐ

GNU Rush は、制限された機能またはリソースのみがユーザーに提供されるシステム向けの、制限されたユーザー シェルです。 管理者は、実行できるコマンド、CPU 時間、仮想メモリの使用量などを制限するために使用できる構成ファイルを介してユーザー権限を設定します。 (ドクター)

サザー

GNU Sather は、Eiffel に似たオブジェクト指向プログラミング言語です。 シンプル、効率的、安全かつ独自性を持たないように設計されています。 ガベージ コレクション、静的にチェックされた強力な型指定、多重継承、パラメーター化されたクラスなどを備えています。 このパッケージは、コンパイラ、クラス ライブラリ、言語仕様とプログラミング マニュアル、およびクラス継承のソースと有向グラフを表示するブラウザで構成されます。 (ドクター)

SCM

GNU SCM は Scheme の実装です。 この実装には、Scheme-to-C コンパイラである Hobbit が含まれており、バイナリを SCM 実行可能ファイルに動的または静的にリンクできる C ファイルを生成できます。 (ドクター)

画面

GNU Screen は、単一のターミナルを複数のプロセス間で多重化するターミナル ウィンドウ マネージャーです。 仮想端末はそれぞれ、スクロールバック バッファやコピー アンド ペースト メカニズムなどの機能を提供します。 Screen はさまざまな仮想端末を管理し、それらを簡単に切り替えたり、現在のセッションから切り離したり、ビューを分割して 2 つの端末を一度に表示したりすることもできます。 (ドクター)

セド

Sed は、非対話型のテキスト ストリーム エディターです。 ファイルまたは標準入力からテキスト入力を受け取り、一連のテキスト編集コマンドをストリームに適用し、その出力を標準出力に出力します。 ストリーム内のテキスト パターンを置換するためによく使用されます。 GNU 実装は、標準ユーティリティに対するいくつかの拡張機能を提供します。 (ドクター)

セルヴィーズ

GNU Serveez は、アプリケーションに IP ベースのサーバーを簡単に実装するために必要なルーチンを提供するサーバー フレームワークです。 ネットワーク プログラミングの側面を移植可能な方法で示しているため、アプリケーションにサーバーを追加するプロセスを簡素化する場合や、ネットワーク サービスがどのように機能するかを学習する場合に便利です。 HTTP サーバーや IRC サーバーなど、いくつかのサンプルサーバーがすでに提供されています。 (ドクター)

シャルティルス

GNU sharutils は、電子メールで簡単に送信できるシェル アーカイブを作成および操作するためのパッケージです。 シェル アーカイブは、Bourne タイプのシェルで処理して、元のファイルのコレクションを解凍できるファイルです。 このパッケージは主に互換性と歴史的関心を目的としています。 (ドクター)

羊飼い

GNU Shepherd はデーモン管理デーモンです。つまり、システム サービスの実行を監視し、一般的な init システムにある同様の機能を置き換えます。 これは便利なインターフェイスを通じて依存関係の処理を提供し、GNU Guile に基づいています。 (ドクター)

シシ

GNU Shishi は、Kerberos 5 ネットワーク セキュリティ システムの無償実装です。 これは、チケットを介したクライアントとサーバーの相互認証を通じて、安全でないネットワーク ノードが安全な方法で通信できるようにするために使用されます。 (ドクター)

うーん

GNU SHMM は共有メモリ マネージャーです。 共有メモリの読み取りまたは書き込みが可能です。 また、キーとサイズで識別される共有メモリのブロックのロックまたはロック解除などの他のコマンドもサポートします。 (ドクター)

シュツール

GNU shtool は多目的シェル ツールです。 シェル スクリプトの移植性を確保するために、ソース ディストリビューションとともに配布する単一のツールを提供するために、さまざまなコマンドの機能を実行できます。 たとえば、 shtool は、一般的なコマンド install 、 mkdir 、または echo のジョブを、それらが欠けているシステム上で実行できます。 (ドクター)

シップウィッチ

GNU SIP Witch は、SIP プロトコルを使用するピアツーピア VoIP サーバーです。 NAT ファイアウォールの背後から、サービス プロバイダーを必要とせずに通話を行うことができます。 そのピアツーピア設計により、メディアの傍受やキャプチャのための中心点が存在しないことが保証されるため、公衆インターネット上で動作する安全な電話システムを構築するために使用できます。 (ドクター)

スリブ

GNU SLIB は、Scheme プログラミング言語の移植可能な共通ライブラリです。 多種多様な Scheme 実装をサポートし、Scheme プロシージャと構文のパッケージを使用するためのフレームワークを提供します。 (ドクター)

雑談

GNU Smalltalk は、Smalltalk 言語の無料実装です。 この言語の ANSI 標準を実装しており、ネットワークや GUI プログラミング用の追加クラスも含まれています。 (ドクター)

ソルフェージュ

GNU Solfege は、音楽的な耳のトレーニングを行うためのプログラムです。 これを使用すると、さまざまな音程やコードの認識を練習できます。 統計の概要が表示されるので、複数のセッションにわたる進捗状況を監視できます。 ソルフェージュは拡張可能なように設計されているため、独自のレッスンを簡単に作成できます。 (ドクター)

スペースチャート

GNU SpaceChart を使用すると、星が 3 次元空間にどのように分布しているかを表示できます。 たとえば、星間の距離を決定したり、任意の視点から星を観察したり、スペクトル クラスや明るさによってビューをフィルタリングしたりすることができます。 (ドクター)

スペックス

GNU Speex は、音声用に特別に設計された特許フリーの音声圧縮コーデックです。 VoIP などのインターネット アプリケーションによく適応します。 同じビットストリーム内の異なる帯域の圧縮、インテンシティステレオエンコーディング、および音声アクティビティ検出が特徴です。 (ドクター)

スペル

Spell はコマンドラインのスペルチェック プログラムです。 テキスト入力を読み取り、スペルが間違っている単語をそれぞれ 1 行に出力します。 これは、GNU aspell または ispell のラッパーとして実装されます。 (ドクター)

シュトルター

GNU Sqltutor は、Web ベースの対話型 SQL チュートリアルです。 さまざまな言語で利用できる複数のチュートリアルが特徴です。 チュートリアルではダイアログに一連の質問が表示され、完了すると、間違った解決策に対する正しい回答を含む最終評価が表示されます。 (ドクター)

src-ハイライト

GNU ソースハイライトは、ソース コード ファイルを読み取り、構文上の役割を指定するためにキーワードがさまざまな色で強調表示される出力ファイルを生成します。 150 以上の異なる言語をサポートし、HTML、LaTeX、ODF を含む 8 つの異なる形式に出力できます。 ANSI カラー エスケープ シーケンスに出力することもできるので、強調表示されたソース コードを端末で確認できます。 (ドクター)

スプレッドシートウィジェット

一般的なスプレッドシート プログラムで提供されるものと同様の表形式データを表示および操作するための 2 次元配列を提供する Gtk+ ウィジェット。 この設計はモデル ビュー コントローラー パラダイムに従っており、時間と空間の両方で O(1) であり、非常に大規模なデータに対しても非常に高速かつ効率的な操作を提供します。 カットアンドペースト、ドラッグアンドドロップなどの機能が含まれています。 (ドクター)

ストウ

GNU Stow はシンボリックリンク マネージャーです。 データのディレクトリへのシンボリックリンクを生成し、それらが同じディレクトリにマージされたように見せます。 これは通常、ソースからインストールされたソフトウェア パッケージを管理するために使用され、ソフトウェア パッケージを個別のディレクトリに個別にインストールし、/usr/local などの共通ディレクトリ内のファイルへのシンボリック リンクを作成できるようにします。 (ドクター)

切り株

GNU STUMP は、USENET ニュースグループおよびメーリング リスト用のロボモデレーター プログラムであり、Web ベースのモデレーションを備えています。 複数の人間のモデレーターによるグループモデレーションをサポートします。 また、人間の介入なしに、不適合メッセージを自動的に拒否することもできます。 これには Web インターフェイスが含まれています。 (ドクター)

スーパーオプト

GNU Superopt は、超最適化のための関数シーケンス ジェネレーターです。 徹底的な生成とテストのアプローチを使用して、特定の関数の最短の命令シーケンスを見つけます。 (ドクター)

スイスビス

Swbis は、POSIX で指定されたソフトウェア管理システムです。 システム管理者向けのソフトウェア パッケージのネットワーク透過的な管理が特徴です。 たとえば、ファイル システム ディレクトリ全体をネットワーク経由でホスト間で透過的にコピーできます。 このパッケージには、高度な tarball 作成方法と整合性チェック メカニズムも備えています。 (ドクター)

トークフィルター

GNU Talk Filters は、英語のテキストを定型的またはユーモラスな方言に変換するプログラムです。 フィルターは C ライブラリとして提供されるため、他のプログラムに簡単に統合できます。 (ドクター)

タール

Tar は、tar アーカイブを作成する機能に加えて、既存のアーカイブ内のファイルを抽出、更新、またはリストする機能を提供します。 これは、ディレクトリ構造や、権限や作成/変更日などのファイル情報を維持しながら、多数のファイルを 1 つの大きなファイルに結合する場合に便利です。 GNU tar は、標準ユーティリティに対して多くの拡張機能を提供します。 (ドクター)

タームキャップ

GNU termcap は、端末に依存しない方法で表示端末を使用できるようにするために使用されるライブラリとデータベースです。 データベースには、さまざまな表示端末の機能が記述されています。 次に、ライブラリは、プログラムによって与えられる一般化された命令を、データベースで見つかった表示端末の特定の機能に適合させることができます。 (ドクター)

タームチル

GNU Termutils パッケージには、 tput と tabs という 2 つのプログラムが含まれています。 tput は、ターミナルの表示を操作するためにシェル スクリプトで使用されます。たとえば、ターミナルの表示をクリアしたり、カーソルを特定の点に移動したり、テキストを中央に配置したり、テキストに下線を引いたりします。 tabs は、それをサポートする端末上でハードウェア タブ ストップを指定および設定するために使用されます。 (ドクター)

テセク

GNU Teseq は、制御シーケンスを含むファイルを分析するプログラムです。 検出したシーケンスを、それらのシーケンスが実行するアクションについて人間が読める形式の記述に変換します。 また、その出力を機械可読な制御シーケンスに変換し直すこともできます。 (ドクター)

せっかちな人のための TeX

TeX for the Impatient は、Paul Abrahams、Kathryn Hargreaves、Karl Berry によって書かれた、TeX、プレーン TeX、および Eplain に関する約 350 ページの本です。 (ドクター)

テックスインフォ

Texinfo は、GNU プロジェクトの公式ドキュメント形式です。 明示的なコマンドを使用して単一のソース ファイルを使用し、HTML や PDF など、サポートされているいくつかの出力形式のいずれかで最終ドキュメントを生成します。 このパッケージには、ソースから Info ドキュメントを作成するために必要なツールとコマンドライン Info リーダーの両方が含まれています。 この言語は、物理的なマークアップ コマンドを回避し、コンテンツを意味的に表現することに重点を置いています。 (ドキュメント)ドキュメント

vc-dwim パッケージには、 vc-dwim と vc-chlog という 2 つのツールが含まれています。 vc-dwim は、ChangeLog にファイルの変更が記述されているが、そのファイルが VC に追加されていない場合にリマインダーを出力するなど、ChangeLog の保守とバージョン管理を同時に行うタスクを簡素化するツールです。 vc-chlog は、変更されたファイルをスキャンし、検出した変更に基づいて標準に準拠した ChangeLog エントリを生成します。 (ドクター)

VCDイメージャー

GNU VCDImager は、ビデオ CD およびスーパー ビデオ CD を操作するためのプログラム スイートです。 ディスクのオーサリング、逆アセンブル、分析に使用できます。 完全な再生制御、セグメント再生項目、オンザフライでの MPEG ストリームの自動パディング、およびビデオ CD のファイルへの抽出をサポートしています。 (ドクター)

ベラ

ヴェラ (関連頭字語の仮想エンティティ) は、情報ドキュメントとして配布されるコンピューティング頭字語のリストです。 (ドクター)

ヴムゲン

GNU WB は、C、Scheme、Java、および C# 用のディスクベースのソートされた連想配列データベース パッケージです。 WB は、ハッシュによって実装されるのではなく、最小限のディスク操作を使用するように最適化された B ツリーを使用します。 (ドクドク)

Xボード

GNU XBoard は、国際チェス、シャンチー (中国チェス)、将棋 (日本のチェス)、Makruk など、あらゆる種類のチェスに対応したグラフィック ボードです。 いくつかのあまり知られていないバリアントもサポートされています。 完全にインタラクティブなグラフィカル インターフェイスが表示され、Portable Game Notation でゲームをロードおよび保存できます。 (ドクター)

Xlogmaster

GNU Xlogmaster は、システム ログを便利な方法で監視できるグラフィカル ユーザー インターフェイスを備えたプログラムです。 ログは、行を強調表示または非表示にするフィルターを使用して表示できます。 このプログラムを使用して、ユーザー定義のイベントに対するアクションの実行を自動化することもできます。 (ドクター)

エックスニー

GNU Xnee は、X11 でのユーザー アクションを記録、再生、配布できるプログラムです。 テストまたはデモンストレーションの目的でユーザー対話を自動化するために使用できます。 (ドクター)

ゾリーソ

GNU Xorriso は、ISO 9660 Rock Ridge (別名: ISO 9660 Rock Ridge) との間でファイルをコピーするためのツールです。 CD ファイル システム、ファイル システム、およびそれらのセッション単位の操作を可能にします。 CD、DVD、BD 用のフォーマッタとバーナーを備えています。 既存の ISO イメージを操作することも、新しい ISO イメージを作成することもできます。 xorriso を使用すると、ISO ファイルに直接ファイルをコピーしたり、ISO ファイルからファイルを直接コピーしたりできます。 (ドクター)

ザイル

GNU Zile は軽量の Emacs クローンです。 使用法はデフォルトの Emacs 構成に似ていますが、はるかに軽量な機能セットを搭載しています。 (

GNU General Public License (GNU General Public License または GNU Open License Contract) - おそらく最も人気のあるフリー ソフトウェア ライセンスで、1988 年に GNU プロジェクトの一部として作成されました。また、文脈に応じて GNU GPL または単に GPL とも略されます。この特定のライセンスについて話しているのは理にかなっています (タイトルに「一般公衆ライセンス」という言葉を含むライセンスは他にもかなりの数あります)。 このライセンスの第 2 バージョンは 1991 年にリリースされ、第 3 バージョンは長年の作業と長い議論を経て 2007 年にリリースされました。 GNU Lesser General Public License (LGPL) は、特定のソフトウェア ライブラリ用の GPL の弱体化バージョンです。 GNU Affero General Public License は、ネットワーク経由でアクセスすることを目的としたプログラム用の GPL の拡張バージョンです。

GNU GPL の目的は、プログラムをコピー、変更、および配布 (商用を含む) する権利 (デフォルトでは著作権法で禁止されています) をユーザーに与え、すべての派生プログラムのユーザーが上記の権利を確実に受け取ることを保証することです。 権利の「継承」の原則は「コピーレフト」(英語の「copyleft」の音訳)と呼ばれ、リチャード・ストールマンによって考案されました。 GPL とは対照的に、プロプライエタリ ソフトウェア ライセンスがユーザーにそのような権利を与えることは非常にまれで、通常は、ソース コードの復元を禁止するなど、権利を制限しようとします。

GPL は、コンピュータ プログラムの受信者に次の権利、つまり「自由」を与えます。

* いかなる目的でもプログラムを実行する自由。
* プログラムがどのように動作するかを研究し、変更する自由 (その前提条件はソース コードへのアクセスです);
* コピーの配布の自由。
* プログラムを改良し、改良をパブリック ドメインにリリースする自由 (その前提条件はソース コードへのアクセスです)。
ソース

GNU OS

GNU は再帰的な頭字語です。 GNU は UNIX ではありません - 「GNU は Unix ではありません!」) は、GNU プロジェクトによって開発された無料の UNIX 風のオペレーティング システムです。

GNU システムの開発は、Richard Stallman が net.unix-wizards および net.usoft ニュースグループにプロジェクトに関する発表を投稿した 1983 年 9 月 27 日に始まりました。 1984 年 1 月 5 日、ストールマンはマサチューセッツ工科大学を辞任しました。その理由は、無料のオペレーティング システムの作成に専念するためであり、またマサチューセッツ工科大学がシステムのソース コードに対する権利を主張できないようにするためでもありました。 最初の GNU プログラムは Emacs テキスト エディタでした。

現在、GNU/Linux システム (一般的に単に Linux として知られている) は (特にサーバー市場で) かなり一般的であり、非常に完成されています。 これは、多数の GNU プロジェクト プログラム (主にシステム ユーティリティと GNU ツールチェーン)、Linux カーネル (デバイス ドライバーなどを含む他のプログラムの実行を担当するシステムの一部)、およびその他のさまざまな無料プログラムで構成されています。

最近のセクション記事:

オプティナの尊いネクタリオス (チホノフ)
オプティナの尊いネクタリオス (チホノフ)

5月12日は、神から預言と偉大な賜物を授けられた最後の公会議官であるネクタリオス修道士(1853年~1928年)を記念する日です。

ヒエロモンク・アナトリー(キエフ)イエスの祈りについて
ヒエロモンク・アナトリー(キエフ)イエスの祈りについて

正教では、生活のさまざまな状況で膨大な数の祈りとアカシストが読まれます。 でも祈りは…

反キリストに関する正統派の教えとその接近の兆候
反キリストに関する正統派の教えとその接近の兆候

「いかなる形であれ、だれにもあなたを騙してはなりません。背教が最初に起こり、罪の人、滅びの子が明らかにされるまで、その日は来ないからです...