GNUダイジェスト 1994年1月
GNUダイジェストは、Free Software Foundationから
年に2回発行される小冊子で、GNUプロジェクトに
関する情報を載せている。
Free Software Foundation, Inc. 電話: +1-617-876-3296
675 Massachusetts Avenue FAX: +1-617-492-9057
Cambridge, MA 02139-3309 FAX (日本から):
USA 0031-13-2473 (KDD)
電子メイル: `gnu@prep.ai.mit.edu' 0066-3382-0158 (IDC)
・ GNUスタッフの紹介 / FSFについて
・ Copyleftとは何か
・ 寄付金はフリー・ソフトウェアに変わる
・ Cygnusが寄付金倍増計画を始めた !
・ GNU速報
・ LPFとは何か / LPFからのニュース
・ フリー・ソフトウェアのサポート
・ プロジェクトGNUの援助希望リスト
・ OSの設計上の新戦略へ向けて
- 第1部 OSの設計で有用なアプローチ
- 第2部 Hurdを一見すると
・ 日本の第2回 GNUセミナーとGNU
・ フリーに配布可能な出版源
・ プロジェクトGNUの進捗報告
・ GNUドキュメンテーション
・ 現在配布可能なGNUソフトウェア
・ OCEAN 集積回路設計システム
・ Emacs/言語/ユーティリティの各テープの内容
・ Scheme/X11/Net2の各テープの内容
・ VMS Emacs/VMS コンパイラの各テープの内容
・ Hundred Acre Consulting の発展
・ ソース・コードCD-ROM
・ コンパイラ・ツール・バイナリCD-ROM
・ テープとCD-ROMの予約配布サービス
・ GNUソフトウェアの入手方法
・ デラックス・パッケージの配布
・ MS-DOSの配布
- Demacsのフロッピー・ディスク
- DJGPPのフロッピー・ディスク
- ひと揃いのユーティリティのフロッピー・ディスク
- Windowsのフロッピー・ディスク
・ マイクロコンピュータ用のフリー・ソフトウェア
・ FSFのオリジナルTシャツ
・ FSF注文票
・ 謝辞 (Thank GNUs)
・ 付録: GNU一般公有使用許諾書 v2.0
編著者: Jan Brittenson、Noah S. Friedman、Leonard H. Tower Jr.
イラスト: Etienne Suvasa、Jamal Hannah
日本語版作成者: 引地美恵子、引地信之
GNU's Bulletin (英語原文) は毎年に1月と6月に発行される。メイリング・リ
ストによる郵送サービスを行なっていない点にご注意いただきたい。GNU's
Bulletin のコピー希望者は、その旨を記したメモと送付先住所氏名を書いた
返信用封筒(ビジネス・サイズ)に切手(52セント)を貼ったものを本小冊子の表
紙に記載された FSF へ送付していただきたい。また、2〜3 ドル寄付金もそれ
に同封されていればなお良いが、必須ではない。米国外からの希望者の場合は、
返信用封筒は不要で、返信用宛名ラベルと100g相当の国際返信切手券を送って
いただければなお良いが、必須ではない。{日本からの場合に、返信用宛名ラ
ベルは楷書のローマ字か、またはタイプにて記述していただきたい。} (コピー
料金として、さらに 2 ~ 3枚の国際返信切手券も含まれているとありがたい。)
Copyright (C) 1994 Free Software Foundation, Inc.
いかなる媒体でも次の条件が全て満たされている場合に限り、本小冊子をその
まま複写し配布することを許可する。また、配布者は第三者に対して本許可告
知と同一の許可を与える場合に限り、再配布することを許可する。
* 受領、配布された写しに著作権表示および許諾告知が前もって載せられ
ていること。
* 写しの受領者がさらに再配布する場合、その配布者が本告知と同じ許可
を与えていること。
編著者: Jan Brittenson、Noah S. Friedman、Leonard H. Tower Jr.
イラスト: Etienne Suvasa、Jamal Hannah
日本語版作成者: 引地美恵子(h-mieko@sra.co.jp)、引地信之
(hikichi@sra.co.jp)
連絡先住所: 〒102 東京都千代田区平河町 1-1-1 株式会社 SRA (03)3234-2611 (大代)
Copyright (C) 1994 Mieko Hikichi and Nobuyuki Hikichi
本小冊子 (GNU ダイジェスト) は、英語原文 (GNU's Bulletin) を
もとに引地美恵子と引地信之が翻訳し、加筆、解説したものである。
GNUダイジェスト (日本語版) の定期購読希望者は、ボランティア作業のため
送料として270円 x n 回分の総額の郵便小為替を指定欄空白で上記連絡先の引
地美恵子まで送付のこと。
原作者の意を伝えるべく英語原文の解釈に十分注意を払ったが、なお不明な点
については英語原文 (GNU's Bulletin vol. 1 no. 16) を参照されたい。なお、
日本のGNUユーザの事情に即した内容を加筆したため、必ずしも対訳ではない
部分があることを予めお断りしておく。
本小冊子(GNUダイジェスト)は、texinfo.texマクロの日本語版 jtexinfo (ア
スキー版日本語 TeX と NTT 版 JTeX に対応)、アスキー版日本語 TeX、SONY
News レーザ・プリンタで作成、出力した。
Michael Bushnell は `tar' を保守しながらHurdに関する作業を続けている。
Roland McGrath は`make'と GNU C ライブラリの保守とEmacs 19の支援、そし
て現在Hurdの作業を行なっている。Jan Brittensonは Hurd のネットワーク・
サーバの作業を行なっている。
Noah Friedman は GNU のシステム管理者であり、種々雑多な作業を行ない、
豊富な空き時間を使って 2 ~ 3 のGNUプログラムを保守している。Carl
Hoffmanは、資金調達とコンファレンスの企画を担当している。
Lisa `Opus' Goldstein は、経理に従事している。Robert J. Chassellは、
`Introduction to Programming in Emacs Lisp'を書いており、我々の役員と
して残っている。Larissa CarlsonはLisaの事務アシスタントである。Charles
Hannum は、組み版やその他の多くの作業に従事している。
Jim Blandyは学術的な興味を追い求めるためにFSFを去った。Melissa
Weisshaus と Tom LordもFSFを去った。以上の3人は引き続きパートタイムの
ボランティアである。
Richard Stallman は、Emacsの保守などの無数の作業をボランティアとして行
なっている。電子的 JOAT (jack-of-all-trades、何でも屋)、 メイリング・
リストやgnUSENET、情報の要求などをまとめているボランティアは Len Tower
である。
Free Software Foundation (以下、FSF と称す) は、コンピュータ・プログラ
ムの使用や複写、修正、再配布に関する人々の権利の制限を排除することを目
的としている。これを遂行するために、我々は、あらゆるコンピュータ利用の
分野において、フリー・ソフトウェアの開発と利用を促進している。特に、
Unix と上位互換性のある「GNU」 (GNU's Not Unix.: GNU は Unix ではない。
「グヌー」と発音する) という名の完全な統合化ソフトウェア・システムを作
成している。このシステムの主な部分は既に配布可能であり、使用されている。
我々の名前にある「free」という言葉は「自由 (freedom)」に属しているもの
で、無料を意味する「free」ではない。GNU ソフトウェアの入手にあたって、
お金を支払ってもよいし、支払わなくてもよい。しかし、どのようなことがあっ
ても、GNU ソフトウェアを入手すれば 2 つの特別な「自由」を得る。1 つは、
プログラムを複写する自由、つまり友達や一緒に仕事をしている人に分け与え
る自由である。もう 1 つは、ソース・コードを公開することによって、人々
が思うようにプログラムを修正できる自由である。ソース・コードを研究した
り、プログラムがどのように書かれているかを学習することができる。これに
より、プログラムの移植、改良が可能となり、変更点を他の人々と共有するこ
とも可能になる。GNU ソフトウェアを再配布する場合は、配布料金を請求して
もよいし、無報酬で配布してもよい。
たまたま手にはいったフリー・ソフトウェアなら何でも配っている組織は他に
もある。FSFとの違いは、FSFでは独占システムを購入する必要性を完全になく
すという目的に向けて、新しいフリー・ソフトウェアの開発に集中している。
GNU を開発する傍ら、FSFは GNU ソフトウェアのテープやマニュアルの作成と
配布を配布手数料で賄っており、GNU の開発のための寄付 (米国内では控除対
象となる)を受け付けている。FSF の資金源のほとんどがこのような配布サー
ビスで支えられている。
【Free Software Foundation の役員構成】
社長: Richard M. Stallman 経理・事務局: Lisa Goldstein
役員: Richard M. Stallman、Gerald J. Sussman、Harold Abelson、
Robert J. Chassell、Leonard H. Tower Jr.
プログラムを自由に配布する最も簡単な方法は、プログラムをパブリック・ド
メインに置き、著作権を放棄することである。しかし、この方法では、独占的
な修正を許し、人々の改良版の利用と再配布の自由を拒むことが可能になって
しまう。これは、全体のフリー・ソフトウェアの種類を増やすという意図に反
する。このような事態を避けるために、 "copyleft"は斬新な方法で著作権を
扱っている。典型的な著作権ではこれらの自由を奪うが、copyleftでは保護し
ている。copyleft は合法手段である。これは、諸権利と共に複製物を得た人
がさらにその複製物に諸権利を含めて再配布すれば、そのソース・コードを使
用、修正、再配布が可能となるものである。ソース・コードと諸権利は法律的
に切り離すことはできない。
GNUプロジェクトで使うcopyleftは、著作権告知とGNU一般公有使用許諾書
(GPL、"GNU General Public License") を兼ね備えている。GPL は複製のライ
センスであり、前述の自由を備えているという点に基本的には言及している。
また、GNU ライブラリ一般公有使用許諾書 ("LGPL、GNU Library General
Public License") を用意しており、GNU のライブラリに適用している。この
ライセンスは、GNU のライブラリを特定の条件下で、独占的な実行形式にリン
クさせることを許可するものである。完全な使用許諾書の写しは、配布されて
いる全ての GNU ソース・コードや我々が発行する多くのマニュアルに入って
いる。希望者にはその印刷物が配布可能である。
我々は、あなたのプログラムやドキュメントを copyleft で保護するように強
く勧めており、誰にでもそれらを保護することができるように手続きを簡単に
した。どちらのライセンスもその適用方法についての詳細は、それぞれのライ
センスの最後に記述されている。
Emacs、GNU CC、Ghostscript、その他のフリー・ソフトウェアに感謝の念を抱
いているのであれば、将来のより多くのフリー・ソフトウェアを確保するため
に何らかの行動を起こしたくなるに違いない。「寄付金はフリー・ソフトウェ
アを増殖する!」ということを記憶に留めていただきたい。
我々への寄付金は、米国では税控除の対象となる。米ドルなら最も便利ではあ
るが、我々はどのような種類の通貨でも喜んで受け入れている。また、クレジッ
ト・カードも利用できる(「GNU速報」参照)。
あなたの雇主が、慈善寄付に見合う寄付プログラムを用意していれば、そのプ
ログラムを活用して寄付してほしい。よくわからなければ、会社の人事部へ尋
ねてほしい。
$500 $250 $100 $50 other $________
その他の通貨:________
寄付しようとする額を〇で囲み、この部分の用紙を出力して、下記の住所まで
寄付金と一緒に送っていただきたい。
Free Software Foundation
675 Massachusetts Avenue
Cambridge, MA 02139-3309
USA
Visa や Mastercard、JCB、Diner's Club、Carte Blanche のいずれかのクレ
ジット・カードを使って寄付することも可能である。
カードの種類: ____________________ 有効期限: _______________
カードの番号: _______________________________________________
署名: _______________________________________________________
Free Software Foundation への寄付金を奨励するために、Cygnus Support は
社員から寄付金を募り、そして Cygnus の顧客とその社員による寄付金を募る
活動を引き続き行なっている。
Free Software Foundationへ支払われる寄付金は、担当者の手からCygnus
Supportへ送付するべきである。Cygnus Supportは、同額の寄付金を追加して
その合計を四半期ごとにFSFへ送ることになっている。FSF では、(米国では税
控除になる) 寄付金を送ってくれた人を把握するために、その人へ領収書を発
行する。詳細は、Cygnus Supportの`info@cygnus.com.'へ問い合わせていただ
きたい。
* コンパイラ・ツール・バイナリCD-ROM
現在、GNUコンパイラ・ツール用の実行形式の入ったCD-ROMを配布してい
る。これは、コンパイラの付いていないオペレーティング・システムを
出荷している何種類かのベンダーのシステムに対応している。この
CD-ROMにより、該当するシステムのユーザは、ソース・コードのない独
占的なコンパイラを買う必要はなく、GNUやその他のフリー・ソフトウェ
アをコンパイルすることが可能になる。詳細は後述の「コンパイラ・ツー
ル・バイナリCD-ROM」を参照のこと。
このCD-ROMの内容を更新しつつ、対応するシステムを増やしたいと思っ
ている。新しいシステム向けのバイナリを組み込んでくれる方や、推薦
するシステムがあれば、本小冊子の表紙に記載の住所か電子メイル宛て
に問い合わせていただきたい。
* FSF は DAT カセットの配布を開始した
現在、我々のソフトウエアを 4mm の DATカセット・テープに入れて配布
している。詳細は、「FSF 注文票」を参照のこと。
* ソース・コード CD-ROM の予約配布サービス
テープの予約配布サービスに加えて、現在、ソース・コードCD-ROM の予
約配布サービスを行なっている。CD-ROM 3枚分の値段で、FSF作成の
CD-ROMを次の4回まで入手することができる。目下のところ年に2回作成
しているが、年に4回は更新していきたいと考えている。「テープと
CD-ROMの予約配布サービス」を参照のこと。
* FSF ではクレジット・カードを扱うようになった
FSFでは、Visa や Mastercard、Diner's Club、JCB、Carte Blancheのク
レジット・カードを扱っている。クレジット・カードによる換金の際に、
注文の総額に対して約 5% を FSF が負担していることにご留意いただき
たい。代わりに、小切手による支払いか、あるいは、この差額の埋め合
わせとして 5% の寄付金を上乗せすることを考慮していただきたい。
* FSF ではファクシミリで注文を受け付けている
現在、ファクシミリを使って FSF へ注文することが可能になった。注文
は前払いになっているので、クレジット・カード情報など、注文票への
記入漏れや誤記のないようにお願いしたい。FSF発行の注文書以外の注文
書では受け付けていない(訳注: 後述の「FSF注文票」参照)。ファクシミ
リは、日本以外の各国および米国内では+1-617-492-9057、日本国内から
は無料通話の 0031-13-2473 (KDD) や 0066-3382-0158 (IDC) が使える。
* 非公式な「GCCコンソシアム」
IntelやMotorola、Texas Instruments、Analog Devicesの各社が集まっ
て、GNU CCを集中して保守支援するための出資を行なった。保守作業は
現在、ニューヨーク大学の Richard Kennerが行なっている。
集中保守の作業とは、バグ修正や寄与コードの統合と整理、リリース、
優先順位の高い改良作業に関して責任をもって進めるということである。
Richard Stallmanは、これにより、自分で新しいプロジェクトの企画が
可能になることを期待している。
* GCC 2をリリースし、GCC/G++/libg++ 1 は外した
バージョン2.5.7以降、GNU C コンパイラはβではなくなった。G++ と
GCC バージョン1 はもはや保守されておらず、FSFから配布されていない。
また、libg++ バージョン1も外した。
* ハードウェアにバンドルされたフリー・ソフトウェア
コネチカット州ウィルトンの Field Technology, Inc. は、copyleftさ
れたソフトウェアやパブリック・ドメイン・ソフトウェアだけを採用し
ている「Linuxマシン」を販売している。Unix互換のシステムは、TeXや
Emacs、GNU C/C`++'、X Window System、TCP/IP ネットワーキングなど
のよく使われているプログラムがインストールされた状態で出荷されて
いる。Field Technologyからは、システムが売れるたびに Free
Software Foundation へ寄付を行なっている。詳細は、
`info@fieldtech.com' か +1-203-761-9363へ問い合わせのこと。
* 体験(Experimental)テープは休止
体験テープに入っていたプログラムのほとんどが安定したので、現在の
ところ体験テープは配布していない。GCCやGAS、Binutils、libg++、GNU
C ライブラリは、以前のリリースを差し換えながら言語(Language)テー
プへ移行した。Oleoと GNU グラフィックは現在、ユーティリティ
(Utilities)テープに入っている。
* SNePS は現在フリー・ソフトウェアである
Semantic Network Processing System (SNePS) の現在のリリースの2.1
は、GNU General Public License (GNU 一般公有使用許諾書) の条項に
則って公に配布されている。以前は、使用許諾料を請求して配布してい
た。
SNePS は、計画知識表現と推論の完全な意味論である。SNePS 2.1 には
Common-Lispが必要で、TI Explorer I/II だけではなくSunOS 4のSPARC
上でも動作する。以前のバージョンはSymbolics CLやAKCL、 VAX
Common-Lisp 上で動作したが、現在リリースしているものは、これらの
システム上ではまだテストしていない。SNePS は`ftp.cs.buffalo.edu'
マシンの `/pub/sneps' から anonymous FTP で入手することができる。
* C++ プログラマのための Lisp クラス・ライブラリ
Lilyは、自動ガーベージ・コレクションのある Lisp 風の機能を提供す
るC`++' クラス・ライブラリである。Lily は、`sunsite.unc.edu' マシ
ンから anonymous FTP で入手可能である。詳細については、
`sheldon@kong.gsfc.nasa.gov' へ問い合わせのこと。
* Free Widget Foundation からウィジェットがリリースされる
Free Widgest Foundation (FWF)は、草の根的な組織で、全てが強力で融
通性があり自由にアクセスすることのできる X のグラフィック・ユーザ・
インタフェース・モジュール (ウィジェット)をボランティアが作成した。
1990年に組織されて以来、FWFは徐々に 40個以上ものウィジェットをリ
リースし、今や人気のあるいくつかの X のアプリケーションで用いられ
ている。FWFは Free Software Foundation とは関係ないが、高品質のソ
フトウェアをフリーに配布可能にするという我々の目的を共有している。
詳細は、`free-widgets-info@flute.cs.uiuc.edu'へ問い合わせるか、あ
るいは anonymous FTP にて `a.cs.uiuc.edu' マシンの
`/pub/FWF/README' ファイルを入手のこと。このファイルには、メイリ
ング・リストやFTP で入手可能なソース・コードの場所、FWFの経緯に関
する情報、FWFのボランティアの申込方法について説明されている。ある
いは、次の所へ手紙を出して問い合わせていただきたい。
The Free Widget Foundation
c/o Brian Totty
Department of Computer Science
University of Illinois -- Urbana
1304 W. Springfield Avenue
Urbana, IL 61801
USA
プログラミング自由連盟 (League for Programming Freedom、LPF) では、ソ
フトウェアを書く自由を保護することを目的としている。この自由は、
「look-and-feel」 (見栄えとその使い勝手) インタフェースの著作権訴訟や
ソフトウェア特許によって脅かされている。LPF はフリー・ソフトウェアや
FSF を推奨しているのではない。
連盟のメンバーには、プログラマや企業家、学生、教授、ソフトウェア会社も
数多く登録されている。
連盟への申込用紙からの抜粋を示す。
『プログラミング自由連盟は、プログラムを書く自由を取り戻すことに
時間を割こうとする教授や学生、社会人、プログラマ、ユーザによる草
の根的な組織である。この連盟は、個々のプログラムを著作権で保護し
た連邦議会のような合法的な組織に反対しているわけではない。我々の
目的は、特に関心のあるものに対して判決が下された最近の変遷に反対
することである。』
年会費は、プログラマや管理職、教授は 42 ドル、学生は 10.50 ドル、
その他は 21 ドルである。
申込方法は、次の項目に答えた用紙に小切手を添えて連盟へ送っていただきたい。
* あなたの氏名と電話番号 (自宅か勤務先、または両方)。
* 連盟からの郵便物の宛先 (自宅か勤務先かを明記)。
* あなたの勤務先会社名と役職。
* あなたの電子メイル・アドレス。これがあれば政治的な運動をする際に
連絡をとることができる。(連絡してほしくなければその旨を明記のこと。
いずれにせよ電子メイル・アドレスを書いていただきたい。)
* 世間に印象づけるために、LPF を支持しているあなた自身について。
* LPF の活動を援助したいかどうか。
連盟は Free Software Foundation とは関係なく、それ自体はフリー・ソフト
ウェアの組織でもない。FSF が連盟を支援するのは、IBMよりも小さな一ソフ
トウェア開発者がソフトウェア特許によって危うくされるからである。あなた
も危機に陥っているのだ! あなたやあなたの雇主が訴えられるまで問題から目
を背けているのは容易であろうが、実際に事が起きる前に備えることのほうが
より賢明ではないか。
まだ決定しかねる方は、詳細な情報を LPF へ請求する手紙を書くか、あるい
は Internet メイルにて `lpf@uunet.uu.net'へ問い合わせていただきたい。
League for Programming Freedom
1 Kendall Square - #143
P.O. Box 9171
Cambridge, MA 02139
USA
電話番号: +1-617-243-4091
電子メイル: `lpf@uunet.uu.net'
Christian D. Hofstader (`cdh@prep.ai.mit.edu') より
米国特許・商標部 (US Patend and Trademark Office、PTO) は 1994 年初め
にソフトウエア特許問題について諮問を予定している。PTO は、現在の方針が
どこか大幅に間違っているのではと認識し始めており、どのようにして問題点
を正すかその切り口を求めている。LPF は、証言するために招聘される代表者
を募ろうとしており、PTO への書面を書くために、これらの問題に関わるメン
バやその他の人々を募っている。詳細は`lpf@uunet.uu.net'へ問い合わせのこ
と。
ここ2〜3ヶ月の間に、LPFは Lotus と Borland への訴えについて法廷へ出る
法廷助言者の訴訟事件申立書の作業を行なってきた。申立書には、単に Lotus
が`123' のマクロ言語の著作権を主張しているだけの記述がある。これは、下
級裁判所で Keeton 判事により認められていた。申立書は、1993年12月14日に
第1巡回裁判所において20名の著名なコンピュータ科学者を代表して提出され
た。
LPFはこの申立書に署名するためのグループを結成した。Marvin Minsky や
John McCarthy、Robert Boyerといったコンピュータ科学の著名な貢献者が含
まれている。Bolarnd の副社長 Bob Kohn は次のように述べている。「このグ
ループにより、LPF は知的所有権法の方針を変更することが可能になるはずで
ある。コンピュータ科学者をこのような感動的な形で一同に会したことはこれ
まで全くなかった。」
LPFは、この訴訟中に提出する補ついを作成することにしている。署名に興味
のある方や、リストに登録したいと思っている人をご存知の方は、その辺りの
情報を LPF へ送っていただきたい。
Free Software Foundation はいかなる技術サポートをも提供していない。ソ
フトウェアを作成しているものの、本来の作業に集中した方がよいので、サポー
トを提供して生計を立てている他の人々のために残してある。医者や弁護士が
今日行なっているのと同様にプログラマも、サービスを提供する職業だと考え
ている。医者や弁護士の医学的な知識や法律の知識はそれ自体フリーに再配布
できるもので、開業医や弁護士はその配布とサービスに対して課金している。
我々は、サポートやその他のコンサルタント・サービスを提供する人々のリス
トを管理している。これを GNU サービス名簿 (GNU Service Directory) と呼
ぶ。このリストは、GNU Emacs 配布テープの中のファイル `etc/SERVICE'、
GCC 配布テープの中のファイル `SERVICE'、`prep.ai.mit.edu' マシン上の
`/pub/gnu/GNUinfo/SERVICE' ファイルに入っている。このディレクトリの写
しを入手したい人やリストに載せてほしい人は我々に連絡していただきたい。
GNU ソフトウェアに欠陥を発見したら知らせてほしい。我々は、バグ報告やア
ナウンス、質疑応答のために多くの Internet メイリング・リストを用意して
いる。これらのメイリング・リストは、ニュース・グループ `gnu.*'という
USENET ニュースへも転送されている。表紙にある電子メイル・アドレスへ申
し込めばメイリング・リストの一覧を入手することができる。
我々がバグ報告を受け取ると、ソフトウェアをより良いものにするために、た
いていの場合は問題を解決しようと努力する。我々のバグ修正は、個々に対応
しているように見えるかもしれないが、実際にはそうではない。我々の仕事は
非常に多いので、その対応が共同体全体の支援になるように焦点を絞らなけれ
ばならない。我々には個々に対応するほどの資源はない。我々からパッチ・ファ
イルを送る場合がある。それはバグの修正部分をテストし、品質を保証する場
合に役立つ。報告されたバグを我々が解決していなければ、バグ報告用のメイ
リング・リストを読んでいるその他の多くのユーザから、回答を得られるかも
しれない。さもなければ、サービス名簿を利用してほしい。
インストール・スクリプトがどのように動かないのか、マニュアルのどの部分
が不明確なのか、といったことを我々に知らせてほしいのであって、ソフトウェ
アのインストール方法や使い方を我々に尋ねないでほしい。
Internet をアクセスできない場合は、電子メイルや UUCP に接続されている
USENET ニュース経由の情報が入手可能である。地域の UUCP サイトや次に示
すような商用 UUCP サイトへ問い合わせる方法がある。
UUNET Communications Services
3110 Fairview Park Drive - Suite 570
Falls Church, VA 22042
USA
電話番号: 1-800-4UUNET4 または (703) 204-8000
ファクシミリ: (703) 204-8001
電子メイル: `info@uunet.uu.net'
商用の UUCP や Internet を提供している会社に関しての記事は、USENET の
`news.announce.newusers' へ `Subject: How to become a USENET site' と
いう見出しで定期的に投稿される。
サービスの提供会社を選択するときは、例えば、フリー・ソフトウェア開発プ
ロジェクトへの寄付金の申し出や、一般使用のためにフリー・ソフトウェア自
体を改良する、等のフリー・ソフトウェア開発の支援にかかる費用を検討して
いる旨を提供会社へ尋ねていただきたい。この理由を少しでも理解してくれる
ことにより、フリー・ソフトウェアの有用性を奨励していただければ、フリー・
ソフトウェアの発展に貢献することができる。
次に示す援助を望んでいる。
* この GNU's Bulletin (英語版) をテクニカル・コンファレンスやトレー
ド・ショウ、地方や全国のユーザ・グループ・ミーティングなどで配布
してくれるボランティア。調整を行なうので、表紙に記載の電話番号へ
問い合わせていただきたい。
* Oleoの拡張、または簿記などの業務に使えるその他のフリー・ソフトウェア。
* 600M バイト以上のSCSIディスクを数台。これにより、さらに広い空間で、
我々のソフトウェア開発が可能となる。
* 200M バイト以上のディスクとEthernet カードの付いた386 または 486
搭載の PC 互換のマシンを1台。
* 4mm の DAT テープ・ドライブやExabyte テープ・ドライブ、Sun
SPARCstationを1台ずつと、Sun-3/60またはSun-4/110 を1台。
* 最低 6 ヶ月間は、プログラマやテクニカル・ライターを派遣してくれる
企業。真のウィザード (達人) には短期間の方が好ましいかもしれない
が、優れたプログラマがそれなりに価値あるプロジェクトを終了するに
は、最低 6 ヶ月はかかると我々はみている。
* マニュアル作成を支援するボランティア。作業リストやコーディング規
則については `gnu@prep.ai.mit.edu' へ問い合わせのこと。
* GNU の開発のために、FSF の後援と共に研究の援助や取りまとめに興味
のある教授。
* 音声認識/文字認識ソフトウェア (特殊な入出力装置を必要としないもの)。
できればデバイス・ドライバも一緒に。これは、(我々の知っているプロ
グラマの数人を含む) 部分的に障害のある人々の生産性の向上に役立つ。
* 今後のこの小冊子向けの新しい記事やアイデア。特に、フリーに情報交
換のできる組織やGNU General Public Licenseを採用しているソフトウェ
ア、重要なビジネスとしてのフリー・ソフトウェア・サポートを提供し
ている会社を中心にとりあげたい。
* GNU プロジェクトや GNU ソフトウェアに関する新聞や雑誌の記事のコピー
を、この小冊子の表紙に記載されている住所へ送付するか、あるいはそ
の引用を`gnu@prep.ai.mit.edu' へ知らせてほしい。
* 寄付金。我々のソフトウェアを使ってその価値を認めるのであれば、ど
うか寄付金を送っていただきたい。小額のお金をFSFへ寄付する方法の1
つとして、1本の配布テ−プか1枚の CD-ROM の注文がある。このような
注文では税控除を目的とする寄付金にはならないかもしれないが、会社
の経費としては妥当な金額として支払うことは可能だろう。この方法は、
「寄付金」という言葉を嫌う会社のために働いている場合に特に役立つ。
ここでは、なぜ FSF が Hurd {Hurd は Herd という言葉をもじったものであ
り、Herd は「動物のグループ」という意味である。}と呼ばれるGNU システム
全体の土台となる新しいオペレーティング・システムを開発しているかについ
て説明する。Hurd は CMU の Mach 3.0 カーネルの上部に組み込まれ、Machの
仮想記憶管理とメッセージ通信機能を用いる。GNU C ライブラリでは、Unixの
システム・コール・インタフェースを提供しており、本体では提供されないも
のの必要なサービスのために Hurd を呼び出すことになる。Hurdの設計と実装
は Michael Bushnell が担当しており、Richard Stallmanや Roland McGrath、
Jan brittenson らが支援している。
第1部 OSの設計に有用なアプローチ
--------------------------------
オペレーティング・システム(OS)の基本的な目的は、様々なプログラムが単一
のコンピュータを効率良く生産的に共有可能にすることである。これにより、
メモリ保護や優先取得が可能なスケジュール方式のタイムシェアリング、入出
力装置へのアクセスの調整、その他のサービスが必要になる。さらに、OS に
よって複数のユーザがコンピュータを共有することが可能となる。
今日のコンピュータ・システム上では、プログラマは一般に、カーネルと呼ば
れる大規模プログラムを通してこれらの目的を実装している。このプログラム
は全てのユーザ・プログラムがアクセス可能でなければならないので、システ
ムに機能を追加する場合、ここが適切な場所となる。プロセスとのやり取りだ
けを使用するモデルでは、明確な個々のサービスはカーネルが提供するので、
こういった機能追加のために別の場所を作成することはできない。時間の経過
につれて非常に多くの機能がカーネルに追加されてきた。
旧来のシステムでは、ほとんど全てを理解し、かつシステム内への特権的な地
位を与えられているものだけが新しい要素をカーネルに組み込むことが可能で
あった。新しい要素のテストのために、他のプログラムのテストよりもいっそ
う骨の折れる修正や、コンパイル、デバッグのサイクルが必要である。他の人
がシステムを使っている間は不可能である。バグは一般に、致命的なシステム・
クラッシュを引き起こす原因となる。カーネル全体は一般にページングの対象
にならない。(ページングの対象となるカーネルもあるが、何をページングで
きるかを決定することは困難であり、エラーを引き起こしやすい。一般にはこ
の機構は複雑で、簡単な拡張を追加する場合でさえ一筋縄ではいかない。)
こういった制限ゆえに、旧来のカーネルの壁の*背後*に当然属している機能は
通常、完全に委譲されない限りシステムには無視されている。多くの優れたア
イデア、例えば、オープン/読み取り/書き込みのインタフェースをさらにうま
く処理するという方法は、実装不可能である。旧来のシステムのモノリシック
な性質を継承しているからである。さらに新しいアイデアを実現するために忍
耐があったとしても、コンピュータへの特権がある者だけしか可能にはならな
い。ライセンスを持っていない人々がカーネルのソース・コードを読むことさ
えも禁止している点をみると、ソフトウェアの著作権システムのために窮地に
落ち込み憂鬱になってしまっているのが現状である。
これらの厄介な事柄に取り掛かろうとしているシステムもある。Smalltalk-80
や Lisp マシンはいずれも、この問題にとりあえず手がけはじめたものとして、
1つの方法を提示している。システム・コードはユーザ・コードとの見分けが
つかない。つまり、ユーザがシステムのすべをアクセス可能であり、必要な変
更が可能である。両方のシステムが言語を中心に組み込まれており、まあまあ
の成功を成し遂げた。これらの言語は差し換えや拡張をこのように容易に行な
うことができる。しかし、両者とも複数のユーザ間でユーザとプログラムを隔
離する点では全く貧弱であった。OS の設計の基本的な目標が1つ欠けてしまっ
た。
Mach 3.0 カーネルを利用しているほとんどのプロジェクトでは、設計が困難
であるという旧来の OS の性質を引きずっている。内部構造は異なるが、ユー
ザとシステムとの間の厚い壁は同様に旧来のままである。単一サーバはかなり
作成しやすいものの、モノリシック・カーネルの欠陥を全て継承している。
マルチサーバでは、適切に定義されたインタフェースを持ちカーネルの機能を
論理的なブロックに分割している。適切に処理されていれば、変更や機能の追
加が容易になる。従って、ほとんどのマルチサーバのプロジェクトでは幾分改
善されている。非常に多くのシステムがページング可能である。システムのデ
バッグがさらに容易になり得る。他のユーザの邪魔にならない新しいシステム
の要素をテストすることができる。しかし、ユーザとシステムとの間には壁が
依然残っている。特殊な特権を使わないでシステムを組み合せることのできる
ユーザは皆無である。
前述とは対照的に、GNU Hurd はできる限り*システム*・コードの領域を限定
するように設計されている。プログラムはカーネルとの基本的なポートを 2〜
3 個使って通信するように要求されている。システムの他の部分は動的に差し
換えが可能となる。分離できるものはどんなものでも希望すれば、ユーザが利
用することができる。ユーザが、互いのサービスを予め相互に信用しておく必
要もなく、また、任意のユーザのサービスを信頼して、システムが脆弱になる
こともない。
これは、システムの要素を認識することにより処理されている。これをユーザ
が互いに通信するために『使用しなければならない』。要素の1つは、ユーザ
id を認識することを担当するもので、「認証サーバ」と呼ばれている。互い
に確認し合うためにプログラムはそれぞれ信頼している認証サーバと通信しな
ければならない。もう1つの要素は、スーパユーザにより他の要素がシステム
の要素の制御権を確立し、広域的な記録をとる操作を提供する「プロセス・サー
バ」である。
全てのユーザ・プログラムがプロセス・サーバとの通信を必要とするわけでは
ない。そのサービスを要求するプログラムだけが必要とする。同様に、認証サー
バは、プログラムが他のプログラムに対して確認をとりたい場合にのみ必要に
なる。残っているサービス、例えば、ネットワークの実装やファイル・システ
ム、プログラムの実行機構(setuidを含む)、等の中で特別な特権が必要になる
ものはない。
トランスレータ機構
..................
Hurd は、ユーザとサーバ間の通信方法として、まず、Mach のポートを使う。
(Mach のポートは、Mach のタスクが通信するポイントであり、そこでメッセー
ジが送受信される。) それぞれのポートでは、特定の一連のプロトコルを実現
しており、プロトコルは、ポートで表現される基本的なオブジェクトの面倒を
みるような操作を表現している。Hurd で規定されたプロトコルの中には入出
力プロトコルがあり、汎用の入出力操作を行なう。ファイル・システムの操作
にはファイル・プロトコルが、ネットワークの操作にはソケット・プロトコル
が、プロセスの操作にはプロセス・プロトコルがそれぞれ用いられる。
ファイルをオープンすると、多くのサーバをアクセスする。通常、ファイルを
オープンすると、そのファイルと関連したポートが生成される。そのファイル
はファイルを含んでいるディレクトリと同じサーバの所有になる。例えば、ディ
スクをベースにしたファイル・システムでは通常、非常に多くのポートが供給
される。それぞれでオープンしたファイルやディレクトリを表現している。ファ
イルがオープンされると、サーバは新しいポートを生成し、それとファイルに
関連を付け、ポートを呼び出し側のプログラムへ返す。
ただし、ファイルと関連した*トランスレータ*を用意することが可能である。
この場合に、ファイルの内容を参照しているそれ固有のポートを返すのではな
く、そのファイルと関連しているトランスレータ・プログラムを起動する。こ
のトランスレータは、実際のファイルの内容をポートから与えられ、元々のユー
ザにポートを返すように依頼して、オープンの操作を完了する。
この機構は、`mount'コマンドに用いられる。その場合、それぞれのマウント・
ポイントに関連したトランスレータが用意されている。プログラムがマウント・
ポイントをオープンすると、トランスレータ (ここではマウントされたファイ
ル・システムのディスク形式を解釈するプログラムのこと)が起動され、ポー
トを (訳注: 呼び出し側の) プログラムへ返す。トランスレータが起動された
あとにそれが異常終了しなければ再度実行する必要はない。親のファイル・シ
ステムでは、将来の要求時の使用に備えて、トランスレータに対するポートを
保持しておく。
ファイルの所有者は、トランスレータとファイルを関連させることができ、特
別な許可は必要ない。これは、どのようなプログラムでもトランスレータとし
て指定することが可能であることを意味する。トランスレータがファイル・プ
ロトコルを正しく実装していない場合は、明らかに全く動作しないだろう。し
かし、最悪の結果への対応を考慮して、ハングアップしても割り込み可能なシ
ステム構成となっている。
トランスレータの使い方の1つを示す。ファイル・プロトコルを使っている階
層的な構造化データをアクセスする場合である。例えば、`ftp'プログラムで
はユーザ・インタフェースのあらゆる複雑性を取り除くことができる。ユーザ
は、特定のディレクトリが FTP を示すということだけを知っていれば、新し
いコマンド群を覚えなくても、標準のファイル操作コマンド (`ls' や `cp'
など) を使ってリモートのシステムをアクセスすることが可能になる。同様に
簡単なトランスレータを用いて、`tar' や `gzip' の複雑性を軽減することも
可能になる。(そのような透過的なアクセスには幾分コストがかかるが、便利
であろう。)
汎用サービス
............
トランスレータを使うと、ファイル・システムは、ファイルとは似ていないイ
ンタフェースの集結地として振る舞うことが可能になる。基本的な転送部分で、
Mach メッセージを使うような X 版プロトコルで実現するサービスも考えられ
る。それぞれの X ディスプレイでは、適当なプログラムをトランスレータと
して利用し、ファイルを作成することが可能である。X のクライアントはその
ファイルをオープンすることになるだろう。この時点で、ほとんどのファイル
操作が有用ではない (例えば、読み取りや書き込みは無用である) が、新しい
操作(`XCreateWindow' や `XDrawText') はたぶん意味のあるものとなるだろ
う。この場合に、ファイルシステム・プロトコルは、集結地として利用される
ノードの特性を操作することにのみ利用される。ノードは、
`message_not_understood' といったリターン・コードのメッセージで返答す
るべきではあるが、入出力命令をサポートする必要はない。
このトランスレータの手法は、Hurd の中で、階層的なファイル・システムの
ような構成ではないものに対して大部分のサービスと連絡をとる際に用いられ
る。例えば、パスワード・サーバは、パスワードと引き換えに認証タグを与え
るのだが、そのような場合にこの方法で連絡をとる。ネットワーク・プロトコ
ル・サーバも、この方法で連絡をとる。トランスレータのこのような使い方を
考案したのは Roland McGrath である。
気の利いたファイル・システムのイメージ
......................................
Hurdでは、トランスレータも、何らかの意味論の変更でもって、ファイル・シ
ステムの中の別のファイル・システム風の部分を表すのに用いることもできる。
例えば、ファイル・システム自体は変更することができないが、それでもなお
ファイルの変更バージョンをどこか他の場所に記録しておく場合である。(こ
れは、ソース・コード管理に便利であろう。)
Hurd は、他の複数のディレクトリを概念的に結合させたディレクトリを生成
するようなトランスレータを備えることになるだろう。様々な種類の衝突を解
決する規則もをあわせて用意されるだろう。実行したくなるプログラムを1つ
にまとめる機能をもユーザに提供する際に、利用できる。他にも様々な応用が
ある。
ユーザにできること
..................
ファイル・システムが用意されているので、トランスレータは余分な特権を獲
得する必要はない。トランスレータは変換されるファイルの所有者のuidを使っ
て実行し、その所有者による設定や変更だけが可能である。入出力プロトコル
とファイル・システム・プロトコルは、クライアントとサーバを互いに信用し
ないで、その使用を許すように注意深く設計されている。実際は、トランスレー
タは単なる普通のプログラムである。GNU C ライブラリには様々な機能が備わっ
ており、一般の種類のトランスレータの記述容易性を高めている。
トランスレータによっては、パスワード・サーバや setuid を実行することの
できるトランスレータのような特殊な特権が必要になるものもある。こういっ
たトランスレータは誰にでも実行しようと思えば可能であるが、それらがルー
ト所有のノード上に設定される場合にのみ、それらのサービス全てをうまく提
供することができるだろう。どのようなユーザでも `reboot'システム・コー
ルの呼び出しは可能であるが、ユーザが root の場合にのみ実行できる点が似
ている。
なぜ Unix とそれほど異なるのか?
...............................
この設計が提供するものは、Unix の世界と比較すると全く斬新である。従来
は、このようによほどの必要性がない限り修正と拡張を妨げながら、OS シス
テム・コードという枠の中で機能の大部分を維持してきた。プログラムのタス
クがいかに容易であったとしても、システムの一部を自分のプログラムで差し
換えることはユーザには不可能である。網羅すべき点から外れ、カーネルに対
して行きあたりばったりの変形物をインストールすることをシステム管理者は
嫌う。
Hurd では、旧来のシステムによって事前に決まっていた処理のほとんどすべ
てをユーザが変更できるようになる。Mach カーネルから与えられているタス
ク空間と性質のすばらしい制御を組み合わせることにより、Hurd は次のよう
なシステムを提供している。つまり、ユーザは他のユーザを混乱させずに、シ
ステムで気に入らない部分を一時的に差し換えることができるシステムである。
Mach をベースにしてきたこれまでの OS のほとんどは一般に、新しい環境の
中で *{同様の古い} Unix の意味論に対して上位互換のものを実現していた。
それ*に対して GNU では、それらの意味論を拡張して、それらの改良やバイパ
ス、差し換えをユーザが行なえるようにしている。
第2部 Hurdを一見すると
----------------------
認証サーバ
..........
Hurd の中央サーバの1つとして認証サーバがある。このサーバのポートはそれ
ぞれがユーザを認識し、*id ブロック*を使ってこのサーバとの関連付けを行
なう。各 id ブロックにはユーザとグループ id の集合を含む。どちらも空に
なる場合がある。このサーバは、前述のパスワード・サーバと同じではない。
認証サーバは 3 つのサービスを外部に提供している。最初は、認証ポートに
対する簡単な論理演算である。2つの認証ポートが与えられると、このサーバ
は uid と gid の 2 組の結合を表す 3 番目のポートを用意する。2 つ目のサー
ビスは、このサーバが uid が 0 のユーザが任意の認証ポートを作成できると
いうものである。3 つ目のサービスは、このサーバが複数の RPC (異なるプロ
グラムの遠隔手続き呼び出し、Remote Procedure Call) を提供するものであ
る。これにより、信頼し合えないクライアントとサーバが互いに認識し、最初
に互いの情報をやり取りすることが可能となる。ファイル・システムや入出力
プロトコルのセキュリティ上、これは極めて重要である。
どのようなユーザでも、認証プロトコルを実装するプログラムを書くことは可
能である。それによってシステムのセキュリティを侵害することはない。ユー
ザを認証するサービスが必要になると、信頼に足る認証サーバと通信する。ユー
ザが異なる認証サーバを用いていると、そのトランザクションは失敗し、サー
バはそれ以降の通信を拒否する。実際には、これは全てのシステムのプログラ
ムが同じ認証サーバを使うように強制することになるので、できるだけ安全な
操作を行ない、外部からの操作を取り込まないようなインタフェースを設計し
てきた。(これが、パスワード・サーバを別にした理由である。)
プロセス・サーバ
................
プロセス・サーバは、分類された情報のリポジトリとして振る舞う。このサー
バでサポートされている主要なサービスが 4 つある。1つ目として、プロセス・
サーバは、Mach カーネルで取り扱えない汎用的なホスト・レベルの情報を記
録する。例えば、hostname や hostid、システムのバージョンはプロセス・サー
バが保守する。2つ目は、このサーバは Posix のセッションとプロセス・グルー
プの表記法を保守する。
3つ目として、サーバは Mach タスクと Hurd プロセスの 1 対 1 のマッピン
グの面倒を見る。タスクごとに pid が割り当てられる。プロセスはメッセー
ジ・ポートをこのサーバに登録する。そのあとでサーバは、要求のあるどんな
プログラムへも配布することが可能となる。サーバはこれらのメッセージ・ポー
トを私的なもののままにしようとはしないので、ユーザ・プログラムは、必要
とするセキュリティはどのようなものであっても実現されているものとみなさ
れる。(C ライブラリでは、このために便利な関数は全て提供している。) プ
ロセスは、プロセス・サーバに現在の`argv' と `envp'の各値を伝えることが
可能である。サーバはその後、要求に応じて引数と環境のベクトルを用意する。
これは、`ps'のようなプログラムを作成する場合に便利で、この情報を隠した
り変更するのが容易にもなる。これらの機能は決して必須ではない。プログラ
ムは自由に無視し、プロセス・サーバに全く登録しなくてもよい。しかし、そ
のようにしても、pid は割り当てられる。
最後に、プロセス・サーバは *プロセスの集合* を実装する。これは、同時に
多くのプロセスのメッセージを集める場合に用いる。管理されているポートの
セキュリティを保証すると当時に、pid とプロセス・サーバのポート、Mach
のタスク・ポートを変換するための機能が用意されている。
プロセス・サーバはオプションであることを強調しておくことは重要である。
Mach の制限により、システムの全てのタスクを認識するためにルートの権限
でプログラムを実行しなければならない。しかし、これが与えられると、複数
のプロセス・サーバが同時に存在することが可能になるだろう。それぞれは固
有のクライアントを抱え、固有の世界観のモデルを提供することが可能となる。
実装にあたっては、ルートの特権を要求しないというプロセス・サーバの特徴
により、ユーザごとにサーバを用意することも可能になるだろう。ユーザは何
も拘束されていない。
透過的な FTP
............
透過的な FTP は非常に興味のあるアイデアであり、その時期が到来した。GNU
Emacs 用に配布されている人気のある `ange-ftp' パッケージは、FTP のファ
イルを、Emacs のファイル操作のすべての機能で仮想的に透過なアクセスにす
るものである。透過的なファイル・システムも同様だが、システム全体にわたっ
て対処している。このサーバはまだ作成されていない。詳細な点では、余分な
部分をそぎ落とす必要のある個所が残っている。たぶん経験に基づいた変更が
あるだろう。
BSD カーネルでは、透過な FTP ファイル・システムは Hurd よりも実現が難
しくないだろう。しかし、BSDカーネル・ハッカーにこのアイデアを提示する
と、「そのようなことは本来カーネル内の作業にはふさわしくない」という返
答が返ってくる。ある意味ではこれは正しい。それをカーネルに置くと、その
ようなシステムの根底にある原則を完全に侵害するからである。しかし、不運
にも副作用ががある。設計手法 (気に入らない点をユーザが変更できないこと
に至った原因のの手法) は、システムの設計者自身が気に入らない点に手を入
れられないといった事態が発生する。(最新のBSD カーネルでは、透過的な
FTP を提供するユーザ・プログラムを作成することが可能になった。`alex'が
その例であるが、完全なルートの権限で実行する必要がある。)
Hurd では、透過的な FTP を行なうのに何ら障害はない。トランスレータはノー
ド `/ftp'に対して提供される予定である。サブディレクトリがそこにあって
も、`/ftp' の下のディレクトリ内容を直接リスト表示することはできないだ
ろう。様々な形式が考えられる。例えば、uunet上のファイルをアクセスする
には、`cd /ftp/ftp.uu.net:anonymous:mib@gnu' のように指定することがで
きるだろう。このコマンドの各要素は省略可能で、透過的な FTP プログラム
はユーザの `.netrc' ファイルからのその情報を読み取る。この最後の例では、
必要なデータの残りが `.netrc' 中に既に入っている場合には、単に`cd
/ftp/gnu.ai.mit.edu' となるだろう。
`cd' を最初に行なう必要はない。どのようなファイル操作コマンドでも使う
ことができる。RFC 1097 (Telnet Subliminal Message Option) を見つけ出す
には、単に `more /ftp/ftp.uu.net/inet/rfc/rfc1097' と入力すればよい。
RFC を頻繁に読む必要があるのであれば、ローカル・ディスクに対してコピー
することも可能である。
ファイル・システム
..................
普通のファイル・システムも実装中である。Hurd の最初のリリースには、BSD
4.4 Fast File System と上位互換のファイル・システムを採用する予定であ
る。通常の意味論に加えて、トランスレータを記録するという手段を提供する。
さらに 32 ビットのユーザ id とグループ id を提案する。所有者による任意
の設定が可能なファイルの *author* と呼ばれる、ファイルごとの新しい id
を提供する。さらに、Hurd 上のユーザは複数の uid (なくても構わない) を
持つことができるので、 追加の1組の許可ビットがある。これは 「名前のな
いユーザ」 (uid がない) と「名前があるが任意のユーザ」(いくつかが uid
であり、既存のファイルの「ワールド」の許可ビット) とを区別するためであ
る。
NFS (ネットワーク・ファイル・システム) プロトコルは、最初としては、4.4
BSD を使いながら実装する予定である。ログベース (ログ構造の)・ファイル・
システムも、Sprite にあるものと同じアイデアを用いて実装する予定である
が、おそらく同じ形式にはならないだろう。GNU ネットワーク・ファイル・プ
ロトコルはそのうち設計されるかもしれないし、あるいは NFS そのものを使っ
て、欠陥を削除するための拡張を施すかもしれない。また、GNU とその他の
OS との間でファイルのやり取りをする人を支援するために、MS-DOS ファイル・
システムなどの様々な「小さな」ファイル・システムも出てくるだろう。
端末
....
入出力サーバでは、Posix の端末意味論を提供する予定である。C ライブラリ
では、次のような機能も備えている。キーボード・シグナルやハングアップ・
シグナルに従うといった機能だけではなく、端末の制御に絶えず注意し、適当
なタイミングで適切なジョブ・コントロール・シグナルを送信するために調整
する機能である。
プログラムは通信チャネルに様々な方法で端末ドライバを挿入することが可能
となるだろう。`rlogind' のようなサーバは、端末プロトコルをサーバのネッ
トワーク通信ポート上に挿入することが可能になる。
ユーザに強制させるような端末ドライバは全くない。端末ドライバにより、ユー
ザには次のようなことが容易になる基本的な通信チャネルを得ることができる。
必要に応じてバイバスさせたり、まとめたり、端末ドライバに似たプログラム
と差し換えることである。この最後の場合には、必要なインタフェースを別の
プログラムが実現している場合に限り、完璧に元の端末であったかのような端
末ドライバに似たプログラムは、 C ライブラリから利用されることになるだ
ろう。
こういった融通性ゆえに、元々の端末ドライバでは、Posix や BSD に見受け
られる振る舞い自体に制限されないようにするために、複雑な行編集を行なう
ような機能を提供していない。やがて、`readline' をベースにした端末ドラ
イバが提供されるだろう。これには、希望しているユーザのために、複雑な行
編集機能がある。
端末ドライバでは、UUCP や SLIP で要求されるような非常に大量で高速なデー
タ転送の優れたサポートはおそらく提供されないだろう。これらのプログラム
にはどのような機能をも必要としていない。その代わりに、端末向けの基本的
な Mach デバイス・ポートを採用して、大量のデータを効率良く転送するよう
になるだろう。
プログラムの実行
................
`execve' 呼び出しの実装は3つのプログラムで行なわれる。ライブラリは引数
と環境のベクトルの整列を行う。そのあとで、実行すべきファイルを所有して
いるファイル・サーバにメッセージを送る。ファイル・サーバは実行許可を調
べて、exec を呼び出す時に求められるあらゆる変更を施す。例えば、ファイ
ルに setuid が付いており、ファイル・サーバにその権限があれば、新しいイ
メージのユーザの id が変更される。ファイル・サーバは、古いタスクをアク
セスしているプログラムが新しいタスクのアクセスを継続するべきかどうかを
決定する。ファイル・サーバが許可の拡大を行なったり、読み取れないイメー
ジを実行している場合には、セキュリティを維持するために、exec は新しい
Mach のタスクを発生させる必要がある。
新しいイメージに関連した方針を決定したあとは、ファイル・システムはタス
クをロードするために exec サーバを呼び出す。このサーバは、BFD (Binary
File Descriptor、バイナリ・ファイル記述子) ライブラリを使って、イメー
ジをロードする。BFD は多くのオブジェクト・ファイル形式をサポートしてい
る。サポートされる形式はそのほとんどが実行形式である。このサーバは、
`#!' で開始するスクリプトをも取り扱い、指定されたプログラムのもとで実
行する。
標準の exec サーバも、新しいイメージの環境を調べ、変数 `EXECSERVERS'を
含む場合は、システム標準の代わりに exec サーバとして指定されたプログラ
ムを使う。(つまり、当然のことながら、セキュリティを保つようにファイル・
サーバが要求している exec では処理を行なわない。)
新しいイメージは、C ライブラリ内で起動が開始され、C ライブラリは、 引
数や、環境、umask、現在のディレクトリなどを得るために exec サーバへメッ
セージを送る。ファイル・サーバや exec サーバについては、これ以上特筆す
べき点はない。プログラムが望むのであれば、ライブラリではなく別の方法で
それを利用することが可能である。
新しいプロセス
..............
`fork' 呼び出しは、C ライブラリ内でほどんどすべてが実装されている。新
しいタスクは、Mach カーネルの呼び出しによって生成される。C ライブラリ
は、そのイメージを適切に継承させるように調整する。新しいタスクはプロセ
スサーバに記録される (これは必須ではないが)。C ライブラリは fork する
際に呼び出すべき関数のベクトルを用意する。一つのベクトルは fork する前
に呼び出されるものであり、もう一つは fork の後で親プロセスから呼ばれる
もの、最後のものは fork の後で子プロセスから呼び出されるものである。
(これらの機能は一般の fork の呼び出し列を差し換えるために用いるべきで
はない。ポートをクローズする時や、fork が発生する前に、きれいに処理す
るライブラリが必要となったので、これを意図している。) C ライブラリは
Posix.4a のドラフト(スレッドの拡張とリアルタイムの拡張を扱う提案中の規
格)で定義された2つの fork 呼び出しを実現する予定である。
この方法は、ユーザが新しいタスクを生成するように強制するものではない。
プログラムが一般の fork をほとんど使っていても、特別なの性質がある場合
には、利用することが可能である。C ライブラリにはホック (訳注: あるタイ
ミングで自動的に起動される機構) も用意する予定であり、これでさえ機能を
完全に差し換えることが可能である。旧来の Unix システムにおいてはこれら
のいずれもが不可能であった。
非同期メッセージ
................
前述のように、プロセス・サーバは登録された各タスクのために「メッセージ・
ポート」を保守している。ポートは公になっており、タスクへ非同期メッセー
ジを送るために使用する。例えば、シグナルはメッセージ・ポートへ送られる。
そのシグナルのメッセージも、送り手がシグナルを送るために信頼すべきもの
を表示しているという意味で、そのポートを用意している。C ライブラリは様々
なポートを表形式でのせており、各ポートはシグナルの集合を区別している。
そのポートを処理しているあらゆる場所からシグナルを送ることが可能である。
例えば、ユーザがタスクのカーネル・ポートを処理している場合に、どのよう
なシグナルでも送ることがきる。ユーザが特別な 「端末」 id ポートを処理
している場合には、キーボート・シグナルとハングアップ・シグナルを送るこ
とができる。ユーザは C ライブラリのシグナル許可表に、任意の新しいエン
トリを追加することが可能である。
プロセスのプロセス・グループが変更になると、プロセス・サーバは新しいプ
ロセス・グループを示すメッセージを送ることになるだろう。この場合に、プ
ロセス・サーバはタスクのカーネル・ポートを提供することで、その権限を立
証する。
C ライブラリも、プロセスが現在用いている uid を追加したり削除するため
のメッセージを用意している。新しい uid がプログラムへ送られると、ライ
ブラリは現在のセットへそれを追加すしてから、それを知っているすべての入
出力サーバとメッセージを交換して新しい認証を確立する。同様に、メッセー
ジを用いて uid を消去することも可能である。後者の場合では、呼び出し側
はプロセス・タスク・ポートを用意しておかなければならない。(追加の許可
を与えることにより、プロセスに害を与えることはできないが、許可を破壊し
て害を与えることは可能である。) Hurd は、ユーザ・プログラムが複数のメッ
セージを複数のプロセスへ送ることを可能する。例えば、`su' コマンドは、
現在のログイン・セッション内のすべてのプログラムに対して、サブシェルを
生成しないで、新しい uid を与えるられるようになるだろう。
標準のセットの承認を拒否するのと同じように、C ライブラリは、プログラム
が承認したい非同期メッセージの追加も可能にするだろう。
見栄えを Unix のようにすること
..............................
C ライブラリは、BSD や Posix への拡張はもとより、BSD と Posixからの呼
び出しの全てを実装する。他に可能となる選択子は全くなく、Unix での呼び
出しは「そのまま」使わざるを得ないのに対し、これは、これらの呼び出しを
ユーザの希望に応じて差し換えたり、完全にバイパスすることを可能にする。
いくつかの環境では、バイナリ互換もサポートする予定である。これは、プロ
セスのアドレス空間のどこかにロードされる特別なバージョンのライブラリを
作成することにより動作する。(例えば、VAX ではスタックの上部にロードす
ることになるだろう。)その場合に、Mach の特徴であるシステム・コール・リ
ダイレクションが、次の目的で使用される。Unix のシステム・コールをトラッ
プし、ライブラリの特別なバージョンへジャンプするように変更させる。(大
抵のマシンでは、そういったリダイレクションのコストは極めて小さい。これ
は高度に最適化された Mach の経路を見ると、386 マシンでは約 24 個の命令
になる。単純な手続き呼び出しとほぼ同じである。)
シグナル・マスクやベクトルといった Unix の多くの特徴は、ライブラリで完
全に処理する。これにより、そのような機能を Unix よりもはるかに低コスト
で行なう。きわどい領域を保護するために、他の方法を探すのでなく、
`sigblock' を広範囲にわたって利用する方法は、これからコストを低く押さ
えられるため適切である。
ネットワーク・プロトコル
........................
Hurd には、4.4 BSD プロトコル・スタックの Hurd への移植を非常に容易に
するライブラリがある。これは、BSD がサポートしている全てのプロトコルを、
仮想的に自由に操作することが可能にしている。現在対象としているプロトコ
ルには、 CCITT プロトコルや TCP/IP プロトコル、Xerox NS プロトコル、
ISO プロトコルがある。
究めて高速な入出力を提供するというHurd の機能上の利点を採り入れるため
には、性能の最適化に関して何らかの作業が必要になるだろう。ほとんどのプ
ロトコルに対しては、この点において考慮が必要になるだろうが、それほどの
時間は要しないだろう。Hurd では TCP/IP プロトコルを可能な限り効率良く
実行させたい。
Hurd の設計上の融通性に関する興味深い例として、IP トレーラの例を考えて
みよう。性能面からBSD では広くよく使われている。Hurd はトレーラの送信
と受信を処理しようとしている限り、それを行なう上での利点はほとんどない
だろう。というのはデータのコピーの要請がなく、ページ境界の整合性を持つ
データのコピーを避けることは不適切であるからである。
FSF と後援の Wingnutは、第2回 GNU テクニカル・セミナーを 1993 年12月1
日と2日に日本で開催した。Richard Stallman は GNU プロジェクトと FSF に
ついて、次に Jim Blandy は GNU Emacs 19 について、 東田 学 は Demacs
(「マイクロコンピュータ用のフリー・ソフトウェア」参照) について講演し
た。Bob Myers と David Littleboy は英語による講演の逐次通訳を行なった。
SRA と SRA/Wingnut プロジェクトとそのスタッフは、日本に滞在中の移動と
セミナーをあらゆる手段で支援した。このセミナーには約 70 名が参加した。
いくつかの出版社が Richard Stallman を取材した。FSF もソース・コードの
入った最新版の CD-ROM を披露した。
12月6日の仙台セミナーでは Richard Stallman が、12月7日の会津大学セミナー
では Richard Stallman とJim Blandyが、12 月 13 日の大阪セミナーでは
Richard Stallman と東田 学がそれぞれ講演した。これらのセミナーを実現す
るために、主催者や主催団体、通訳を含む多くの人々や組織に感謝する。
日本Unixユーザ会は、横浜での Unix Fair '93 で FSF にブースを提供してく
れた。この FSF のブースの運営を支援してくれた全てのボランティアや主催
者に感謝する。
各地でのセミナーやショウにおける成功は、我々の期待を越えるものであった。
個人の支援者やユーザ・グループからは多くの自発的な寄付金をいただき、我々
を支援してくださった多くの熱心なボランティアに感謝している。今後は、日
本他各地での Unix のイベントにもっと出現したいと思う。セミナーを主催し
たい方やコンファレンスの講師を必要とする方は、`gnu@prep.ai.mit.edu'ま
でご連絡いただきたい。
引地美恵子 (`h-mieko@sra.co.jp') と引地信之 (`hikichi@sra.co.jp') は、
日本で GNU プロジェクトのためにボランティアを続けている。彼らは、GNU's
Bulletinを日本語に翻訳し、GNU General Public License Version 2 (GNU 一
般公有使用許諾書 バージョン2) の日本語版を付けて幅広く配布している。こ
の日本語版はFSFが承認したもので、`srawgw.sra.co.jp' [133.137.4.3] マシ
ンの `/pub/gnu/local-fix/GPL2-j' から anonymous FTPで入手可能である。
GNU Library General Public License (GNU ライブラリ一般公有使用許諾書)
の正式な日本語化を行なっている。また、寄付の呼びかけや GNU ソフトウェ
アについて人々の相談にも答えている。
Epoch の日本語版 (`nepoch') と、MULE が現在日本で入手可能である。MULE
(MULtilingual Enhancement of GNU Emacs) は、同時に多くの文字コードを扱
うことができる。Mule で提供される機能は、最終的には FSF バージョンの
Emacs に組み込まれる予定である。FSF では `neopch'を配布していないが、
MULEはソース・コードの入った CD-ROM を注文したり、`sh.wide.ad.jp' マシ
ンの `/JAPAN/mule' または`etlport.etl.go.jp' マシンの `/pub/mule' を
anonymous FTP で入手することができる。
(株)ビレッジ・センターでは、`GNU Emacs Lisp Reference Manual' の日本語
訳を印刷し、さらに Texinfo 形式のソース・ファイルを各種の電子掲示板に
アップロードしている。また、最近では、copyleftで保護された引地信之・引
地美恵子編著の`Think GNU'という本を出版した。これは、FSF以外の発行のも
のとしては日本初のcopyleftされた出版である。売上の一部は、FSFに寄付さ
れている。
連絡先住所は「〒 182 東京都調布市富士見町 2-2-12 (株)ビレッジセンター」
である。
連絡先住所は「〒 182 東京都調布市富士見町 2-2-12
(株)ビレッジセンター」である。
アディソン・ウェスレイ・パブリッシャーズ・ジャパンは、`GNU Make
Manual' と `GAWK Manual' の日本語訳を出版した。
連絡先住所は「〒 101 東京都千代田区猿楽町1-2-2 (日貿ビル 2F)
アディソン・ウェスレイ・パブリッシャーズ・ジャパン」である。
連絡先住所は「〒 101 東京都千代田区猿楽町1-2-2 (日貿ビル 2F)
アディソン・ウェスレイ・パブリッシャーズ・ジャパン」である。
ICOT(Institute for Next Generation Computer Technology、新世代コンピュー
タ開発機構) は、研究成果として得られた第五世代ソフトウェアをフリー・ソ
フトウェアとして配布している。これには、記号処理、知識表現、問題の解法
と推論、自然言語処理向けのプログラムが 70M バイト以上も入っている。詳
細は、`irpr@icot.or.jp' へ問い合わせのこと。
日本の多くのグループが GNU ソフトウェアを配布している。JUG (PC ユーザ・
グループ)、アスキー (定期刊行物と書籍の出版社)、富士通の FM Towns ユー
ザ・グループ、Wingnut (SRA の特別 GNU サポート・グループで、日本で初め
てデラックス・パッケージも購入した) などである。(Wingnutによる購入以後、
日本のその他の匿名希望数社がデラックス・パッケージを購入している。)
anonymous UUCP による配布も日本で行なわれており、その UUCP についての
詳細は `toku@dit.co.jp' へ問い合わせのこと。
日本から直接 FSF へ発注することも容易になり、新しいコードのための助成
資金にもなっている。日本向けに、日本語のFSF注文票があるので、注文票の
写し{本小冊子の最後にも日本使用限定の同FSF注文票が添付されている。}を
欲しい方は`japan-fsf-orders@prep.ai.mit.edu'へ請求していただきたい。ま
た、受信払いの無料ファクシミリも日本向けに2本用意している(表紙参照)。
我々は、テープを購入するように促している。150 本のテープの注文で 1 人
のプログラマを 1 年間雇うことができ、より多くのフリー・ソフトウェアを
作成することができるからである。
ソフトウェアだけでなく 「フリーに再配布可能」 な情報がある。様々な本や
歴史的な文献などを提供しているグループをいくつか次に示す。
* FreeLore
John Goodwin のフリーロア (FreeLore) プロジェクトの目的の1つは、
有用でしかも copyleft で保護された教科書の中核を作成することであ
る。現在、中高生から大学 1〜2 年の学生向けに、 Texinfo で記述され
た履修科目のプロトタイプを入力している。ボランティアについては
`jgoodwin@adcalc.fnal.gov' へ問い合わせのこと。
* オンライン・ブック・イニシアチブ
「オンライン・ブック・イニシアチブ (OBI、Online Book Initiative)」
は、本やコンファレンスの予稿集、リファレンスの類、カタログなどを
自由に再配布することに的を絞って作業を進めている。OBI のオンライ
ン・テキストは (大部分が圧縮されて) 約 200M バイト あり、詩から標
準化の本や小説にまで至る。どのテキストも `obi.std.com' マシンから
anonymous FTP でアクセスすることができる。
* プロジェクト・グーテンベルク
プロジェクト・グーテンベルクは、Michael Hart による発案である。最
終的な成功に見る Hart 教授の願望は、彼が 「Replicator 技術」と呼
んでいるものの性質に由来する。いったんコンピュータに入れれば必ず
無制限にコピーが可能となり、欲しい人全てに配布することができる。
著作権のない出版物は、独立宣言に始まり、聖書の King James 版、
「`The Scarlet Letter'」 や1990年の米国国勢調査データに至る幅広い
テキストを抱合している。プロジェクト・グーテンベルクから配布され
るテキストは、`mrcnext.cso.uiuc.edu' マシンの `/etext'ファイルや
`oes.orst.edu' マシンの `/pub/almanac/etext'ファイルなど、数多く
の FTP サイトから入手可能である。Bitnet からのテキストの入手方法
は「HELP」 という単語をメッセージ本文に記述して `BITFTP@PUCC'
(Internet上では`BITFTP%PUCC.BITNET@mitvma.mit.edu') へ問い合わせ
れば、入手方法が電子メイルで送られてくる。あるいは、USENET グルー
プ `bit.listserv.gutnberg' を参照のこと。
* GNU ソフトウェア構築システム
現在、GNU ソフトウェアをコンパイルして、構築するための汎用のシス
テムがある。全てのGNUソフトウェアを、マシン・タイプとシステム・タ
イプに対して同じ命名方法で構築することができる。これにより、 全て
の GNU ソフトウェアをインストールする際に、(訳注: GNU ソフトウェ
アごとに固有の引数を与えるのではなく) マシン・タイプとシステム・
タイプを同じ引数名で与えて構築できるようになるだろう。
この構築方法を用いると、1 つのディレクトリで複数の GNU パッケージ
を単一コマンドで作成できるようにもなる。オペレーティング・システ
ムが完成した暁には、GNU システムを作成する際に、GNU パッケージを
個々に構築する必要がなくなり、全ての構築を一度に行なうことが可能
になる。
この構築方法により、ホスト・システムとターゲット・システムを記述
するだけでクロスコンパイル・ツールを容易に作成および組み込むこと
ができる。
* Hurd
Mach の上位で動作する一連のサーバ「GNU Hurd」を開発中である (詳細
は「OSの設計上の新戦略に向けて」参照)。Mach は、CMU が開発したフ
リーなメッセージ・パッシングを基にしたカーネルである。Hurd サーバ
は、GNU C ライブラリと組み合わせて Unix と同じ機能を提供する。こ
れらは、GNU システムを完成させるために最後に必要かつ重要な要素で
ある。
現在、Mach カーネルを386 PC や DEC PMAX ワークステーション、その
他の数機種に移植したものがある。それら以外のマシンに対応する Mach
は現在移植中である。これらのマシンのいずれかを使って手伝いたい方
や自分で移植をしてみたい方は、CMU の `mach@cs.cmu.edu' 気付で問い
合わせのこと。GNU Hurd と GNU C ライブラリの移植は、Mach が既存の
ハードウェアにさえ移植されていれば (GNU Emacs の移植よりも容易で、
とりわけ GCC の移植よりは) 容易である。
重要な移植に現在とりかかっている。ファイル・システムは完了間近で
あり、その他の数種類のサーバは作業中である。Hurd 関連でボランティ
アを必要とする重要なプロジェクトがある。興味のある経験豊富なシス
テム・プログラマは `gnu@gnu.ai.mit.edu' まで電子メイルを送ってい
ただきたい。
* GNU Emacs
Emacs は拡張性に富み、カスタム化が可能で、ドキュメントが完結して
いるリアルタイム表示のエディタである。GNU Emacs の現在のバージョ
ンは 19.22 である。
多くのボランティアの Emacs 19 への多大な支援があった。マルチウィ
ンドウ方式について、最初にフィードバックをくれた Alan Carroll と
そのグループへまず感謝する。X セレクションやフェース (訳注: 文字
の見栄え)、最適化バイト・コンパイラ、標準のメニュー・バーを実現し
た Lucid, Inc.に感謝する。新しい Lisp ライブラリの 851 個の可能性
の中から 460 個の評価を行なった Eric Raymond に対して、Emacs 19
のリファレンス・カードを作成したStephen Gildea に対して感謝する。
Emacs の今後のリリースで検討している機能を次に示す。
複数の領域や様々なウィンドウを 1 つのバッファで表示させるための異
なる可視条件の設定。取消 (undo) 履歴のファイルへのインクリメンタ
ルな保存 (これにより、`recover-file' でもそのバッファの取消履歴を
読み込むことになる)。可変幅のフォントのサポート。世界の全ての主要
言語のワイド文字セットのサポート。X ツールキットを使った表示のサ
ポート。
* GNU Fortran (`g77')
GNU Fortran は、内輪の α テスト(専門家の小グループがテスト) 中で、
まだ公にはリリースされていない。 `g77' を完全に公表するまで、
`gcc' (GNU C コンパイラ) と `f2c'(Fortran から C への変換プログラ
ム) を使っていただきたい。`g77' は、これらの 2 つのツール ( `f2c'
ライブラリと `gcc' バックエンド) を頻繁にアクセスしているので、こ
れを使って発生した問題点を報告していくことにより、`g77'のリリース
が早まることをご理解いただきたい。「言語テープの内容」を参照のこ
と。
α テストでは、大部分が新しいコードなので`g77' のフロントエンドの
テストが第1目的になっている。2番目の目的は、フロントエンドとバッ
クエンド間の統合テストである。現在、ここには多くのバグが潜んでい
るようである。3番目は、GNU バックエンドで生成されるコードの品質で
ある。
`g77' は、通常のコンパイラの配布の一部として 1994年の初春に βリ
リースを行ないたいと思う。
`g77' に興味がある人のためにメイリング・リストが用意されている。
登録は、その旨を `info-gnu-fortran-request@prep.ai.mit.edu' へ宛
てればよい。`g77' の作成者や現在の保守担当者へ連絡するには、
`fortran@gnu.ai.mit.edu' へ宛てる。
* C コンパイラ
GNU C コンパイラのバージョン 2 がリリースされた。GCC や G++、
libg++のバージョン 1 はもはや配布も保守も行なっていない。GCC2 は、
数種類ある GNU C の拡張版だけでなく、ANSI C と従来の C 言語の両方
もサポートする。C++と Objective C の両言語のフロントエンドがある。
数種類の新しいフロントエンドを作成しているが、まだ GCC には入れて
いない。Fortran のフロントエンドは現在 α テスト段階であり、完成
に向かっている。Ada のフロントエンド(GNAT、GNU Ada Translator) は
まだ安定していないが、現在 `cs.nyu.edu' マシンの `ftp/pub/gnat'ファ
イルから anonymous FTP で入手可能である。また、ボランティアが
Pascal のフロントエンドを作成している。
GCCの詳細は「現在配布可能なGNUソフトウェア」を参照のこと。
* C インタープリタ
FSF は、GNUのコンパイラとデバッガにインタープリタ機能を追加中であ
る。この作業の一部は終了している。コンパイラは現在、(C 言語を除く
サポートされた言語用は全て) バイト・コードを生成し、別のパッケー
ジがそれ解釈実行している。
この作業を有用なものとするために、GDBに機能を追加してバイト・コー
ドを動的にロードする必要がある。また、ファイル中でいくつか指定さ
れた関数だけをコンパイルするように C コンパイラもサポートしたい。
限られた資源のために、FSFはこれを行なうことができない。興味のある
ボランティアは `gnu@prep.ai.mit.edu' まで問い合わせていただきたい。
* バイナリ・ユーティリティ
Cygnus Support 社の Steve Chamberlain や Per Bothner とその他の人々
は、(リンカを含む) バイナリ・ユーティリィを書き直した。GDB で用い
られているバイナリ・ファイル記述 (BFD) を基にしている。全てのツー
ルを、ターゲットとは異なるホスト・マシン上で動作させることができ
る (クロスリンカがサポートされている等)。各種 COFF形式やその他の
オブジェクト・ファイル形式もサポートする。いろいろな形式のオブジェ
クト・ファイルを同時に扱えるツールがある。例えば、リンカは、2 つ
の異なる形式を使ってオブジェクト・ファイルを読み込み、さらに別の
形式で出力する。AT&T リンカ・コマンド言語と上位互換のものを解釈し、
メモリのどこにセグメントがあるかを汎用的に制御することができる。
* GNU C Library
C ライブラリの作業を、Roland McGrath が続けている。ライブラリは現
在、ANSI C-1989 と POSIX.1-1990 規格で要求されている全て、POSIX
1003.2 のほとんどの機能、さらに多くの BSD と System V の関数を扱っ
ている。
Hurd 上では、C ライブラリは、Unix 上でのシステム・コールの機能の
多くを提供する。Mike Haertel は、GNUの旧バージョンよりもメモリの
消費が少ない `malloc' の高速なバージョンを作成し、GNU 正規表現関
数(`regex') は現在、POSIX 1003.2 の規格をほとんど満たしている。
GNU `stdio' では、2〜3個 の C 関数を新たに記述すれば自分の新しい
ストリームを定義することができる。`fmemopen' 関数は、文字列に対し
てストリームをオープンするためにこの方法を採用しており、必要に応
じて拡張が可能である。自分の書いた C 言語の関数を使って自分用の
`printf' 形式を定義することも可能である。例えば、ユーザからの入力
に対してフォーマット文字を用いて安全に処理することもできる。例え
ば、`printf' のような関数を他の言語向けに用意する、等である。拡張
`getopt' 関数は、長いオプション名のオプションの解析のために、多く
の GNU ユーティリティ内で既に用いられている。
GNU C ライブラリのバージョンは 1.06 をリリースしたばかりで、1.07
は作業中である。バージョン 1.06 には、Emacs 19 に用いられているメ
モリの再配置を行なう割り当てプログラムだけでなく、Sequent
Symmetryマシンの Dynix、i386マシンの SCOと SVR4、SPARCマシンの
Solaris 2 への各新規移植部分が入っている。 `GNU C Library
Reference Manual' の Texinfo 形式のテキスト・ソース・ファイルも入っ
ている。詳細は、「現在配布可能な GNU ソフトウェア」を参照のこと。
* indent
`indent' は現在、GNU コーディング規則に従った C ソース・コードを
サポートする。以前よりも強化され、最もよく使われる形式の組み合わ
せをオプションで指定することができる。
C ソース・ファイルを調べたり、その中で使われる字下げのパラメータ
を探すために動作させるプログラムはほぼリリースできる状態にあるが、
完成させてくれる人が必要である。そのようなボランティア希望者は
`gnu@prep.ai.mit.edu' まで問い合わせていただきたい。
* `make'
GNU `make' バージョン 3.70 がリリースされている。エラー報告が改良
され、多くのバグが修正された。GNU `make' は、POSIX.2 の規格を完全
に準拠している。また、コマンドの並列実行、柔軟な暗黙的なパターン
規則、条件実行、強力なテキスト操作関数もサポートする。バージョン
3.64 で追加された機能として、変数定義に文字列を追加する一般的な構
文 `+=' をサポートしている。ベンダーから提供されている`make' が全
くない人のために、`make' プログラムを使う前に最初に `make' を作成
する`build.sh' というシェル・スクリプトが GNU `make' に付いている。
* Oleo
Oleo はスプレッドシート・プログラムである。X クライアントとして動
作したり、文字ベース端末のcurses ライブラリ上で動作する。現在のバー
ジョンは 1.5 である。最近、`gnuplot' 用と Embedded Postscript の
生成機能を追加した。
Texinfo 形式の Oleo マニュアルを書くことに興味のある方は Tom Lord
(`lord+@andrew.cmu.edu') へ連絡のこと。Oleo 関連のバグの報告先は、
`bug-oleo@prep.ai.mit.edu'。「現在配布可能な GNU ソフトウェア」を
参照のこと。
* Ghostscript
Ghostscript の現在のバージョンは 2.6.1 である。新しい機能として、
Ghostscriptが動作するプラットフォーム (X Window System と
Microsoft Windows) から提供されるフォントを扱えるようになったので、
その結果、画面表示の見栄えが良くなった。さらに、(`enscript'のよう
な) テキスト・ファイルの印刷や、Postscript形式の文書からテキスト
を抽出するユーテイリティ、Microsoft Windowsの信頼性のかなりの向上
と高速化、Microsoft C/C++ 7.0 向けのサポート、SPARCprinterを含む
多くの新機種プリンタ用と TIFF/F (ファクシミリ) ファイル形式のドラ
イバ、色空間機能 (パターンではない) を含むさらに多くの Postscript
Level 2 機能、Level 1 と Level 2 との動的な切り替え機能が改善され
た。
Ghostscript は、Postscript のコマンドを受け付けてプリンタへ直接出
力したり、X ウィンドウ上での描画や、プリンタ出力可能なファイルを
作成する。(あるいは、他のグラフィック・プログラムで操作できるよう
なビットマップ・ファイルを生成することも可能である。) Tim Theisen
(`ghostview@cs.wisc.edu') は、Ghostscriptの最上位で動作する
Ghostview (複数ページのファイルを扱うプリビュー) を作成した。
Russell Lang (`rjl@monu1.cc.monash.edu.au') は、Microsoft Windows
上で動作する Windows 版 Ghostview を作成した。
(Postscript 言語を扱いたくないクライアントのために) C 言語の呼び
出し可能なグラフィック・ライブラリも入っており 、IBM PC や EGA、
VGA、SuperVGA グラフィックを扱う IBM PC とその互換製品もサポート
している。(但し、これについては FSF のスタッフに尋ねないでほしい。
我々は PC を使っていないし、PC マシンを習得する時間もないからであ
る。)
Ghostscriptの次期リリースは 3.0 で、1994年初頭に配布できるように
したい。ソフトウェア特許のためにフリーに実現することのできないLZW
圧縮以外は、完全な Postscript Level 2 言語を実現するつもりである。
こういったプログラム作成に関わる禁止事項は、プログラミング自由連
盟 (League for Programming Freedom) で戦っている問題である。
* Smalltalk
GNU Smalltalk は、Smalltalk 言語の代表的な機能を実現しているが、
グラフィック機能やウィンドウ機能は入っていない。最近、誰かがこれ
らに着手したので、将来的にはリリースされるだろう。
* `groff'
James Clark は `groff' (GNU `troff' とその関連プログラム) を完成
させた。`groff' は C++ で記述されており、GNU C++ バージョン 2.3以
降を使ってコンパイルする。
`groff' で発見されたバグは修正するが、重要で新しい開発は現在予定
していない。しかし、`groff' ユーザには拡張コードを寄与するように
奨励している。最も必要とされる作業は、Texinfo 形式のドキュメント、
`grap' エミュレーション (グラフを組版するための `pic' プリプロセッ
サ)、`pm' のようなページ記述ポストプロセッサ (「`Computing
Systems'」 Vol. 2、No. 2 参照)、`pic' 用の ASCII 出力クラスであ
る。これを用いれば`pic' を Texinfo に統合することが可能になる。
バグを報告してくれた全ての人々に感謝する。
* Texinfo 3
Texinfo 3 パッケージには、GNU Emacs 用の拡張 Texinfo モードや清書
コマンドの新バージョン、`Texinfo Manual' 第2版が入っている。この
バージョンは、より完成度が高く、50 個以上の新しいコマンドを網羅し
ている。手で入力していた退屈な作業の自動化、ノードやメニューの生
成、更新コマンドが、現在の Texinfo モードに採用された。新しい清書
コマンドにはフォーマッタの`makeinfo'とInfoリーダの `info'が入って
いる。どちらも C 言語で記述されており、GNU Emacs に依存しないで単
体で動作する。
* 移植情報
GNU システムはまだ完成していないが、既に移植が開始可能である。これは、
未完成ながらも基本的に Hurd の移植性が高いためである。本当に移植すべき
システムは Mach と GNU C ライブラリであり、両方とも移植と利用のために
既に配布されている。
GNU は、品質の向上と、使いやすいオンライン兼プリンタ出力用のドキュメン
ト作成に時間を割いている。GNU マニュアルでは基礎的な概念について説明し、
各プログラムの全ての機能の使い方やコマンドの使い方例を示している。GNU
マニュアルは、Texinfoソース・ファイルとして配布されており、ハードコピー
用とメニュー指向の Info システムによるオンライン・ハイパーテキスト風の
表示用の両方を生成することができる。これらは我々のソフトウェアと共に提
供され、製本されたマニュアルとしても入手可能である。「FSF 注文票」を参
照のこと。
いくつかの GNU マニュアルには、ソフトカバーの本のように、本を開いたま
まにしておける綴じ方を採用した。これにより、綴目にしわが寄らずに机の上
に平らに置くことができる。それぞれの本には、背表紙の内部に布を使い、外
側には厚紙の表紙を付けて、もともとの紙表紙の本が破れたり、しわが寄らな
いようになっている。それ以外の GNU マニュアルも、別の技術で平らに開い
て置けるような綴じ方になっている。
各マニュアルの名前に後ろに付いているマニュアルの版やプログラムのバージョ
ン番号は、この小冊子が発行された時点のものである。
`Emacs Manual' (バージョン 19、第9版)は、GNU Emacsを使った編集方法につ
いて説明したものである。マニュアルには、アウトライン・モードや正規表現
の検索などの高度な使い方や、C++やTeXのような言語を使ったプログラム作成
のための特殊モードの使い方、`tags'ユーティリティの使い方、コードのコン
パイルや修正方法、キーの独自の割り当て方、その他の初歩的なカスタマイズ
方法も載っている。
`Emacs Lisp Reference Manual' (バージョン 19、第2.1版) は、プログラミ
ング言語 (GNU Emacs Lisp) について詳説したものである。データ・タイプ、
制御構造、関数、マクロ、構文表、検索と一致、モード、ウィンドウ、キーマッ
プ、マーカー、バイト・コンパイル、オペレーティング・システム・インタフェー
ス、等が載っている。
`Texinfo Manual' (バージョン 3、第2.19版) は、オンラインの Info ドキュ
メンテーションと版組みされたハードコピーの両方の生成に用いられる記述式
言語について説明したものである。表や箇条書、章、ノード、索引、相互参照
の作り方だけでなく、GNU EmacsによるTexinfoモードの使い方や誤りの見つけ
方も載っている。
`GAWK Manual' (バージョン 2.16、第0.16版) は、GNU 版 `awk' の使い方に
ついて説明したものである。`awk'を使ったことのない人を対象としている。
この強力な文字列操作言語の特徴は全て網羅されている。
`Make Manual' (バージョン 3.68、第0.43版) は、他のプログラムを部分的に
再コンパイルして使う GNU `make' プログラムについて説明したものであ。マ
ニュアルには、"makefile" の書き方、プログラムのコンパイル方法、プログ
ラムの個々の部分の依存関係を作る方法が載っている。初心者のための入門の
章や自動生成される依存関係に関する新しい節が設けられている。
`Debugging with GDB'マニュアル (バージョン 4.9、第4.09版) は、GNUデバッ
ガの使い方について説明したもので、デバッガの制御下におけるプログラムの
実行方法、プログラムの実行中のデータの表示や変更の方法、制御の流れの変
更方法、GNU Emacs 上でのGDBの使い方が載っている。
`Bison Manual' (バージョン 1.23、1993年12月版) は、C 言語のプログラム
に変換する Bison プログラム向けの自由文脈文法の書き方について説明した
ものである。構文解析について予備知識のないユーザを対象としている。
`Flex Manual' (バージョン 2.3.7、第1.03版) は、指定されたパターンを認
識する C 言語のプログラムを生成する`flex'プログラム用の字句解析定義の
書き方について説明したものである。字句解析について予備知識のないユーザ
を対象とする。
`Using and Porting GNU CC' は (バージョン 2.4、1993年6月版)、GNU C コ
ンパイラの実行、インストール、移植の方法について説明したマニュアルであ
る。
`Termcap Manual' (バージョン1.2、第2版) には「Termcapについてユーザが
知りたかったことの2倍」のことが書いてあるとよく言われる。これには、
termcap のデータベースの形式、端末の性能についての定義、端末の仕様の探
し方についての説明が載っている。このマニュアルは主にプログラマを対象と
する。
`Emacs Calc Manual' (バージョン 2.02、第2.02版) は、Calc の入門編と詳
細編の両方が載っている。一般演算子の使い方、Calc による代数や計算、そ
の他の数式の使い方、Calc の拡張方法について説明したものである。
`C Library Reference Manual' (バージョン1.07、1993年6月版 ) は、GNU C
ライブラリのほとんど全ての機能について説明したもので、Unixの呼び出しで
ある「ライブラリ関数」と「システム・コール」の両方が載っている。内容が
しっかりするまで、このマニュアルの印刷部数を抑えている。これはまだリリー
スしたばかりで、正誤情報の反映や改良が必要なので、そのような情報は
`bug-glibc-manual@prep.ai.mit.edu' まで送っていただきたい。
次のものを提供している。
* ソース・コードの入った CD-ROM (「ソース・コードCD-ROM」参照)
* コンパイラ・ツール・バイナリの入った CD-ROM(「コンパイラ・ツール・
バイナリ CD-ROM」参照)
* いくつかの GNU ソフトウェアの入った MS-DOSのフロッピー・ディスク
(「MS-DOSの配布」参照)
* (ソース・ファイルと実行形式の入った)GNU Emacsと GNU C コンパイラ
用の VMSテープ (「VMS Emacsとコンパイラ・テープの内容」参照)
ソース・ファイルも提供している。
* 4mm の DAT カートリッジ
* 8mm の Exabyteカートリッジ
* Sun QIC-24 カートリッジ (他のいくつかのシステムでも読み取り可)
* Hewlett- Packard 16トラック・カートリッジ
* IBM RS/6000 QIC-150 カートリッジ (他のいくつかのシステムでも読み
取り可) (RS/6000 Emacs テープには Emacs のバイナリも含む)
* 1600 bpi 9トラック・リール・テープ
Unix システム用の各種9トラック・テープとカートリッジ・テープの内容は
(Emacs用の実行形式も入っているRS/6000 Emacs テープ用の場合を除き) 同じ
で、媒体の種類だけが異なる。Texinfo 形式のマニュアル・ソース・ファイル
を含む。 バグ報告はいずれも適切な電子メイルのメイリング・リストへ宛て
ていただきたい(「フリー・ソフトウェアのサポート」参照)。
各種テープに入っているファイルによっては、テープにおさめるために`gzip'
を使って圧縮されている場合がある。それらの復元方法は各テープの冒頭に入っ
ている最上位のファイル `README' を参照のこと。`uncompress' と `unpack'
では機能しない !
各媒体の内容を記述している欄の、プログラム名の後ろに付くバージョン番号
は、この小冊子の発行時点のものである。配布テープを注文する際には、プロ
グラムが更新されている可能性があるのでバージョンが上がっていることがあ
る。
BinCD
バイナリCD-ROM
DemcsD
Demacs ディスケット
DjgppD
Djgpp ディスケット
EmcsT
Emacs テープ
LangT
言語テープ
SchT
Scheme テープ
SrcCD
ソース CD-ROM
UtilD
ひと揃いのユーティリティ・ディスク
UtilT
ユーティリテイ・テープ
VMSCompT
VMS Emacs テープ
VMSEmcsT
VMS Emacs テープ
WdwsD
Windows ディスケット
X11OptT
X11 (オプション)テープ
X11ReqT
X11 (必須)テープ
* `acm' (SrcCD、 UtilT)
acmは、X Window System下で動作する LAN指向の複数プレーヤーに対応
しており、空中戦のシミュレーション・プログラムである。プレーヤー
は、熱探査ミサイルや機関銃を使って、もう1人のプレーヤーと空対空で
交戦する。最終的には、これをさらに汎用目的で使えるようなフライト・
シミュレータにしたい。
* Autoconf (SrcCD、UtilT)
Autoconf はシェル・スクリプトを生成する。このシェル・スクリプトに
よりソース・コード・パッケージを自動的に構築する。ファイルを手で
修正しなくても、パッケージを Unix に似た多くのシステムに適合させ
ることができる。Autoconf は、テンプレート・ファイルに従って、ある
パッケージ向けの構築スクリプトを作成する。テンプレート・ファイル
には、そのパッケージで使われているオペレーティング・システムの特
徴が`m4' のマクロ呼び出し形式で列挙されている。ほとんどの GNU プ
ログラムが、現在この Autoconf で生成された構築スクリプトを使って
いる。
* BASH (SrcCD、UtilT)
GNU のシェルの BASH (Bourne Again SHell) は Unix の`sh'と互換性が
あり、`csh' と `ksh' の両方に拡張を施したものである。ジョブ制御機
能や、`csh' スタイル・コマンド履歴、readline ライブラリを介した
(Emacs や `vi' モードが組み込まれており、キーの再割り当てが可能で
ある) コマンド行編集機能が備わっている。
* `bc' (SrcCD、UtilT)
`bc' は会話型の任意精度の計算言語である。GNU `bc' は POSIX 1003.2
規格のドラフトに基づいて作られたものであるが、拡張が施されている。
変数名に2文字以上の指定が可能で、`else' 文があり、論理式を全て網
羅している。
* BFD (BinCD、LangT、SrcCD)
BFD (Binary File Descriptor、バイナリ・ファイル記述子) ライブラリ
を用いると、オブジェクト・ファイルを操作するプログラム (`ld' や
GDB など) から異なる形式のオブジェクト・ファイルを透過的に扱える
ようになる。BFD では移植性の高いインタフェースを提供しているので、
BFD に個々の形式の詳細を実際に与えるだけでよい。このような設計に
より、BFD を使っている全てのプログラムが COFF や ELF、ROSE といっ
た形式のサポートが可能になる。BFD には Texinfo 形式のドキュメント
も含まれている。
完全に安定していないので、目下のところ、BFDは個々に配布していない
が、それぞれを使っているパッケージには入れている。
* Binutils (BinCD、LangT、SrcCD)
binutils には、
`ar'、
`c++filt'、
`demangle'、
`gprof'、
`ld'、
`nlmconv'、
`nm'、
`objcopy'、
`objdump'、
`ranlib'、
`size'、
`strings'、
`strip' が入っている。
Binutils のバージョン 2 は、BFD ライブラリを採用するために完全に
書き換えられた。GNU リンカ `ld' は、多重定義のシンボルや未定義の
参照に対してソースの行番号を含むエラー・メッセージを表示するとい
う GNU リンカならではの特徴を備えている。`nlmconv' は、オブジェク
ト・ファイルを Novel NetWare でロード可能なモジュールに変換する。
`objdump' プログラムは、a29k、ALPHA、H8/300やH8/500、HP-PA、i386、
i960、m68k、m88k、MIPS、SH、SPARC、Z8000プロセッサ用のコードを逆
アセンブルしたり、BFDで解釈可能なあらゆるファイルの形式のシンボル
や再配置のデータを表示することが可能である。
* Bison (BinCD、LangT、SrcCD、VMSCompT)
Bison は `yacc' と上位互換性がある構文解析を生成する代替ソフトウェ
アで、数々の特徴が備わっている。`Bison Manual' とリファレンス・カー
ドのテキスト・ソース・ファイルも入っている。
* GNU Cライブラリ (LangT、SrcCD)
ライブラリは ANSI C-1989 と POSIX 1003.1-1990 に従っており、POSIX
1003.2 ドラフト 11.2 で提案されたほとんどの関数を備える。4.4 BSD
C ライブラリと上位互換で、 System V の多くの関数を含み、さらに
GNU の拡張が施されている。
バージョン1.07 では GNU 標準の `configure' スクリプトを採用してお
り、SunOS 4.1 の動作する Sun-3 (SunOS 4.1) と Sun-4 (SunOS 4.1と
Solaris 2)、4.3 BSD の動作する HP 9000/300 (4.3 BSD) と SONY News
800 (NewsOS 3 または4)、MIPS DECstation (Ultrix 4)、DEC Alpha
(OSF/1)、i386/i486 (System V、SVR4、BSD、386BSD、NetBSD、SCO 3.2、
SCO ODT 2.0)、Sequent Symmetry i386 (Dynix 3) 上で動作する。新し
い`GNU C Library Reference Manual' のTexinfo形式のテキスト・ソー
ス・ファイルが入っている。
* GNU Calc (EmcsT、SrcCD)
Calc (Dave Gillespie が Emacs Lisp にて作成) は、GNU Emacs の一部
で動作し、拡張性のある高性能電卓にもなる数学ツールである。共に提
供される `Calc Manual' とリファレンス・カードは入門と詳細のいずれ
にも対応している。 Calcを単純な四則演算の電卓としてのみ利用しても
よいが、さらに、数式形式あるいは逆ポーランド形式(スタックを基にし
ている)の入力方法の選択、対数、三角関数、金融関数、任意精度、複素
数、ベクトル、行列、日付、時間、無限大、集合、数式処理における簡
単化、微分、積分などの数式ツールとして利用可能である。Calc も
`gnuplot' へ出力する。
* GNU Chess (UtilT、SrcCD)
GNU Chess は、人間とプログラムとがチェスを楽しむプログラムである。
これは、全体が C 言語で記述されており、PC や Cray-2、 その他の数
多くのマシンに移植されている。また、それぞれに保守担当者がついて
いるわけではないが、Windows や MS-DOS を含むその他のオペレーティ
ング・システムへも移植されている。テキストと X の両方の表示インタ
フェースがある。
無駄な手に関するヒューリスティックや時間と共に成熟していくハッシュ
表、ヒストリ・ヒューリスティック(初期の殺し手のヒューリスティック
を別の形式にしたもの)、静的評価のキャッシュ、プログラムの序盤で数
手にわたって早く着手することのできる洗練されたデータベースなどが
GNU Chess の特徴である。
GNU Chess は、1992 年 8 月に開催されたロンドンの Uniform Platform
というイベントで優勝した。9 つのチェス・プログラムを同一マシン上
で実行して競った。
GNU Chess は主に、Free Software Foundation に代わって Stuart
Cracraft がサポートしている。
Stuart Cracraft
P.O. Box 2841
Laguna Hills, CA
USA
電話番号: (714) 770--8532
電子メイル: `cracraft@ai.mit.edu'
* CLISP (EmcsT、SrcCD)
CLISP は、Bruno Haible と Michael Stoll が作成した Common Lisp で
ある。「`Common LISP: The Language (1st edition)'」 で記述された
Common Lispの規格にほぼ従っている。CLISP にはインタープリタ、バイ
ト・コンパイラ、数機種のマシン用の画面エディタが入っている。CLISP
にはわずか 1.5M バイトのメモリで動作し、Atari ST、Amiga 500-2000、
ほとんどの MS-DOSシステムと OS/2 など数多くのマイクロコンピュータ
上で、さらに Unix ワークステーション (Linux やSunOS (SPARC)、
Sun386、HP-UX (HP 9000/800)、他)上で動作する。
* `cpio' (UtilT、SrcCD)
`cpio' は、SVR4 `cpio'の全ての機能を備えた代替のアーカイブ・プロ
グラムであり、POSIX 1003.1 `ustar' 規格に準拠している。
* CVS (UtilT、SrcCD)
CVS (Concurrent Version System) は、複数の開発者や、複数のディレ
クトリ、複数のグループ環境においてソフトウェアの修正やリリースを
制御する。 RCS バージョン 4 以降との組み合わせが最もうまく動作す
る。それ以前の古い RCS フォーマットを解析すると、CVS の特徴を活か
すことができない。「CVS-II: Parallelizing Software Development」、
Berliner、Brian共著、「`Proceedings of the Winter 1990 USENIX
Association Conference'」を参照のこと。
* `dc' (UtilT、SrcCD)
`dc' は RPN 電卓である。GNU `bc' は、実行のために別個の `dc' プロ
グラムを必要としない。`dc'のこのバージョンは、最終的には `bc' パッ
ケージとマージされる予定である。
* DejaGnu (LangT、SrcCD)
DejaGnuは、全てのテストの単一のフロントエンドを提供する他のプログ
ラムをテストするためのフレームワークである。DejaGnuフレームワーク
の持つ融通性と一貫性により、どのようなプログラムでもそれのテスト
の作成が容易になる。DejaGnu と共に `expect' と Tcl が付いてくる。
* Diffutils (UtilT、SrcCD)
GNU `diff' は、数種類の柔軟性のある形式で、行ごとの変更点を表示し
ながらファイルを比較する。昔からある Unix のそれらと比較するとか
なり高速に動作する。この「diffutils」 の配布には、`diff'、`diff3'、
`sdiff'、`cmp'が入っている。
* DJGPP (BinCD、DjgppD)
DJ Delorieは、MS-DOS が動作する i386 プラットフォームに、GCC/G++
2.5.7 を移植した。DJGPP パッケージには、シンボリック・デバッガの
付いた 32ビットの80386 DOS エクステンダや開発ライブラリ、さらに
GNUバイナリ・ユーティリテイや `flex'、GAS、Bison へ移植したものが
入っている。完全なソース・コードが提供される。
DJGPP では、SVGA (1024x768 迄)や、XMS と VDISK のメモリ割り当て、
`himem.sys'、VCPI (QEMM、DESQview、386MAXなど)、DPMI (Windows 3.x、
OS/2、QEMM、QDPMIなど)をサポートする。
DJGPP は、`ftp.clarkson.edu' サイトの`/pub/msdos/djgpp' ディレク
トリから FTP にて入手可能である。
`djgpp-request@sun.soe.clarkson.edu' に自分の電子メイル・アドレス
を知らせると DJGPP のメイリング・リストに加入できる。
詳細は、この節の中の GCC の記述を参照のこと。
* `dld' (LangT、SrcCD)
`dld' は、W. Wilson Ho が作成したダンナミック・リンカである。
`dld'ライブラリを使うプログラムは、そのバイナリの実行中に、動的に
オブジェクト・ファイルをロードできるようになる。現在サポートされ
ているマシンは、VAX (Ultrix)、Sun 3 (SunOS 3.4 and 4.0)、SPARC
(SunOS 4.0)、Sequent Symmetry (Dynix)、Atari STである。
* `doschk' (UtilT、SrcCD)
このプログラムの意図は、ソフトウェア開発者を助けるユーティリティ
に提供することである。14 文字までのファイル名を扱うSystem V のプ
ラットフォーム上と、11文字までのファイル名を扱う MS-DOS 上とのソー
ス・ファイル名を確実に区別できるものを生成する。
* `ecc' (UtilT、SrcCD)
`ecc'は、Reed-Solomonアルゴリズムを用いたエラー訂正チェック・プロ
グラムである。255バイトのブロック単位で3バイト・エラーを訂正し、
より厳密なエラーを検出することができる。
* Elib (EmcsT、SrcCD)
これは、Emacs Lisp 関数の小さなライブラリである。これにはAVL木構
造と二重連結リストを使うためのルーチンが入っている。
* `elvis' (UtilT、SrcCD)
`elvis' は Unix のエディタ `vi'/`ex' のクーロンである。`vi'/`ex'
の表示と行モードの両方のほとんど全てのコマンドをサポートする。
`elvis' は BSD、System V、Xenix、Minix、MS-DOS、Atari TOS 上で動
作しているが、他のプラットフォームへの移植は容易であろう。
* GNU Emacs 18 (DemcsD、EmcsT、SrcCD、VMSEmcsT)
1975 年に Richard Stallman は最初の Emacs を開発した。それは拡張
性に富み、カスタム化が可能なリアルタイム表示のエディタであった。
彼が 2番目に実現した Emacs が GNU Emacs である。(容易にエディタへ
統合するために) 拡張性に富んだ真のLisp を提供し、MIT の X Window
System用の特別なインタフェースも用意されている。強力な基本コマン
ド群に加えて、その他の人気のある 3 つのエディタ (vi、EDT (DEC の
VMS エディタ)、Gosling (別称 Unipress) Emacs) をエミュレートする
ような拡張性も備えている。その他多くの機能があり、完全な計算処理
の支援環境を形成する。GNU Emacs は、`GNU Emacs Manual' や `GNU
Emacs Lisp Reference Manual'、リファレンス・カードで説明されてい
る。これら 3 つのドキュメント・ファイルはソフトウェアと共に提供さ
れる。
多くの Unix システム上で動いているGNU Emacs (バージョン 18.59 時
点)をハードウェア別に示す。
Alliant FX/80 と FX/2800、Altos 3068、Amdahl (UTS)、Apollo、AT&T
(3B マシンと 7300 PC)、Bull DPX/2 (2nn と 3nn)、CCI 5/32 & 6/32、
Celerity、Convex、DG Aviion、Digital (DECstation 3100と5000
(PMAX)、Mips、BSD や System V や VMSが動作する VAX)、Elxsi 6400、
Encore (DPC、APC、XPC)、Gould、HP (9000シリーズ200/300/700/800、
ただし500では動作しない)、HLH Orion(オリジナルと 1/05)、IBM (AIX
が動作するRS/6000、4.2 と AIX が動作する RT/PC、386が動作するPS/2
(386のみ))、ISI (Optimum Vと 80386)、Intel 860と80386 (BSD、Esix、
SVR3、SVR4、SCO、ISC、IX、AIX、他 (「MS-DOSの配布」と「マイクロコ
ンピュータ用のフリー・ソフトウェア」参照))、Iris (2500、2500
Turbo、4D)、Masscomp、MIPS、Motorola Delta 147 と 187 Dual、
National Semiconductor 32000、NCR Tower 32 (SVR2 と SVR3)、NeXT
(Mach)、Nixdorf Targon 31、Nu (TI と LMI)、pfa50、Plexus、Prime
EXL、Pyramid (オリジナルと MIPS)、Sequent (Balance と Symmetry)、
SONY News (m68k と MIPS)、Stride (システム・リリース2)、Sun (386i
を含む全ての機種)、全てのSunOSバージョン) の動作するマシンと
Solaris (一部のバージョン) の動作するマシン、Tadpole、Tahoe、
Tandem Integrity S2、Tektronix (16000 と 4300)、Triton 88、
Ustation E30 (SS5E)、Whitechapel (MG1)、Wicat。
動作している GNU Emacs (バージョン 18.59 時点)をオペレーティング・
システム別に示す。
AIX (RS/6000、RT/PC、386-PS/2)、BSD (バージョン 4.1、4.2、4.3)、
DomainOS、Esix (386)、HPUX (HP 9000 シリーズ 200/300/700/800、た
だし500では動作しない)、ISC (386)、IX (386)、Mach、Microport、
NewsOS (Sony m68kとMIPS)、SCO (386)、SVR0 (Vaxと AT&T 3B マシン)、
SVR2、SVR3、SVR4、Solaris 2.0、SunOS、UTS (Amdahl)、Ultrix (バー
ジョン 3.0と4.1)、Uniplus 5.2 (Dual マシン)、VMS (バージョン 4.0、
4.2、4.4、5.5)、Xenix (386)。
* GNU Emacs 19 (EmcsT、SrcCD)
GNU Emacs 19 は他の Emacs の最近の派生物と違って、X Window System
上のものと同じように文字だけをサポートしている端末上でも作業を継
続している。Emacs 19 の新しい機能を次に示す。複数の X ウィンドウ
機能 (Emacs でのフレーム) (ミニバッファを独立させたりX ウィンドウ
ごとにミニバッファを割り付けることが可能)/バッファ内のテキストの
領域に関する連想属性リスト/その属性で定義される複数のフォントと
色/関数キー、マウス・クリック、マウス・イベントの処理の簡素化と
改良/X の選択処理 (clipboard 選択を含む)/ポイントやマウスがある
範囲外へ移動した場合に実行されるホック/キー割り当てによるポップ
アップ・メニューの定義/スクロール・バー/変更前後のホック/ソー
ス・レベルの GNU Emacs Lisp のデバッグ/ヨーロッパ文字セットのサ
ポート/浮動小数点数/新しいバッファ割り当て (バッファの消去時に、
その領域をシステムに戻せる新しいメカニズムを採用)/X リソース・マ
ネージャとのインタフェース機能/GNU 構築システムのサポート/高品
質のRCSサポート/更新された多くのライブラリ。
Emacs 19.22 は次に示すマシン上での動作が報告されている。
Bull DPX/2 2nn と 3nn (SVR3) と sps7 (SVR2)、Clipper、Cubix QBx
(SysV)、DEC MIPS (Ultrix 4.2 と OSF/1、ただしVMSでは動作しない)、
Motorola Delta 147 と 187 (SVR3、SVR4、m88kbcs)、Elxsi 6400
(SysV)、Gould Power Node と NP1 (BSD 4.2、4.3)、Honeywell XPS100
(SysV)、HP9000 シリーズ 200/300/700/800 (BSD 4.3 または HP-UX 7、
8、9)、i386 と i486 (386BSD、AIX、BSDI/386、FreeBSD、Esix、ISC、
Linux、NetBSD、ODTの動作する SCO3.2v4、SysV、Xenix)、RS6000 (AIX
3.2)、RT/PC (AIX または BSD)、Iris 4D (Irix 4.xと5.x)、National
Semiconductor 32K (Genix)、NeXT (BSD または NeXTStep 3.0 の動作す
る Mach 2 )、Prime EXL (SysV)、Pyramid (BSD)、Sequent Symmetry
(BSD)、Sun 3 と 4、SPARC 1/1+/2/10、Classic (SunOS 4.0、4.1、
Solaris 2)、Tadpole 68k (SysV)、Tektronix XD88 (SVR3) と 4300
(BSD)、Titan P2 と P3 (SysV)。
オペレーティング・システム別で示すと、次のようになる。
AIX (i386、RS6000、 RT/PC)、BSD 4.1/4.2/4.3 (i386、 Gould Power
Node と NP1、HP9000 シリーズ 300、NeXT、Pyramid、Symmetry、
Tektronix 4300、RT/PC)、Esix (i386)、Genix (ns32k)、HP-UX 7/8/9
(HP 9000 シリーズ 200/300/700/800、ただし500では動作しない)、Irix
4 と 5 (Iris 4D)、ISC (i386)、Linux (i386)、NetBSD (i386、HP9000
シリーズ 300)、Mach 2 & 3 (i386、NeXT)、SCO 3.2v4 (i386)、SVR2
(Bull sps7)、SVR3 (Bull DPX/2 2nn と 3nn、Motorola Delta 147 と
187、Tektronix XD88)、SVR4 (Motorola Delta 147 と 187)、Solaris 2
(SPARC 1/1+/2/10、Classic)、SunOS 4.0と4.1 (Sun 3 と 4、SPARC
1/1+/2/10、Classic)、Ultrix 4.2 (DEC MIPS)、 Xenix (i386)。
Emacs 18 で支援された他のシステム構成も、2〜3 個所を修正すれば動
作するはずである。ユーザとして、様々なシステムを使った経験につい
て我々に情報をいただきたい。リストを増やしたいので。
* `es' (UtilT、SrcCD)
これは `rc' を基にした拡張性に富んだシェルであるが、1階関数、構文
スコープ、割り込みシステム、豊富な戻り値 (つまり、関数が数値以外
の値を返すことができる) を含む多くの特徴が備わっている。`rc' (訳
注: Bell研の Plan 9 に採用されている標準のシェル) のように、特に、
引用規則がC言語や Bourne シェルよりもずっと簡素なので、会話型での
利用やスクリプトの作成の両方に非常に便利である。
* `expect' (LangT、SrcCD)
`expect' はスクリプトを実行して、プログラムとの対話を管理する。
TclとDejaGnuに付いて配布される。
* `f2c' (LangT、SrcCD)
`f2c' は、Fortran--77のソース・ファイルを C 言語または C`++' 言語
へ変換する。そうすれば、GCCでコンパイルすることができる。
* Fax (UtilT、SrcCD)
Faxは、フリーに再配布可能なファックス・スプーリング・システムであ
る。これは、MIT AI ラボからフリーに配布されているもので、ネットワー
クに接続されている Unix システムと G3 ファックスとの送受信が可能
である。これには新しいEIA-592 非同期ファクシミリDCE制御規格の
Service Class 2 をサポートするファックス・モデムが必要である。
* Fileutils (UtilT、SrcCD)
Fileutils は次に示すファイルを操作する。
`chgrp'、
`chmod'、
`chown'、
`cp'、
`dd'、
`df'、
`dir'、
`du'、
`install'、
`ln'、
`ls'、
`mkdir'、
`mkfifo'、
`mknod'、
`mv'、
`mvdir'、
`rm'、
`rmdir'、
`touch'、
`vdir'。
* `find' (UtilT、SrcCD)
`find' は、会話時にあるいはシェル・スクリプト内で頻繁に用いられる
コマンドである。ある基準に一致したファイルを検索し、任意の操作を
行なうような場合である。このパッケージには`xargs' や `locate' も
入っている。
* `finger' (UtilT、SrcCD)
昔のネットワークが整備されたサイトでは、コンピュータを使っている
人が30人以上いた場合でも、コンピュータは 1〜2台しかなかった。サイ
トAにいるあるユーザがサイトBにログインしているユーザについて知り
たい場合は、簡単なプログラムを実行して誰がログインしているかをサ
イトBのホスト・マシンに問い合わせる。
小さめのワークステーションを使う場合の最近のサイトでは、1台につき
数人のユーザ(おそらく1人だけ)が複数のホスト・マシンで構成される。
これでは、あるログイン・ユーザを探すのに各ホスト・マシン全てに問
い合わせなければならないので、別のサイトのログイン・ユーザをも探
そうとしてしまう。
既存の finger プログラムの完全な代替である GNU Finger は、この問
題を解決している。多くのホスト・マシンをかかえるサイトでは、ホス
ト・マシンのうちの 1 つを finger サーバ・ホストに指定することが可
能である。そうすれば、そのホスト・マシンで、そのサイトの他のホス
ト・マシンへログインしているユーザに関する情報を集めることが可能
となる。サイト A のユーザがサイト B にログインしているユーザの情
報を得たいのであれば、そのサイトのどこかのマシンに問い合わせるだ
けで完全な情報が返ってくる。
* `flex' (LangT、SrcCD)
`flex' は、Unix の `lex' (字句解析生成プログラム)とほぼ互換性があ
る。Lawrence Berkeley 研究所の Vern Paxson が作成した。`flex' は、
`lex' と比べて非常に効率の良い字句解析プログラムを生成する。`Flex
Manual' とリファレンス・カードのテキスト・ソース・ファイルも入っ
ている。
* Fontutils (UtilT、SrcCD)
Fontutils は、Ghostscript あるいは TeX が扱うフォントの作成が可能
である。まずイメージを読み取り、ビットマップをアウトラインに変換
する。汎用の変換プログラムや他のユーティリティも入っている。
* GAS (BinCD、LangT、SrcCD)
GNU アセンブラは、BFD ライブラリを使うために書き直した。サポート
しているシステムを次に示す。
Sun 3/4/SPARC (SunOS 4.1 または Solaris 2)、
i386 (AIX、386BSD、BSDI/386、Linux)、
m68k (BSD、HP-UX、または Convergent Technologies SysV)、
MIPS (Ultrix、Irix)、
Hitachi H8/500、
VAX (BSD、Ultrix、VMS)。
次のターゲット・マシン向けにクロスアセンブルが可能である。
i386 (SCO、 go32 MS-DOS/DJGPP)、
ebmon29k、
Hitachi H8/300、
i960 (COFF)、
MIPS ECOFF (Ultrix、Iris、MIPS Magnum)、
Nindy 960、
vxworks (68k または 960)、
Zilog Z8000。
* GAWK (LangT、SrcCD)
GAWK は System V Release 4 版の `awk' と上位互換である。`GAWK
Manual' のテキスト・ソース・ファイルも入っている。
* GCC (BinCD、DjgppD、LangT、SrcCD)
GNU C コンパイラはかなり移植性の良い最適化プログラムで、次の機能
を持っている。レジスタの自動割り当て、共通部分式の削除、ループ内
の不変式のループ外への移動、誘導変数の最適化、常数の伝搬や複製の
伝搬、スタックに積んだ関数引数の遅延回復、末尾再帰関数最適化、イ
ンライン関数の展開とフレーム・ポインタの削除の統合、命令スケジュー
リング、ループの展開、遅延スロットの活用、末端関数の最適化、常数
の伝搬や複製の伝搬、定数との乗算最適化、基本ブロック間での多少の
共通部分式の削除 (CSE)(命令スケジューリングや遅延スロットの活用は
全てのマシン記述に用意されているわけではないが)、命令に対する属性
の割り当て機能、ターゲット・マシンの仕様を記述したファイルから自
動的に生成される様々な局所最適化コード、等である。
GCC 2 では、64 ビット演算のコードも生成可能になっている (`long
long' 型)。拡張浮動小数点(`long double' 型)は、68k マシン上ではサ
ポートされており、その他のマシンも今後サポートしていく予定である。
GCC は フルセットANSI C 、古い C、GNU C 拡張言語をサポートしてい
る。GNU C は関数の入れ子や、関数をまたがる goto、ラベルのアドレス
の取得をサポートしている。
GCC は、適切なアセンブラがあれば a.out、COFF、ELF、OSF-Roseファイ
ルを生成することができる。デバッグ情報は、BSD スタブ、COFF、ECOFF、
スタブ付きの ECOFF、DWARF などの形式で生成可能である。
GCCで生成するコードを次に示す。
a29k、Alpha、ARM、Convex cN、Clipper、Elxsi, H8300、HP-PA (1.0と
1.1) i370、i386、i486、i860、i960、m68k、m68020、m88k、MIPS、
ns32k、Pyramid、ROMP、RS6000、SH、SPARC、SPARClite、VAX、we32k。
オペレーティング・システム別に示す。
AIX、 ACIS、 AOS、 BSD、 Clix、 Ctix、DG/UX、 Dynix、 Genix、
HP-UX、 ISC、 Irix、 Linux、 Luna、 LynxOS、 Mach、 Minix、NeWSOS、
OSF、 OSF-Rose、 RISCOS、 SCO、 Solaris 2、 SunOS 4、 SystemV、
Ultrix、 Unos、VMS。
(Tron 向けの新しい移植と同様、) Alliant や Tahoe、Spur 用の古い
(バージョン1での)マシン記述は動作しない。しかし、その作業を行ない
たい人のために配布の中にそれらをまだ入れてある。
GCCの構築方法を使うと、クロスコンパイラを作成する場合は、ホスト・
マシンと同じ機種のターゲット・マシン用のコンパイラを作成する場合
と同様の手間で容易に行なうことができる。バージョン2 では、より一
般的な関数呼び出し形式もサポートしている。引数を「参照渡し」にし、
スタック上に引数の場所を予め確保しておくことができる。SPARC マシ
ン上の GCC 2 では、構造体の引数や戻り値にSPARCの慣習を採用してい
る。
バージョン 2 のコンパイラは、3 つの言語 (C、C++、Objective C) を
サポートする。ソース・ファイル名の拡張子から、あるいはコンパイラ・
オプションから言語を選択するようになっている。Objective C のフロ
ントエンドは NeXT 社から寄付された。Objective C プログラムの実行
に必要な実行時ルーチンは現在、GCC と共に配布される (これには
`object' の派生物である Objective C クラスは一切含まない)。
`cfront' (AT&T コンパイラ) は ANSI 規格とは異なってきているので、
G++ では、`cfront' (AT&T コンパイラ) ではなく、発展しつつある
ASNI 規格にできる限りあわせている。
GCC のマニュアル (`Using and Porting GNU CC') のテキスト・ソース・
ファイルはコンパイラと共に提供されている。このマニュアルは、GNU C
コンパイラの起動方法、インストール方法、新しい CPU への移植方法が
載っている。コンパイラの新しい機能や非互換機能について説明してい
るが、C 言語に馴染みのない人は C 言語に関する良書も必要になるだろ
う。
* GDB (BinCD、LangT、SrcCD)
現在、BFD (訳注: バイナリ・ファイル記述子) に従って、オブジェクト・
ファイルとシンボル・テーブルを読み込む。そのために、GDB が 1 つあ
れば、複数のオブジェクト・ファイル形式 (例えば a.out や COFF) の
オブジェクトをデバッグすることが可能となっている。その他の新しい
機能として、コマンド言語の改良、シリアル・ラインや TCP/IP 上のリ
モート・デバッグ、ウォッチ・ポイント (式の値が変更されたらブレー
クする) がある。GCC バージョン 2 を使った場合の割り込み処理や
SunOS の共有ライブラリのサポート、C++ の多重継承は、GCC バージョ
ン 2 を使った場合のみ支援されている。
コマンド行インタープリタだけでなく、X と GNU Emacs の両方のGDBへ
のユーザ・インタフェースが使用可能である。
GDBは、シミュレータ・ライブラリに対する標準のリモート・インタフェー
スを使っている。(これまでのところ)ライブラリには、Zilog Z8001/2
や Hitachi H8/300、H8/500、Super-H 用のシミュレータが入っている。
GDB は、クロスデバッグも可能である。GDB で、あるプラットフォーム
の「ターゲット」とは、対象プログラムをそこで実行したり、そのマシ
ンのためにクロスデバッグできるということを意味している。GDB で与
えられたプラットフォームを「ホスト」にすることができるということ
は、そこで GDB を作成することが可能であるが、必ずしもデバッグ対象
プログラムをデバッグできるとは限らないことを意味する。GDB は次に
示すマシンをサポートしている。
* ターゲットとホスト …
DEC Alpha (OSF/1)、Amiga 3000 (Amix) や DECstation 3100 と
5000 (Ultrix)、 HP 9000/300 (BSD)、 IBM RS/6000(AIX)、 i386 (BSD、
SCO、Linux、LynxOS)、 Motorola Delta m88k (System V)、 NCR 3000
(SVR4)、 SGI Iris (Irix V3とV4が 動作するMIPS)、 SONY News
(NewsOS 3.x)、 Sun-3 と SPARC (SunOS 4.1 または Solaris 2.0)、
Ultracomputer (Sym1 が動作する 29k)。
ターゲットのみでホストにはならない …
i960 Nindy、AMD 29000 (COFFと`a.out')、富士通 SPARClite、日
立 H8/300、m68k と m68332。
* ホストのみでターゲットにはならない …
Intel 386 (Mach)、IBM RT/PC (AIX)、HP/Apollo 68k (BSD)。
さらに、DEC を含む MIPS 搭載マシンのほとんどのベンダーが使うコン
パイラで生成されるシンボル・テーブルは、GDB 4 ならば解釈すること
ができる。(このシンボル・テーブルは、他ではどこでも使っていない形
式ではあるが。) 「`Debugging with GDB'」とリファレンス・カードの
テキスト・ソース・ファイルも入っている。
* `gdbm' (LangT、SrcCD)
`gdbm' ライブラリは、伝統的な `dbm' と `ndbm' ライブラリの GNU 版
代替品である。ハッシングを用いて高速検索が可能なデータベースを実
現する。`gdbm' は両方の関数形式をサポートしているが、(Unix とは違っ
て) データベースのファイルの中に無駄な空間を作らない。
* Ghostscript (UtilT、SrcCD)
Ghostscript は GNU のグラフィック言語である。Postscript 言語とほ
ぼ完全な互換性を持つ (「プロジェクト GNU の進捗報告」参照)。
* Ghostview (UtilT、SrcCD)
Ghostview は Ghostscript インタープリタを X11 上で使うためのユー
ザ・インタフェースである。Ghostview と Ghostscript が協調して動作
する。Ghostview はウィンドウを作成し、そこで Ghostscript が描画す
る。MS-WindowsへのGhostviewの移植版もある。
* `gmp' (LangT、SrcCD)
GNU MP は、任意精度の符号付き整数に関する有理数演算を行なうライブ
ラリである。豊富な関数が用意されており、全て統一されたインタフェー
スを有している。
* GNATS (UtilT、SrcCD)
Gnats (GNats: A Tracking System) はバグ追跡システムである。これは、
電子メイルでトラブル・レポートを中央のサイトや組織で受け取り、そ
の解決方法について電子メイルで協議するというパラダイムに基づいた
システムである。今のところ、ソフトウェア・バグ追跡システムとして
主に用いられるが、十分に汎用化されているので、システム管理の問題
やプロジェクト管理、等の様々なアプリケーションを扱うことができる
だろう。
* GnuGo (UtilT、SrcCD)
GnuGo は囲碁 (Wei-Chi) ゲームであるが、まだ強くない。
* `gnuplot' (UtilT、SrcCD)
`gnuplot' は、数式やデータをプロットするための対話型プログラムで
ある。曲線(2次元)と面(3次元)の両方を扱う。念のために、gnuplot プ
ログラムは GNU プロジェクトで作成したものではなく、名付けたもので
もない。単なる偶然である。
* `gperf' (LangT、SrcCD)
`gperf' は、「完全 (perfect)」ハッシュ関数の表生成ユーティリティ
である。実際には 2 つのバージョンの `gperf' があり、1つは C言語で
書かれ、もう1つは C`++' 言語で書かれている。いずれも Cまたは C++
でハッシュ関数を生成する。
* GNU Graphics (UtilT、SrcCD)
GNU グラフィックは、ASCIIデータやバイナリ・データから plot ファイ
ルを生成する一連のプログラムである。Tektronix 4010、Postscript、X
Window System、またはそれと互換のデバイスをサポートする。`spline'
プログラムの代替え、`graph' や `plot' を用いたシェル・スクリプト
の例、統計ツールキットの追加、インストール用 `configure' の採用と
いった特徴があり、ln03やTekniCAT TDBファイル形式での出力もサポー
トする。
既存の移植部分に関して再テストが必要である。SPARCtation 以外の移
植やテストの支援が可能な人は、Rich Murphey (`Rich@rice.edu') まで
連絡していただきたい。
* `grep'/`egrep'/`fgrep' (UtilT、SrcCD)
`[ef]grep' プログラムは、Unix の同名プログラムの GNU 版である。こ
れらは従来の Unix 版よりもかなり高速に動作する。
* `groff' and `mgm' (UtilT、SrcCD)
`groff' は文書処理システムで、 `troff'や`pic'、`eqn'、`tbl'、
`refer'、マクロの `-man'、`-ms'、`-mm'だけでなく、 Postscript、
TeX dvi 形式、タイプライタのような文字を出力するデバイスなどの各
種ドライバがある。また、Berkeley版の `me' マクロの修正版やX11用の
`xditview' というプリビュアの拡張版も入っている。
`mgm'は、`groff'用のマクロ・パッケージである。DWB `mm' マクロとほ
ぼ互換で、幾つかの拡張を施してある。
* `gzip' (DjgppD、EmcsT、LangT、SrcCD、UtilT)
我々の配布内容には、圧縮されているものがある。そのようなファイル
を復元できるように、テープと FTP サイトにそのソフトウェアを収めて
いる。それらのファイルを復元するために、テープと FTP サイト上に、
`gzip'ソフトウェアを入れている。`compress' に関わる特許問題のため
に、我々は別の圧縮プログラム として `gzip' に切り替えつつある。
`gzip' は LZW 圧縮ファイルを復元することができるが、圧縮には別な
アルゴリズムを採用し、一般に良い結果が得られている。また、System
Vの `pack' プログラムを使って圧縮されたファイルも復元することがで
きる。
* `hello' (UtilT、SrcCD)
GNU `hello' プログラムは、親しみやすく友好的な挨拶文を生成する。
使えないだろうと思っていた古典的なコンピュータ科学のツールを、プ
ログラマ以外の人でも使いこなせる。なぜならば、これ自体は GNU 一般
公的使用許諾で保護されており、誰もが自由に共有し、変更が可能だか
らである。
本当に有用なプログラムによくあるように、`hello' は組み込みのメイ
ル・リーダを提供している。
* `hp2xx' (UtilT、SrcCD)
GNU hp2xx は HP-GL ファイルを読み取り、全ての描画コマンドを基本ベ
クタに再構成したあと様々なベクタやラスタ出力形式に変換する。また、
HP-GLプリビュアも入っている。現在、サポートされているベクタ形式に
は、Encapsulated Postscriptや Uniplex RGIP、メタフォント、各種の
TeX関連の特殊ファイル、取り込み用の簡素化された HP-GL (線描画のみ)
がある。ラスタ形式には、IMG、PBM、PCX、HP-PCL (Deskjet と DJ5xxC
サポートを含む) があり、サポートされている。プリビュアは、X11
(Unix)やOS/2 (PM とフルスクリーン)、MS-DOS (SVGA、VGA、HGC)上で動
作する。
* `indent' (UtilT、SrcCD)
GNU `indent' は、フリーに再配布可能な BSD プログラムを GNU 版に修
正した同じ名前のものである。既定値では、 GNU コーディング規則に従っ
た C ソース・コードへフォーマットする。しかし、オプションで指定す
れば、もともとのバージョンの既定値の形式や別の形式も可能である。
* `ispell' (UtilT、SrcCD)
ispell は、認識されない単語を発見し、代替候補として「あたりをつけ
て」推測する会話型の綴り字チェックプログラムである。システム辞書
とユーザ辞書を用いることができる。単体で使う場合のインタフェース
とGNU Emacs用のインタフェースの両方が配布されている。
* JACAL *FSFからは配布されていない*
JACAL は数式処理システムで、定数や変数、根基、代数関数、微分、ホ
ロノミック関数から構成される一価関数や多価関数の代数式の操作や簡
単化を対象とする。さらに、これらのオブジェクトを対象としたベクト
ルや行列もある。
JACAL は Scheme で記述されてり、Aubrey Jafferが作成した。IEEE
P1178 や R4RS に準拠した C で記述されたバージョンの Scheme (「SCM」)
が JACALと共に配布されている。SCM は、Amiga や Atari-ST、MS-DOS、
NOS/VE、VMS、Unix、その他の類似のシステム上で動作する。SLIB は
JACAL が扱う移植性の良い Scheme ライブラリである。JACAL、SLIB、
SCM のソース・ファイルは、`nexus.yorku.ca' マシンの
`/pub/scheme/new' ファイルや`altdorf.ai.mit.edu' マシンの
`/archive/scm' ファイル、`prep.ai.mit.edu' マシンの
`/pub/gnu/jacal' ファイルから、anonymous FTP で 入手可能である。
FSF では、どのような媒体ででも JACAL を配布していない。IBM PC 用
のフロッピー・ディスクでソース・ファイルと実行ファイルを希望する
場合は、次の所へ $99.00 を送ればよい (訳注: これは米国内対象の料
金である)。
* `less' (UtilT、SrcCD)
`less' は `more' や `pg' に似ており、ページごとに読む表示フィルタ
であるが、ほとんどの類似品にはない様々な特徴を備えている(例えば、
逆にスクロールする機能)。
* libg++ (BinCD、LangT、SrcCD)
GNU C++ ライブラリは拡張性に富んだ C++ `forest' クラスや、入出力
ルーチン用の新しい IOStream ライブラリ、G++で使うためのサポート・
ツールの集まりである。Obstack、任意多倍長精度整数と実数、複素数、
任意長文字列、ビット集合、ビット文字列がクラス間でサポートされて
いる。共通コンテナクラスを生成する疑似汎用プロトファイルも1セット
入っている。一部 Texinfo 形式になっているドキュメントが入っている
(まだ製本されていない)。
* `m4' (UtilT、SrcCD)
GNU `m4' は、昔からある Unix のマクロプロセッサの GNU 版で、SVR4
とほぼ完全な互換性を持ち、さらに幾つかの拡張(例えば、マクロに対し
て位置に関する引数を 9 個以上の取り扱いが可能) が施されている。ま
た、`m4' にはファイルのインクルードやシェル・コマンドの実行、演算
機能、等を行なう組み込み関数もある。
* `make' (BinCD、EmcsT、LangT、UtilT、SrcCD)
GNU `make' は POSIX 1003.2をサポートし、その全てを網羅する。さら
に独自の改良に加えて、BSD make、System V make のほとんど全ての機
能が備わっている。長い名前のオプション、並列処理や条件実行、テキ
スト処理向けの機能といった GNU 版独自の拡張も施されている。`Make
Manual' のソース・テキスト・ファイルは、プログラムと共に提供され
ている。
GNU `make' を各種配布テープに入れて配布している。システム固有の
`make' プログラムには、GNU 構築システムの拡張で使っている基本的な
機能 `VPATH' が欠けているためである。そのようなシステムで GNU
`make' を作成するために、スクリプトが入っている。
* MandelSpawn (UtilT、SrcCD)
これは、MIT X Window System用の並列マンデンブロー・プログラムであ
る。
* mtools (UtilT、SrcCD)
mtools は、Unix システム上で MS-DOS ファイル・システム (通常は、
フロッピー・ディスク) のファイルの読み書きと操作を行なえるように
するパブリック・ドメイン・プログラムの集まりである。
* MULE (SrcCD)
MULEは、GNU Emacs 18を多言語版に(MULtilingual) 拡張したもの
(Enhancement) である。日本語や中国語、韓国語、ベトナム語、ISO
Latin-1から Latin-5までの文字セット、ウクライナ語、ロシア語、その
他のキリルのアルファベット、ギリシャ語、タイ語といった多くの文字
セットを一度に扱うことができる。MULEでのテキスト・バッファ内で、
これらの言語を組み合わせて文字を扱うことができる。これらの文字の
いずれかを入力する時は、MULE自体から提供されている様々な入力方法
を用いることができる。さらに、端末エミュレータ (kterm、csterm、
exterm) 上で MULE を使う場合は、そのエミュレータでサポートされて
いる入力方法を用いることも可能である。
* NetHack (UtilT、SrcCD)
NetHack は、Rogue に似たディスプレイ指向のアドベンチャー・ゲーム
である。ASCII表示 と X 表示の両方をサポートしている。
* NIH Class Library (LangT、SrcCD)
NIH クラス・ライブラリ(以前は 「OOPS」(Object-Oriented Program
Support、オブジェクト指向プログラムの支援) という名前であった) は、
Smalltalk-80 のクラス・ライブラリに似た移植性の良いクラスの集まり
である。これは、National Institutes of Health (NIH) のKeith
Gorlen が作成したもので、C++ プログラミング言語を使っている。
* Oleo (UtilT、SrcCD)
Oleo はスプレッドシート・プログラム (高価なスプレッドシートよりも
良質) である。X ウィンドウや文字端末をサポートし、Embedded
Postscript を生成することができる。キーの割り当ては、Emacs ユーザ
には馴染みやすく、カスタマイズも可能である。X 上や Postscript に
よる出力時には、Oleo は複数の可変幅のフォントをサポートしている。
* `p2c' (LangT、SrcCD)
`p2c' は、Dave Gillespieが作成した Pascal から C 言語への変換プロ
グラムである。16 ビット・マシン上で動作するようにコードを書き換え
て移植することも可能であろうが、主に、32ビット点マシン上で用いら
れることを想定している。
* `patch' (UtilT、SrcCD)
`patch' は Larry Wall の作成したプログラムの GNU 版で、`diff' の
出力結果を取り込んで元のファイルに差分情報を反映させ、パッチをあ
てたバージョンを作成する。
* PCL (EmcsT、SrcCD)
PCLは、CLOS (Common Lisp オブジェクト・システム) の大きなサブセッ
トを実現したものであり、フリーに配布可能である。PCL は Xerox
Corporation が作成した。
* `perl' (LangT、SrcCD)
Larry Wall は `perl' と呼ばれる高速なプログラムを作成した。これは、
`sed'や`awk'、`sh'、C 言語の特徴を組み合わせただけでなく、各種シ
ステム・コールのためのインタフェース、C ライブラリ・ルーチンが備
わっている。`perl' の編集用に Perl モード・コードが GNU Emacs 19
に付いている。
* `ptx' (UtilT、SrcCD)
`ptx' は `ptx' の GNU 版で、交互参照表生成プログラムである。数あ
る機能のうちでもとりわけ `nroff' を使わなくても読みやすい 「KWIC」
(KeyWords In Context) を生成し、TeX コードを出力するオプションも
ある。
* `rc' (UtilT、SrcCD)
`rc' はシェルである。C 言語に似た構文 (Cシェルよりも豊富である)
を備えており、C シェルやB シェルよりもきれいな引用規則を備えてい
るという特徴がある。会話的に用いられることを想定しているが、スク
リプトの作成にも非常に便利である。
* RCS (UtilT、SrcCD)
RCS (Revision Control System) は、大規模ソフトウェア・プロジェク
トのバージョン制御と管理のためのプログラムである。GNU `diff' を使
えば、RCS はバイナリ・ファイル (実行形式、オブジェクト・ファイル、
8 ビット・データ・ファイルなど) を取り扱うことが可能となる。
* `recode' (UtilT、SrcCD)
`recode' は、文字セットとその用法に関して変換する。正しい音訳が不
可能な場合 (訳注: 例えば、ロシア語をローマ字で綴るような場合のこ
と) は変な文字を取り除いたり、近い文字まで後退する。このプログラ
ムは、約 150 種類の文字セットを認識したり作成し、他のどのような文
字へもほとんど変換することもできる。ほとんどの RFC 1345 の文字セッ
トがサポートされている。
* regex (LangT、SrcCD)
GNU 正規表現ライブラリは POSIX.2 をサポートしているが、国際語化の
機能は入っていない。正規表現ルーチンを使っている多くの GNU プログ
ラムにこれが入っていた。今回では、ついに独立した配布が可能となっ
ている。
* Scheme (SchT、SrcCD)
Schemeに関する情報は、「Schemeテープの内容」を参照のこと。ソース・
コードCD-ROMに入っているものだけが MS-DOS 上で動作する。
* `screen' (UtilT、SrcCD)
`screen' は端末エミュレータで、 1 台の端末上で複数の論理的なスク
リーン (ttys) を実行する。生成された仮想端末ごとに、ANSI X3.64 と
ISO 2022 の機能を幾つか加えた DEC VT100 をエミュレートする。
`screen' セッションから抜け、あとから別の端末で再開することが可能
である。
* `sed' (UtilT、SrcCD)
`sed'は、`ed' の文字列指向のバージョンである。シェル・スクリプト
ではよく用いられる。GNU sed には、regexの高速版のrxライブラリが付
いてくる。
* Shellutils (UtilT、SrcCD)
shellutils はコマンド行やシェル・スクリプト中で使う小さなコマンド
で、次のものがある。
`basename'、
`date'、
`dirname'、
`echo'、
`env'、
`expr'、
`false'、
`groups'、
`id'、
`nice'、
`nohup'、
`printenv'、
`printf'、
`sleep'、
`stty'、
`su'、
`tee'、
`test'、
`true'、
`tty'、
`uname'、
`who'、
`whoami'、
`yes'。
* GNU Shogi (UtilT、SrcCD)
Shogi は日本のゲームでChessに似ている。西欧のチェスとの主な違いは、
取られた駒をもう一度投入することができる点である。テキストと X の
両方の表示インタフェースがある。
Shogi は GNU Chess を修正して作成された。GNU Shogiでは、GNU Chess
と同じ機能を実装し、同様のヒューリスティックを用いる。序盤向けの
一連の良い手を考えるプログラムを支援する新機能として、盤面の一部
から手を続けて読む方法が導入可能である。
GNU Shogi は主に FSF に代わって Matthias Mutzがサポートしている。
Matthias Mutz Universitaet Passau, FMI 94030 Passau
Germany E-mail: `mutz@kirk.fmi.uni-passau.de'
* Smalltalk (LangT、SrcCD)
GNU Smalltalk は、移植用性の高い C で記述されたインタープリタ型オ
ブジェクト指向のプログラミング言語システムである。機能としては、
インクリメンタルなガーベージ・コレクタや、バイナリ・イメージの保
存機能、ユーザの記述した Cコードの呼び出しやそれに引数を渡す機能、
GNU Emacs の編集モード、バイト・コードのコンパイル状況をトレース
するオプションやバイト・コードの実行状況をトレースするオプション、
各ユーザの初期化ファイルの自動ロードがある。
* superopt (LangT、SrcCD)
superopt は関数列生成ツールで、徹底した生成テスト方式を採用し、与
えられた機能を満たす最短命令列を探す。関数や、コード生成の対象と
なる CPU、何命令までが許容範囲かを超最適化ツールに指定する。GNU
超最適化ツールと GCC におけるその応用については「`ACM SIGPLAN
PLDI'92'」の予稿集に記述されている。superopt は現在、7 種類の CPU
(SPARC、m68000、m68020、m88000、IBM RS/6000、AMD 29000、Intel
80x86、Pyramid、DEC Alpha、HP-PA) をサポートしている。
* `tar' (UtilT、SrcCD)
GNU `tar' は、マルチボリュームをサポートしており、疎なファイルを
アーカイブする機能やリモート・アーカイブ、アーカイブの自動圧縮/復
元などをサポートする。特に、`tar'を使ってファイル・システムの差分
や全体のバックアップをとることができる点が特徴である。残念ながら、
GNU `tar' は、POSIX 1003.1 `ustar' 規格の初期のドラフトを基にして
いるので、最終バージョンには従っていない。古いバージョンとの互換
のための変更を要すること明記するまでもない。
* Termcapライブラリ (UtilT、SrcCD)
GNU Termcap ライブラリは `libtermcap.a' の差し替えであり、どのよ
うなシステムでも利用することができる。通常の termcap とは異なり、
Termcap の記述項目の大きさの制限を外した。Texinfo 形式の `Termcap
Manual' のテキスト・ソース・ファイルも入っている。
* TeX *FSFからは配布されていない*
TeX は数式を含む複雑な組み版を扱う文書処理システムである。GNU シ
ステム標準の清書システムである。
TeX は、Unix版のTeX を保守するセンターもあるワシントン大学から入
手することができるので、FSFでは配布していない。
`tar' で記述され、1/4インチ 4 トラック QIC-24 のカートリッジまた
はDATカートリッジに入った完全配布版を注文するには210ドルを次の所
へ送る。
Northwest Computing Support Center
DR-10, Thomson Hall 35
University of Washington
Seattle, WA 98195
電子メイル: `unixtex@u.washington.edu'
電話番号: (206) 543-6259
支払いは、ワシントン大学へ小切手を送る。小切手は米ドルで、米国に
ある銀行で引き落とし可能なものでなければならない。
* Texinfo (EmcsT、LangT、SrcCD、UtilT)
Texinfo は、プリンタ出力用マニュアルを生成したり、オンライン・ハ
イパー形式の清書ツール (Info と呼ばれる) に変換するユーティリティ
の集まりであり、そのオンライン・ドキュメントを読み込む方法を提供
する。バージョン 3 には、GNU Emacs Lispと標準の C プログラムの両
方だけではなく、`Texinfo Manual' のテキスト・ソース・ファイルも入っ
ている。
* Textutils (UtilT、SrcCD)
Textutils には、次に示すテキスト・データを操作するプログラムが入っ
ている。
`cat'、
`cksum'、
`comm'、
`csplit'、
`cut'、
`expand'、
`fold'、
`head'、
`join'、
`nl'、
`od'、
`paste'、
`pr'、
`sort'、
`split'、
`sum'、
`tac'、
`tail'、
`tr'、
`unexpand'、
`uniq'、
`wc'。
* Tcl (LangT、SrcCD)
Tcl は、組み込み型のツール・コマンド言語である。`expect' と
DejaGnuは、Tclを用いて動作する。
* Tile Forth (LangT、SrcCD)
Tile Forth は、C 言語語で記述された Forth--83標準の 32 ビットに実
装されたものである。従って、異なるコンピュータ間で容易に移動する
ことができる。(伝統的には、Forth の実装は、できるだけ最適化して基
本のアーキテクチャを活用するためにアセンブリ言語で記述されている
が、これでは移植性を低下させてしまう。)
* `time' (UtilT、SrcCD)
`time' という関数は、(通常はシェルから) time コマンドの実現に用い
られ、1 つのプロセスのユーザ・タイムやシステム・タイム、実経過時
間の統計情報を出力する。
* `tput' (UtilT、SrcCD)
`tput' は、特殊な端末機能をシェル・スクリプトで扱えるようにするた
めに、移植性の良い方法を提供する。通常の terminfo ではなく、
termcap データベースを利用している。
* UUCP (UtilT、SrcCD)
UUCPのこのバージョンはIan Lance Taylorが作成した GNU 標準の UUCP
システムである。現在サポートしているものは、`f'、 `g' (全てのウィ
ンドウとパケット・サイズで)、`G'、Zmodemプロトコルと2つの新しい
双方向性のあるプロトコルとして`t'プロトコルと`e'プロトコルである。
Berkeley ソケット・ライブラリがあれば、TCP接続が可能である。TLIラ
イブラリの場合は、TLI接続が可能である。
* `uuencode' (UtilT、SrcCD)
uuencode と uudecode は、単純な ASCII データ以外はサポートしない
転送媒体を経由したバイナリ・ファイルの転送に用いられる。
* `wdiff' (UtilT、SrcCD)
`wdiff' は2つのファイルを比較して、どの単語が削除されたか、最初に
指定したファイルからどの単語を追加すれば 2番目に指定したファイル
を得られるかを示す。最終的には、`spiff' と呼ばれる類似のプログラ
ムから幾つかのアイデアを統合し、GNU `diff' の将来のリリースに組み
入れたい。
オランダのDelft工科大学は、OCEANという包括的なIC設計パッケージを開発し
ている。これには、セミカスタムのシーオブゲート型ゲートアレイ・チップの
論理合成および検証のための強力なツール・セットが含まれている。OCEANは、
チップ設計工程のバックエンド (回路レベルから、レイアウトして実際のチッ
プにするまでの工程) も網羅している。
OCEANは、配置や配線、シミュレーション、回路抽出を全自動または半手動で
行なうことのできる会話型ツールを提供している。完全なソース・コードをフ
リー・ソフトウェアとして入手可能であり、LinuxやHP、X Window Systemの動
作する各種の Sun ワークステーション上で動作することが確認されている。
データの外部とのやり取りは、EDIF、BLIF、SLS、GDSII、CIF、SPICE、LDMの
各形式で可能である。
OCEANは、`donau.et.tudelft.nl'マシンから anonymous FTPにて入手可能であ
る。詳細はInternet上の`patrick@donau.et.tudelft.nl'へ問い合わせのこと。
このテープには、Common Lispの実装、GNU Emacs、GNU Emacsを使って動作する各種
の拡張版、その他2〜3の重要なユーティリティが入っている。
* Calc 2.02b
* CLISP 1993.11.08
* Elib 0.06
* GNU Emacs 18.59
* GNU Emacs 19.22
* `GNU Emacs Lisp Reference Manual'、Edition 2.02.1
* `gzip' 1.2.4
* `make' 3.70
* PCL 1993.03.18
* Texinfo 3.1
このテープには、コンパイラやインタープリタ、(構文解析生成コマンド、変
換プログラム、デバッガ、他)関連プログラムなどのプログラム開発ツールが
入っている。
* Binutils 2.3
* Bison 1.22
* C Library 1.06.7
* DejaGnu 1.1.1
* `dld' 3.2.3
* `expect' 4.7.6
* Ecc 1.2.1
* `f2c' 1993.04.28
* `flex' 2.4.5
* GAS 2.2
* GAWK 2.15.3
* GCC 2.5.7 (includes G++ と Objective C)
* GDB 4.11
* `gdbm' 1.7.1
* `gmp' 1.3.2
* `gperf' 2.1a
* `gzip' 1.2.4
* `indent' 1.8
* libg++ 2.5.3
* `make' 3.70
* NIH クラス・ライブラリ 3.0
* `p2c' 1.20
* `perl' 4.036
* regex 0.12
* Smalltalk 1.1.1
* Superopt 2.3
* Tcl 6.7
* Texinfo 3.1
* Tile Forth 2.1
Scheme は Lisp の方言の1つで、簡素化し構文的なスコープ・ルールを導入し
たものである。これは、学生にプログラムの作成技術を教えるためと、新しい
並列プログラムの構成やコンパイルの技法を研究するためにMIT を始めとする
幾つかの大学によって設計された。
このテープには、MIT Scheme 7.1が入っており、資料 「Revised^4 Report On
the Algorithmic Language Scheme」 (MIT AI Lab Memo 848b) に従っている。
資料自体の TeX ソース・テキスト・ファイルがテープに入っている。Scheme
は、C言語で一部記述されているが、現在、ブートストラップするのが困難で
ある。Scheme をブートストラップするために使われるバイナリは、次に示す
システムに対応している。
* HP-UX 7.0 または 8.0 の動作するHP 9000 シリーズ 300/400/700/800
* NeXT OS 1.0 または 2.0 の動作する NeXT
* SunOS 4.1 の動作する Sun-3 または Sun-4
* Ultrix 4.0 の動作するDECstation 3100/5100
* NEWS OS 5.01 の動作するSony NWS-3250
* 4.3 BSD の動作する Vax
あなたのシステムがこのリストに載っておらず、ブートストラップへの挑戦に
興味がなければ、「プロジェクトGNUの進捗報告」の「JACAL」を参照のこと。
X11 テープには 2 種類あり、いずれも MIT の X Window System のバージョ
ン 11 リリース 5 が入っている。1 番目の FSF テープには、コアのソフトウェ
アやドキュメント、寄与されたクライアントが入っている。 FSF では、X の
起動やX 上での GNU Emacs の実行に必要なので、これを「必須 (required)」
X テープと呼んでいる。2 番目の「オプションの」FSF テープには、寄付され
たライブラリやその他のツールキット、Andrew ソフトウェア、ゲーム、その
他のプログラムが入っている。
X11 必須テープにも、リリースされた最新の修正とパッチが全て入っている。
新しい修正情報とパッチがリリースされたので、我々はこのテープを更新した。
Berkeley 「Net2」リリースには 4.3 BSD の配布の第 2 回目が含まれており、
4.3BSD-Tahoe や 4.3BSD-Reno よりも新しい。ほとんど全ての BSD を含むが、
カーネルのモジュールやライブラリの一部が欠けている。今使っているあなた
の C ライブラリでは用意されているかもしれない。このリリースには、以前
のリリースよりもさらに多くのソフトウェアを含み、サードパーティのソフト
ウェアも入っている。例えば、Kerberos や GNU ソフトウェア (BSD の標準コ
ンパイラとして採用している GCC など) 等である。カーネル以外で欠けてい
るソフトウェアはたくさんあるが、その代替品はこのテープとは別個に、GNU
配布テープとして GNU プロジェクトから提供されている。
FSF では 2 種類の VMS 用テープを提供している。1つは GNU Emacsエディタ
だけである。もう1つのテープには GNU C コンパイラや Bison (GCCのコンパ
イルに必要)、`gas' (GCCの出力のアセンブルに必要)、ライブラリ、インクルー
ド・ファイルが入っている。VMS に GDB を移植したという話は聞いていない。
DEC VMS C コンパイラにはいくつかのバグがあって GNU C をコンパイルする
ことができないので、いずれの VMS 用テープにも、ブートストラップするこ
とができるように実行形式ファイルを入れてある。
Hundred Acre Consulting では、GNU CC と C++コンパイラのサポートを専門
とするサポートと開発のサービスを引き続き提供している。利益の 1% を FSF
へ寄付する方針を継続している。新住所を下に示す。
Free Software Foundation は、CD-ROM 第3版を制作した。その内容を次に示す。
* acm 3.1
* Autoconf 1.7
* BASH 1.13.4
* `bc' 1.02
* Binutils 1.9 & 2.3
* Bison 1.22
* GNU C ライブラリ 1.06.7
* Calc 2.02b
* GNU Chess 4.0p62
* CLISP 1993.11.08
* `cperf' 2.1a
* `cpio' 2.3
* CVS 1.3
* `dc' 0.2
* DejaGnu 1.0.1
* diffutils 2.6
* `dld' 3.2.3
* `doschk' 1.1
* ecc 1.2.1
* elib 0.06
* `elvis' 1.7
* Emacs 18.59 と Emacs 19.21
* `es' 0.84
* `f2c' 1993.04.28
* Fax 3.2.1
* Fileutils 3.9
* `find' 3.8
* `finger' 1.37
* `flex' 2.3.8
* Fontutils 0.6
* GAS 1.36.utah、1.38.1、2.2
* Gawk 2.15.3
* GCC 2.5.4
* GDB 4.11
* `gdbm' 1.7.1
* Ghostscript 2.6.1
* Ghostview 1.5
* Ghostview (Windows 1.0用)
* `gmp' 1.3.2
* GNATS 3.01
* GnuGo 1.1
* `gnuplot' 3.5
* Graphics 0.17
* `grep' 2.0
* Groff 1.08
* `gzip' 1.2.4
* `hello' 1.3
* `hp2xx' 3.1.3a
* `indent' 1.8
* `ispell' 4.0
* `less' 177
* `libg++' 2.5.1
* `m4' 1.1
* `make' 3.69.1
* MandelSpawn 0.06
* mtools 2.0.7
* MULE 1.0
* Nethack 3.1.3
* NIHCL 3.0
* Oleo 1.5
* `p2c' 1.20
* `patch' 2.1
* PCL 1993.03.18
* `perl' 4.036
* `ptx' 0.3
* `rc' 1.4
* RCS 5.6.0.1
* `recode' 3.2.4
* regex 0.12
* MIT Scheme (MS-DOS) 7.2
* `screen' 3.5.2
* `sed' 1.18 と 2.03
* Shellutils 1.9.1
* GNU Shogi 1.1p02
* Smalltalk 1.1.1
* Superopt 2.3
* `tar' 1.11.2
* Termcap ライブラリ 1.2
* Texinfo 3.1
* Textutils 1.9.1
* Tile Forth 2.1
* `time' 1.6
* `tput' 1.0
* UUCP 1.04
* `uuencode' 1.0
* `wdiff' 0.04
* X11R5
CD-ROMには、`GNU Emacs Lisp Reference Manual'(バージョン19、第2.02版)
の Texinfo ソース・テキスト・ファイルとオハイオ州立大学での Emacs Lisp
アーカイブのスナップショットも入っている。(ここアーカイブにあるライブ
ラリは、UUCPにて入手可能である。(UUCPについての方法は
`staff@cis.ohio-state.edu' へ問い合わせるか、あるいは)
`archive.cis.ohio-state.edu'マシンの `/pub/gnu/emacs/elisp-archive' ファ
イルをanonymous FTP で入手することができる。)
MIT Scheme、VMS、Net2の各テープの内容はCD-ROMには入っていない。
CD-ROMは ISO 9660形式で記録されており、ほとんどのオペレーティング・シ
ステム上で読み込み専用のファイル・システムとしてマウントすることができ
る。あなたのドライバが「Rock Ridge」をサポートしており、それを使って
CD-ROMをマウントできるのであれば、ファイル名も切り詰められないので通常
の Unix ファイル・システムでアクセスできるだろう。サポートしていない場
合には、通常の ISO 9660仕様に合った短い名前になるだろう。
ソース・コードを CD からコピーせずに、CD の大部分をシステムに組み込む
ことが可能である。注意すべき点は、希望のものを作成するためにオブジェク
ト・ファイルや中間ファイルのためのディスク容量だけは十分に確保しなけれ
ばならないことである。この CD には、MS-DOS 向けの MIT Scheme バイナリ
用とWindows実行形式用の Ghostview 以外には、コンパイルされたプログラム
が入っていない。従って、C コンパイラが必要になるだろう (その他のインター
プリタやコンパイラが必要なプログラムの場合に備えて通常、ブートストラッ
プ・プログラム用の C ソース・プログラムを入れており、そのプログラムと
共に GNU から提供されている)。
CD-ROM は、業務や組織で購入する場合は 49,000 円、個人で購入する場合は
15,000 円である。
* 個人価格や企業価格とはどういう意味か?
我々のCD-ROMに入っているソフトウェアはフリーである。誰もがコピー
し、実行することができる。我々が課す価格というのは物理的な CD-ROM
に対して (訳注: 入っている内容に対してではない) である。
購入しようとしている人によって 2 つの異なる価格が設定される。企業
やその他の組織が CD-ROM を購入する場合は 49,000 円で、同じ CD-ROM
を個人で購入する場合はたったの 15,000 円である。
ソフトウェアを使うことのできる者が誰であってもこれらの価格になる。
企業や個人のいずれの場合においても、いったんコピーを入手すれば、
人々の希望に応じた数のコピーを配布することができ、そのコピーを受
け取ったり実行できる人に対して何ら禁る事はない。価格の差は完全に、
CDへ支払う実体の種類の問題である。
本小冊子の読者は、確かに個人であって企業ではない。「個人で」
CD-ROM を購入しようとするのであれば、おそらく個人価格で購入するだ
ろう。しかし、その費用が雇主から払い戻されるのを期待するのであれ
ば、CD-ROM は実際企業価格となる。従って、企業価格で支払って、その
分を企業から払い戻してもらうようにしていただきたい。我々はあなた
方を調査したくはない。なぜならば、良心に基づくシステムを採用して
いるからである。どうかご協力いただきたい。
CD-ROM を企業価格で複数枚購入していただくと、GNU プロジェクトが非
常に援助される。例えば、企業価格の CD-ROM を 80 枚購入するだけで、
FSF プログラマやテクニカル・ライターが 1 年間支援可能になる。
* なぜ個人価格があるのか?
これまで、我々への配布テープの注文は主に企業からであった。49,000
円の CD-ROM ならば、従来支払われてきた 6 種類の異なるテープよりも
はるかに低価格であり、我々の全てのソフトウェアが提供されるのであ
る。さらに価格を下げるとなると、FSFの資金は非常に悪化してしまう。
しかし、個人にとっては 49,000 円は非常に高額である。買おうにも買
えないだろう。そこで、個人用に価格を抑えて 15,000 円とし、企業価
格とは異なる設定にした。
* 最高価格はあるのか?
我々がここで言及している価格とは最小価格である。GNU開発をさらにサ
ポートしたい方は、自由に価格を引き上げて支払っていただきたい。際
限はない。つまり、我々はあなたが出せる価格を最高額として受け取る
ことになる。あるいは、税控除対象公共の慈善行為として、(訳注: 米国
では) 税控除可能な寄付金を Free Software Foundationへ単に送ってい
ただきたい。
現在、コンパイラのないシステムのために GNU コンパイラ・ツール用の実行
形式を入れた CD-ROM を提供している。これにより、システムによってはその
ユーザは独占的なコンパイラを買う必要がなく、GNU とその他のフリー・ソフ
トウェアをコンパイルすることができる。
このCD-ROMを更新するたびに、より多くのシステムを入れていきたいと思って
いる。新しいシステムの組み込みバイナリを支援できる方や候補に入れたいシ
ステムをお持ちの方は、表紙の住所や電子メイル・アドレスのいずれかへご連
絡いただきたい。
* DJGPP 1.11.m1
* GCC/G++/Objective C 2.5.7
* GDB 4.11
* GAS 2.2
* Binutils 2.3
* Bison 1.22
* Flex 2.4.5
* Make 3.70
* libg++ 2.5.3
* `i386-msdos'
* `hppa1.1-hp-hpux9'
* `sparc-sun-solaris2'
* `sparc-sun-sunos4.1'
ネットワークへのアクセス手段のない方は、最新の FSF 予約サービスを利用
することにより、最新の状態に保つことができる。1 回の料金はテープ 3 本
分に相当する。指定されたテープやソース・コード CD-ROMの最新版を 4 回送
る予定である。テープは四半期ごとに、ソース・コードCD-ROMはその作成ごと
に送付される。(ソース・コードCD-ROMは現在、年に2回出版されているが、今
後はもっと間隔を短くするかもしれない。)
定期的に、Emacsテープ、言語テープ、ユーティリティ・テープ、MIT X
Window System 必須テープ、あるいはソース・コードCD-ROM のいずれか新バー
ジョンのうち1本を送付する。BSD Net-2テープ、MIT Scheme テープ、MIT X
Window System オプション・テープは四半期の更新を保証しない程度の変更頻
度である。コンパイラ・ツール・バイナリ CD-ROMは新規リリースなので、ど
の程度の頻度で配布していくのかまだ見当がつかない。
Emacs 19は現在、Emacsテープとソース・コードCD-ROMに入っている。予約配
布サービスは、Emacs 19が β テストから更新された場合など、最新のものを
入手するのに便利である。
予約配布サービスにより、MIT X Window Systemに対する正規のバグ修正を入
手していくこともお容易になる。ソース・コードCD-ROMの版の改訂ごとに
Window System用の修正部分とパッチをあて、X11 必須テープのソースも更新
される。
Free Software Foundation から配布するソフトウェアと出版物には、コピー
と配布の許可を付けて配布している。GNU ソフトウェアを入手する最も簡単な
方法は、誰か他の人からコピーさせてもらうことである。配布テープや
CD-ROM ならば、FSF へ注文すれば直接 GNU ソフトウェアを入手することがで
きる。FSF スタッフのための資金源はそのような注文で支えられているので、
なるべく FSF へ発注して我々をサポートしていただきたい。「FSF注文票」を
参照のこと。
我々のソフトウェアを配布している第三者のグループもある。我々とは一緒に
作業していないが、別のフォーマットでソフトウェアを用意している。読者の
ために、そのグループのリストを示す (「マイクロコンピュータ用のフリー・
ソフトウェア」も参照)。 ここで注意してほしいことは、Free Software
Foundation とは密接な関係では 『ない』 ので、彼らの扱う現在のバージョ
ンや問い合わせに対して迅速に回答する責任は負わない。
こういった配布業者と一緒にビジネスを行なう方は、フリー・ソフトウェア開
発をどの程度支援するかをその業者に尋ねていただきたい。例えば、フリー・
ソフトウェア開発プロジェクトへ資金を援助するのか、一般利用のためにフリー・
ソフトウェア自体を改良するか、等を。この要因を少しでも理解していただく
ことによって、フリー・ソフトウェアで利益を得る人々を奨励する一助となり、
結果としてフリー・ソフトウェアの成長へも貢献することができる。
Internetにアクセス可能で、以下に示すホスト・マシンのどれをもアクセスす
ることができない場合は、GNU ソフトウェアを `prep.ai.mit.edu' (IP アド
レスは `18.71.0.38') マシンから anonymous FTPで入手することができる。
詳細は、`/pub/gnu/GETTING.GNU.SOFTWARE' ファイルを参照のこと。`prep'マ
シンは非常に混んでいるので、常時FTPログインできる数が制限されている。
可能であれば、他のマシンを使っていただきたい。
次に示すTCP/IP Internetの複数のサイトでは、GNU ソフトウェアを
anonymous FTPで入手可能にしている。(`ftp' プログラムを使って、user: に
は `anonymous'を 、passwd: にはあなたの電子メイル・アドレスを、mode:
には `binary' を入力する。) `prep.ai.mit.edu' をアクセスする前に試みて
ほしい。
* アフリカ …
`ftp.sun.ac.za'
* オーストラレーシア …
`archie.oz.au' (ACSnetでは `archie.oz')、
`cair.kaist.ac.kr'、 `utsun.s.u-tokyo.ac.jp'、
`ftp.cs.titech.ac.jp'
* カナダ …
`ftp.cs.ubc.ca'
* 中東 …
`ftp.technion.ac.il'
* ヨーロッパ …
`ugle.unit.no'、
`ftp.stacken.kth.se'、
`isy.liu.se'、
`ftp.luth.se'、
`unix.hensa.ac.uk'、 `ftp.mcc.ac.uk'、
`ftp.informatik.tu-muenchen.de'、
`ftp.informatik.rwth-aachen.de'、
`ftp.denet.dk'、
`ftp.eunet.ch'、 `nic.switch.ch'、
`nic.funet.fi'、 `ftp.win.tue.nl'、
`irisa.irisa.fr'
`ftp.univ-lyon1.fr'、
`archive.eu.net'
* 米国 …
`labrea.stanford.edu'、
`ftp.kpc.com'、
`ftp.digex.net'
`ftp.cs.widener.edu'、
`ftp.cs.columbia.edu'、
`uxc.cso.uiuc.edu'、
`wuarchive.wustl.edu'、
`gatekeeper.dec.com'、
`ftp.hawaii.edu'、
`cc.utah.edu' (VMS GNU Emacs)、
`mango.rsmas.miami.edu' (VMS GCC)、
`ftp.uu.net'
(`/packages/gnu'の下)
JANET ネットワーク・ユーザは `src.doc.ic.ac.uk' マシンの`/gnu'の下を参
照のこと。
UUCP で入手可能な GNU プログラムがある。オハイオ州立大学では、UUCP に
よる方法を定期的に USENET の `comp.sources.d' に投稿している。また、次
の人々に問い合わせると電子メイルで UUCP の使い方を送ってくれる。
hao!scicom!qetzal!upba!ugn!nepa!denny、 uunet!hutch!barber、
src@contrib.de (ヨーロッパ)、 james@bigtex.cactus.org、
acornrc!bob、toku@dit.co.jp (日本)、 staff@cis.ohio-state.edu、
info@uunet.uu.net
Internet でアクセスできない人は、電子メイルとファイル転送に関する情報
を UUCP で入手可能である。詳細は「フリー・ソフトウェアのサポート」を参
照のこと。
Free Software Foundation は、そのソフトウェアの全ての実行ファイルをお
さめたパッケージを制作するよう再三求められていた。通常、我々はソース・
ファイルしか提供しない。このデラックス・パッケージには、ソース・ファイ
ルにバイナリを付けるだけでなく、我々が印刷したマニュアルの全てが入って
いる。
デラックス・パッケージ (FSF Deluxe Distribution) には、GNU Emacs、GNU
C コンパイラ、GNU デバッガ、MIT X Window System のフルセット、GNU ユー
ティリティを含む数百のありとあらゆるプログラムのバイナリ・ファイルとソー
ス・ファイルが入っている。
このパッケージでは、次に示すマシンとオペレーティング・システムから1つ
を選ぶことができる。4.3 BSD かHP-UX の動作する HP 9000シリーズ
300/700/800、4.3 BSD か NewsOS 4 の動作する SONY News 68k、SunOS 4 か
Solaris の動作する Sun-3、Sun-4、または SPARC。あなたが使っているマシ
ンやシステムがここで記述されていなかったり、特定のプログラムがマシンに
移植されていない場合は、FSF事務局へ電話(以下参照)をするか、あるいは
`gnu@prep.ai.mit.edu'へ電子メイルをあてていただきたい。
Unix の tar 形式でソフトウェアを次の媒体のうちの 1 つにおさめて提供す
る予定である。1600bpiまたは6250bpiの1/2インチ・オープン・リール・テー
プ、QIC-24の Sun DC300XP 1/4インチ・カートリッジ・テープ、HP 16 トラッ
クの DC600HC 1/4 インチ・カートリッジ、QIC-150の IBM RS/6000 1/4 イン
チ・カートリッジ・テープ、Exabyte の 8mm テープ。あなたが使っているマ
シンではこれらのいずれもが読めない場合は、我々にご相談いただきたい。
その他にも、Bison、Calc、Gawk、GNU C コンパイラ、GNU C ライブラリ、GNU
デバッガ、Flex、GNU Emacs Lisp Reference、Make、Texinfo、Termcapのマニュ
アルが 1 冊ずつ、GNU Emacs Manual が6冊、GNU Emacs、Calc、GNU デバッガ、
Bison の各リファレンス・カードも一束ずつ入っている。
印刷されたマニュアルやオンライン・マニュアルに加えて、システム限定のコ
ンパイラ・ツール・バイナリの入った CD-ROM と GNU ソフトウェアのソース・
ファイルの入った CD-ROM (ISO 9660形式で、Rock Ridge拡張を用いている)
がどのデラックス・パッケージにも付いている。
デラックス・パッケージは 100 万円である。これは、コンパイルされた全て
を欲しい人々や、一般的な方法で FSF を援助するために購入したい人々のた
めにある。パッケージを注文するには、「FSF注文票」の「デラックス・パッ
ケージ」に(箇所によっては英文表記の楷書で)漏れなく記入の上、以下の所へ
送っていただきたい。
FSFは、MS-DOSに移植された GNU ソフトウェアの一部を 3.5 インチの1.44M
バイト・フォーマットでフロッピー・ディスクに入れて配布している。これに
はソース・ファイルと実行形式の両方を含む。
Demacs フロッピー・ディスクの内容
=================================
Demacs は Emacs 18.55 をベースにして MS-DOS 移植されたもので、Emacs
18.57 への変更点も反映されている。これには 2 つのバージョンがある。8
ビットの文字セットを扱うものと、MULEの初期バージョンを基にして漢字を含
む 16 ビットの文字セットを扱うものである。FSF では、両方のバージョンを
5 枚の 3.5 インチのフロッピー・ディスクに入れて配布している。
Demacs は、MS-DOS が動作する Intel 80386 と 80486 マシン上で実行する。
XMSメモリ・マネージャと VCPI と互換であるが、Microsoft Windows の拡張
モードや他の DPMI マネージャとの互換性はまだない。
DJGPP フロッピー・ディスクの内容
================================
DJGPP は、MS-DOS や Windows 3、QDPMI、OS/2が動作する i386 マシンと
i486 マシンのために、GCCやライブラリ、開発ユーティリティ、シンボリック・
デバッガを完全に移植したものである。FSF では、ソース・ファイルと実行ファ
イルの両方を、22 枚の 3.5 インチのフロッピー・ディスクに入れて配布して
いる。
DJGPP のインストールには、ハードディスクの空き容量として最低 5M バイト、
使うためには RAM が 512K バイト必要である。XMS メモリ・マネージャと
VCPIやDPMIと互換である。
ひと揃いのユーティリティ・フロッピー・ディスクの内容
====================================================
GNUish MS-DOS プロジェクトは、PC互換機に移植した GNU ソフトウェアをリ
リースしている。通常、このソフトウェアは 8086 と 80286 搭載のマシン上
で動作する。80386 マシンは必須ではない。これらのユーティリティによって
は、必然的に機能が削られているものもある。入っている内容は、RCS、
`flex'、MAWK、`cpio'、`diff'、MicroEmacs、`find'、some file utilities、
`gdbm'、`grep'、`ptx'、`indent'、`less'、`m4'、`make'、`sed'、`shar'、
`sort'、Texinfo である。
Windows フロッピー・ディスクの内容
==================================
GNU Chess と `gnuplot' の Microsoft Windows バージョンを、1枚のフロッ
ピー・ディスクに入れて配布している。
FSF ではマイクロコンピュータ用の GNU ソフトウェアをサポートしない。GNU
プロジェクトの目標ではないからである。しかし、我々は幾つかのプログラム
をテープや CD-ROM、フロッピー・ディスクに入れて配布している。それを行
なっているグループの情報を快く提供する。何か関連情報があれば、郵送先の
住所、アーカイブ・サイトとメイリング・リストを含む詳細を表紙の郵便住所
または電子メイル・アドレスのどちらかへ教えてほしい。
FSF から入手可能なマイクロコンピュータ・ソフトウェアの詳細は「MS-DOSの
配布」を参照のこと。その他のソフトウェアについては我々に尋ねないでいた
だきたい。FSF はここに記載した以外の情報は『持っていない』し『保守もし
ていない』からである。
* Appleコンピュータには GNU ソフトウェアをのせない
Macintosh に漠然と似た振舞いのユーザ・インタフェースを持っている
プログラムの作成を中止させるために、Apple 社は訴訟でその権利を主
張している。裁判で Apple 社が勝てば、世間に新しい権力を主張するだ
ろう。フリー・ソフトウェアの世界の終わりをもたらすかもしれない。
Apple 社がこういった独占を続ける限り、Appleコンピュータのあらゆる
サポートは行なわない。多くのソフトウェアが彼らの商売に加わること
になるので、Appleシステムのための開発やそれへの移植を慎むようにお
願いしたい。あなたに噛み付く弁護士を養ってはいけない!
* Boston Computer Society
BCS (Boston Computer Society) にはマイクロコンピュータ用の数千も
のハードウェアやフリー・プログラムがあり、GNU プログラムも入って
いる。自分のマシン用にどのようなプログラムが配布されているかを知
りたい場合は、次の住所に連絡のこと。Boston Computer Society, 1
Kendall Square - Bldg 1400, Cambridge, MA 02139 USA 電話番号:
(617) 252-0600。
BCS (Boston Computer Society) にはマイクロコンピュータ用の数千も
のシェアウェアやフリー・プログラムがあり、GNU プログラムも入って
いる。自分のマシン用にどのようなプログラムが配布されているかを知
りたい場合は、次の住所に連絡のこと。
Boston Computer Society
1 Kendall Square, Bldg 1400
Cambridge, MA 02139
USA.
電話番号: (617) 252-0600
* Amiga 上の GNU ソフトウェア
Amiga 用に多くの GNU プログラムが移植され、ヨーロッパの
`ftp.funet.fi' マシンの `/pub/amiga/gnu' から anonymous FTP にて
入手可能である。
GCC の移植や関連プロジェクトの援助の申し出は Leonard Norrgard
(`vinsci@nic.funet.fi') へ、GNU Emacs の移植はDavid Gay
(`dgay@di.epfl.ch' か Mark D. Henning (`henning@stolaf.edu') へ問
い合わせていただきたい。詳細は、anonymous FTP を使って
`prep.ai.mit.edu' マシンの `/pub/gnu/MicrosPorts/Amiga' から得る
ことができる。
* Atari TOS や Atari Minix の GNU ソフトウェア
Atari上に移植されたGNUプログラムは、`atari.archive.umich.edu' マ
シンから anonymous FTP にて入手可能である。そこは Howard Chu
(`hyc@hanauma.jpl.nasa.gov') が管理を担当している。この移植に関す
る討論の USENET ニュース・グループは、 `comp.sys.atari.st.tech'や
`comp.sys.atari.st' である。
* OS/2 2.0 用の GNU C/C++ 2.3.3
Michael Johnson は、OS/2 2.0 用の GNU C/C++ バージョン 2.3.3 の移
植を終えた。単独で動作するものである。これには、C/C++ コンパイラ
や GNU アセンブラ、ドキュメント、OS/2特有のライブラリ、BSD C ライ
ブラリから成る。anonymous FTP で、`hobbes.nmsu.edu' マシンのディ
レクトリ `/pub/os2/2_x/programming/gcc2-233' から入手可能である。
このメイリング・リストへの参加は、`os2gcc-request@charon.mit.edu'
へその旨を申し込む。
* Linux (386マシン用のフリーなUnixシステム)
Linux (Linus Torvalds と Minix にちなんで名前が付けられた) は、フ
リーな Unix システムのクーロンであり、System V や POSIX の機能の
サブセットを実現する。Linux は全く最初から作成され、カーネル内に
は独占的なコードを含まない。非常に多くのユーティリティやライブラ
リは、GNU プロジェクトのソフトウェアを使っている。Linux は
386/486 AT バス・マシン(とEISA バス・マシンのあるもの) でのみ動作
する。Intel 386 以外への移植は非常に困難であろう。カーネル内では、
386 固有のメモリ管理やタスク管理命令を広範囲に使っているからであ
る。Linux は `tsx-11.mit.edu:/pub/linux' (米国) と
`nic.funet.fi:/pub/OS/Linux' (ヨーロッパ) からanonymous FTP で入
手可能である。これのメイリング・リストに関する問い合わせは
`linux-activists-request@niksula.hut.fi' へ。Linux に関する討論は
ニュース・グループ `comp.os.linux' を参照のこと。
* DJGPP 1.11m1 (MS-DOS 用の GNU C/C`++' コンパイラ)
DJ Delorie は、GCC/G`++' 2.5.7 を 386 MS-DOS プラットフォームに移
植した。コンパイラと一連のプログラムは、仮想記憶をサポートし、32
ビット・モードで動作するコードを生成する。DJGPP は、
`barnacle.erc.clarkson.edu' サイトの`/pub/msdos/djgpp' ディレクト
リから FTP にて入手可能である。
`djgpp-request@sun.soe.clarkson.edu' に自分の電子メイル・アドレス
を知らせると DJGPP のメイリング・リストに加入できる。
FSF では、DJGPP を数枚のフロッピー・ディスクや CD に入れて配布し
ている(「MS-DOSの配布」と「コンパイラ・ツール・バイナリCD-ROM」参
照)。
* Demacs (MS-DOS 用の GNU Emacs)
東田 学と平野 聡が `Demacs' をリリースした。これは GNU Emacs を
386/486 MS-DOS マシンに移植したもので、最新で最初にリリースしたバー
ジョンは 1.2.0 である。Demacs は DOS 特有の機能をサポートする。例
えば、バイナリやテキスト・ファイルの変換、8 bit クリーン表示モー
ド、80x86 ソフトウェアの割り込みを Lisp 関数 `int86' で起動する機
能、ファンクション・キーのようなマシン特有の機能、ドライブ名を含
むファイル名の補完、子プロセス (`suspend-emacs' と`call-process')
などである。`ls.exe' がなくても Dired モードは動作する。anonymous
FTP で、`wuarchive.wustl.edu' の `/mirrors/msdos/demacs' (米国)、
`rana.cc.deakin.oz.au' の `/pub/PC/oak/demacs' (太平洋圏)、
`ftp.funet.fi' の `/pub/gnu/emacs/demacs' (ヨーロッパ) から入手可
能である。
FSF では、Demacsをフロッピー・ディスクに入れて配布している
(「MS-DOSの配布」と「MS-DOSの配布」参照)。
GNU プログラムの MS-DOS への移植情報や関連のメイリング・リストに
ついては、`info-gnu-msdos-request@sun.soe.clarkson.edu' へ問い合
わせるか、あるいは、`prep.ai.mit.edu' マシンから anonymous FTP で
`/pub/gnu/MicrosPorts/MSDOS*' ファイルを入手していただきたい。
FSF では、MS-DOSへ移植された多くの GNU プログラムをフロッピー・ディ
スクや CD に入れて配布している(「MS-DOSの配布」と「ソース・コード
CD-ROM」参照)。
Free Software Foundation オリジナルのTシャツをまだ配布可能している。こ
れは、地元ケンブリッジの芸術家の Jamal Hannah によるデザインである。T
シャツの前は、上に「GNU's Not Unix」という文字が、下には「Free
Software Foundation」という文字が書かれており、ワークステーションの前
で GNU ハッキングしている図案である。Tシャツの前は、上に「GNU's Not
Unix」という文字が、下には「Free Software Foundation」という文字が書か
れており、ワークステーションの前で GNU ハッキングしている図案である。
色は生成りと黒の 2 種類である。生成りというのは、オフホワイトで脱色し
ていない無染料のもので、環境に優しい綿製、文字の色は黒である。着てよし、
飾ってもよし、というものである。黒は、文字が白で、深夜のハッキングには
もってこいである。全ての T シャツは糸目の太い綿100パーセントで、それぞ
れ M/L/XL/XXL の各サイズが揃っている。
Tシャツの前は、上に「GNU's Not Unix」という文字が、下には「Free
Software Foundation」という文字が書かれており、ワークステーションの前
で GNU ハッキングしている図案である。Tシャツの前には次のような柄がある。
Tシャツの背中には今まで何もなかったが、新しく「GNU General Public
License」という文字を入れた。
注文の際は「FSF注文票」を使っていただきたい。さらに、あなたの贔屓のハッ
カーへのプレゼントとしてもう 1 枚の購入を検討してほしい。
『本当に成功の見込みがあるからではなく、それ自体が良いものである
からそのために働け。』
-Vaclav Havel
Free Software Foundation 注文票
「非公式なGCCコンソシアム」や「GNU 速報」、「プロジェクト GNU の進捗報
告」、「 日本における第2回 GNUセミナー」、「日本での GNU とその他のフ
リー・ソフトウェア」、「現在配布可能な GNU ソフトウェア」で触れた全て
の人々に感謝する。
各種の貴重な援助をしてくれた MIT の 人工知能研究所やコンピュータ科学研
究所、プロジェクト Athenaに感謝する。
デラックス・パッケージを購入してくれた多くの企業と組織に感謝する。
日本で助力してくれている次の人々に感謝する。
引地信之、
引地美恵子、
半田剣一、
Bob Myers、
David Littleboy、
井田昌之教授、
日本Unixユーザ会、
(財)千里国際情報事業財団、
(財)東北産業活性化センター、
会津大学、
日本サン・ユーザ・グループ、
Paul Abramsonに対して。
コンファレンスでブースを貸してくれたSun Users Group、PCI、USENIX
Association に対して。宣伝場所をそれぞれ提供してくれたトロント大学書店
のWired Magazineや Barry Meikle に対して。
引き続き支援してくれた Open Software Foundation と、プロジェクト GNU
をあらゆる方法でもって支援してくれた Cygnus Support に改めて感謝する。
寄付と支援を行なってくれたWarren A. Hunt, Jr.とComputational Logic,
Inc.に感謝する。パートタイムのプログラマを1人提供してくれている
Aolborg 大学に感謝する。Emacs 19 の X 関連の機能をいくつか実装してくれ
たJamie Zawinskiに感謝する。
我々にマシンを貸与または寄付してくれた次の人々や企業、そして4mm の DAT
カートリッジ・ドライブを寄付してくれた匿名希望の方に感謝する。Cygnus
Supportは1台の Sun SPARCstation を、Hewlett-Packardは2台の80486マシン
に6台の68030ワークステーションと4台のSpectrumワークステーションを、
Thinking Machines Corp. の Brewster Kahle は 1 台のSun-4/110を、CMUの
Mach プロジェクトは1台のSun 3/60を、Intel Corp. は自社の386マシンを、
NeXTはNeXTワークステーションを、MITのメディア研究所は1台の
Hewlett-Packard 68020マシンを、ソニー株式会社 (東京) と株式会社SRA (東
京) は3台のSONY Newsワークステーションを、IBM Corp. は1台のRS/6000マシ
ンを、MITのコンピュータ・サイエンス研究所はDEC MicroVAXを、Open
Software FoundationはCompaq 386を、Delta Microsystemsは1台の Exabyte
テープ・ドライブを、Liant Software Corp. は 5 台の VT100を、Jerry Peek
は 1 台の 386 マシンを、NCD Corporation は 1 台の X 端末を、Interleaf,
Inc. と Veronika Caslavsky、Paul English、Cindy Woolworth、Lisa Bergen
は 1 台のスキャナの貸与を。
移植や拡張部分に貢献してくれた人々に、ソース・コードやドキュメンテーショ
ン、良いバグ報告に貢献してくれた人々に感謝する。
寄付金を送ってくれたり、その他の種類の援助を申し出てくれた人々に感謝する。
また、マニュアルや配布テープ、フロッピー・ディスク、CD-ROMを注文するこ
とで支援してくれた人々にも感謝する。{GNUダイジェスト作成者謝辞: 多部数
の「GNUダイジェスト」を製本、印刷してくれた(株)ビレッジセンターの中村
満氏に感謝する。}
本小冊子の作成でもって、我々の行なっていることに関心を示してくれた全て
の人々に対して感謝の意を表したい。
付録: GNU一般公有使用許諾書 バージョン2.0