Translated by おくじ
Georg の Brave GNU World の新たな号へようこそ。 ミュンヘン (ドイツ) で行われた「Systems」コンピュータ・ショー (訳注: ヨーロッパで最大級の商業的なコンピュータ・ショー) に訪れた際に重要だと気付いた、より理論的な問題に向かうよりも先に、 いくつかのプロジェクトを紹介することから始めましょう。 より実際的な部分から開始させてください。
Userv
Ian Jackson による Userv (「you serve」) [5] は「あるプログラムが他のプログラムを起動できるということを、 それらの間に信頼関係が存在するときに限って認めるという Unix システムの機能」のような仕様によって定義されています。 このことは多くの人々にはあまり重要でないかもしれないので、 もう少しだけ説明します。
Unix システム上では、あるプログラムがあるタスクを行うために、 あるユーザの権限が必要であるような場面を度々経験します。 この標準的な問題にはいくつもの解決策が存在しますが、 それらはほとんど全てがセキュリティに関して、危険な問題を生み出してしまいます。 一つの可能性は特権的な部分を C で記述したり、 C のラッパー越しにそれらを呼び出すことです。 そのようなプログラムは我々の元々のプログラムが持っていた、 あらゆる権利を受け継いでいるので、 我々はそれに絶対的な信頼を置く必要があります。 その手法はまた、間違いを犯しやすいのです。 呼び出されたプロセスがその親から受け継ぐものは、 様々な種類の Unix 間で変化します。 このことが通常意味することは、何かが見落とされているか、 そのプログラムは移植できなくなるかです。
その問題に対する別の解決策は、通常セキュリティの境界の一方が root であることを要求するという欠点を持つ、 「sudo」プログラムによって与えられます。 これは少なくとも、 あるプロセスはそのタスクを果たすのに必要な権限だけを得るべきであるという、 最低特権 (least privilege) の原則に反しています。 しばしば受け継がれた資源が適切に解放されないことも起こるので、 その分離はあまり優れていません。
これらが userv が解決しようと試みている問題です。 一つのあり得る使用法は、root であることを必要としない、cron の変形でしょう。 cron にセキュリティ・ホールがあっても、 悪意ある侵入者に与えられるのは、 様々な時間に cron ジョブを走らせる機会だけでしょう。 その侵入者はもはやシステム全体の制御を奪うことはできないでしょう。
これはまた、インターフェースと内部の十分な分離が致命的になる得る、 CGI スクリプトを持つウェブ・サーバにも非常に興味深いです。 実際、この目的のために userv はすでに使われています。 ケンブリッジ大学は、 学部に中央的なウェブ・ホスティング・サービスを提供するために、 あるプロジェクトの中でそれを使用しています。
userv の 1.0 リリースは目前であり、 GNU General Public License でライセンスされているので、 自由に利用することができます。 その作者はその構成に慣れるのに少し時間がかかるかもしれないと認めているものの、 このプロジェクトはきっと見てみるだけの価値があります。
次の二つプロジェクトも GNU General Public License でライセンスされており、 Jason Nunn によって書かれました。
Clobberd
Clobberd [6] によって、ユーザの活動を監視したり、 時刻とネットワークの活動を記録することができます。 これを成し遂げるために、デーモンが utmp ファイルから情報を抽出し、 ユーザがウェブ・ページの clobbertool によって、 現在の統計を観察できるようにします。 ユーザの設定を編集するために、管理者は clobberedit というツールを使用できます。
clobberd の最大の利点は明らかにインストール作業や使用が容易であることです。 あいにく、その作者は GNU/Linux 以外での Unix では問題があることを予期しており、 clobberd は常にファイアウォールの中で使用されるべきです。
ある程度たくさんの数のユーザがいるネットワークで一番役に立ちます。 Jason Nunn は 家のプライベートなネットワークを GNU/Linux ゲートウェイでインターネットに接続している人について話してくれました。 彼は今彼の息子を監視するために clobberd を使っているので、 息子はもっと宿題をやるようになり、ウェブをサーフィンしなくなるでしょう。 役に立つツールはときどき邪悪な目的に使われ得るということが分かります。.-)
La51
La51 [7] は Siemens sab80c537 に調整されている、 小さな 8051 (MCS-51) クロス・コンパイラです。 そのプログラム自体は非常に小さくて、 IS Mackenzie による「The 8051 Microcontroller」第2版という書籍に基いています。
Jason Nunn はそのコンパイラは「完全でない」と言っていますが、 彼がいくつかのプロジェクトを作るのに役立ちました。 その助けによって、例えば、VT52 端末エミュレーションを記述することができました。 彼が考える唯一の現実的な問題は、 そのコンパイラは Intel Hex ファイルしか作ることができないということですが、 それは十分に試験されているので、この欠点を埋め合わせるに余りあるはずです。
これは多分読者のうち、ほんの一部にしか興味を持ってもらえないと想像します - だからすぐに次へ行きましょう。
CUPS
Easy Software Products による CUPS (「Common Unix Printing System」) [8] は昔なじみの Unix 印刷アーキテクチャの代替となり得るものです。 その進んだ特徴は、 現在の印刷サービスに満足していない人々にとって、 大変興味深いはずです。 CUPS は GNU General Public License でライセンスされているので、 新しいアーキテクチャに乗り換えるのに法的な問題は全くありません。
伝統的な機能の他に、CUPS はコマンド・ラインでメディアの大きさや解像度を設定することを可能にしています。 しかしもっとあります。 たくさんの異なるハードウェアの上で通信ができる、 特別な「バックエンド (backend)」モジュールがあり、 また、CUPS は組み込みのユーザ認証機構を持っています。 大きめのネットワークを管理する人に安堵のため息をもたらす別の特徴は、 ネットワーク・プリンタを自動的に見付けて設定する能力です。
現在のところ、最大の問題は CUPS は一般的な lpd の印刷インターフェースをサポートしていないという事実で、 そのため、これに依存しているクライアントは難問に行き当たるでしょう。 でも、ある解決策に取り組んでいますけど。
次のバージョンへの将来的な計画には、 より強力なジョブ/ユーザ処理や送信の暗号化が含まれいます。
これらの話題があなたにはあまりに「内部的」過ぎたなら、 次の特集はもっとあなたの好みに合うだろうと思います。
SADP
今月の他のプロジェクトと同じく、Sing Along Disc Player (SADP) [9] は GNU GPL でライセンスされています。 SADP はたくさん余分なものの付いた CD プレイヤーです。 その特徴には、「実行時に (on the fly)」大きさを変えることのできる、 スペクトル・アナライザやオシレータが含まれています。 また、内蔵ミキサーや、優れた CD プレイヤーに期待されることのある、他のオプションがいくつもあります。
SADP はローカルな CD データベースを持っており、 またインターネット越しに外部のデータベースにアクセスすることもできます。 幸運にも、CDDB や FreeDB、CD-INDEX プロトコルをサポートしているので、 既存のリソースに直接アクセスすることが可能です。
その作者は、SADP が非常に様々なローカル環境で上手く機能することが、 彼にとっていかに重要であるかを強調しました。 だから、SADP はインターネットやサウンドカードを使用することができますが、 それらに依存してはいないのです。 それはまた、やや小さくて、安定しており、ユーザに親切でもあります。 その最大の問題が「おしゃべりな」 CD ドライバや XForms のいくつかのバグによって生じています。
この10月に、SADP は 4Front Technologies から賞金を授与したので、 それをよく調べてみることはきっと時間の浪費ではないです。
実践的な部分はもう十分なので、Systems '99 で居た間に気付いた事について検討したいと思います。
GNU GPL について
GNU General Public License はそれに反対する人々から「ウイルス」と呼ばれてきました。 私はこの軽蔑的な言葉があまりにも容易に受け入れられてしまっていることに、 ふと気が付きました。
この文脈において、人々はそれがライセンスするコードに「伝染する」 GNU GPL のことについて話します。 そのウイルスとの類似性は、GPL は制御できずに広まっていき、 公衆に被害を及ぼすことをほのめかしています。
害について語るなら、 我々はまず最初に何の害について話しているのかを考察する必要があります。 GNU General Public License はあらゆるユーザに、ソフトウェアを利用したり、 それを改変したり、 その元々のバージョンや改変したバージョンを配布する権利を与えます。 唯一の制限は誰も他者からそうした権利を奪ってはならないということです。 だから、他のユーザからその権利を奪いたいと考えている人々だけが、 それによって害を受けたと感じるのかもしれません。
ここでよくある反論は、GNU General Public License はまた FreeBSD ライセンスのような、 他のフリーソフトウェアのライセンスと非互換だということです。 これは正しいです。
[1999年12月31日] あいにく、これは完全には正しくありません。 GPL と BSD ライセンス に基くコードを組み合わせることは不可能でした。 FreeBSD と GPL の組み合わせは、その組み合わせが GPL に基いて公開される限りにおいて、可能なのです。 その部分のライセンスは、そうするとき、そのまま残ります。 しかし、この特徴はむしろ上手く、 そのライセンスのモデルに潜む論拠を説明しているので、 私はそれを取り除かないでおこうと思います。 迷惑をおかけしてすみません。
でも、もっと重要なことはこの非互換性の源です。 コードの二つの部分が統合されるたびに、 それらのライセンスが互いに矛盾していないことが必要なのです。
理論的には、GNU GPL を基にしたコードは、 他のライセンスを基にしたコードと大変上手く統合させられます。 実際には、特に GNU General Public License が提供するユーザの権利の保護は今でもなお独特なので、 他のフリーソフトウェアのライセンスとの組み合わせが問題となってしまいます。
そして、たくさんの人々が FreeBSD ライセンスは GNU GPL よりも「もっと自由」 だったと主張します。 これによって生じる議論は本質的に国家哲学の基礎に関しています。 この哲学は、自由と自己決定を最大とするには、 個人に対して絶対的な自由を与えないことが必要である、という逆説を扱います。 ある国の市民権によって、 我々は社会の利益のためにある自由を放棄することに同意します。 我々が放棄してしまっている自由の一つの例は、 ある人の配偶者が好きだからという理由で、 その人を頭越しに棍棒で殴るという自由です。
ソフトウェアについてのユーザの権利を制限するという場合には、 これはほとんど常に「みんなに対抗するひとり」の状況です。 何がより重大になるのでしょうか。 人類の残りの人々の自由を制限するひとりの自由か、それとも、 大多数に対する自由の保護か? この問がどのように答えられるべきか、いくつもの意見が存在します。 だけど私は、たった一つの答えだけではなく、 より多くの答えがあって良いだけの余地と寛容さがあるはずだと思っています。
最後に、私が上で述べた非互換性は異なる哲学的見解から生じています。 GNU General Public License について話すとき、軽蔑的な言葉を使って、 別の意見に反応するのは - 少なくとも私の意見では - 誤りであり、 幾分偏狭です。 そのため、適切な反対を行わないでこの言葉を受け入れてしまわないよう、 あなたにお願いしたいのです。
ほとんど終わって...
これは一つの月には十分な分量だったと思われるので、私の System '99 の結果の第二部は来月に延期します。 だけど、2、3、言っておきたいことがあります。
まず第一に、私は「We run GNU」 [4] のページをデザインし直すという作業を行ったので、 今ではあまりふくれて上がってなくて、使い勝手が良くなっているはずです。 望むらくは、遅い接続でもアクセスできるでしょう。 Ben Stickan による PenGNUin のような新しい図案もいくつかあります - だから見てください。
また、「Brave GNU World」 T シャツには本当にある程度の関心があって、 ほぼ決定的な数に達したと推測します。 今私はその下絵を考え始めました。 電子メールで私に届いた一つの意見は、 肩に世界を担いだアトラスのようなヌーというものでした。 私の図画の才能はとてもそのような絵には十分でないのですが、 それは非常にいかしていると思います。 誰か、興味はあるかい?
今月はこれでおしまいですが、意見や質問、批判、 他の興味深いプロジェクトに関する電子メールを出すのをためらわずに、 どうかいつも宛先 [1] へ。
情報 |
[1] 意見、批判や質問は Brave GNU World <column@gnu.org> まで
|
GNU のホームページの戻る。
Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.
Please send comments on the Brave GNU World column to column@gnu.org, send comments on these web pages to webmasters@www.gnu.org, and send other questions to gnu@gnu.org.
Copyright (C) 1999 Georg C. F. Greve, German version published in the Linux-Magazin
Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.
Last modified: Tue Nov 30 14:18:36 JST 1999 greve