ここでは筆者が実際に行ってきたことをもとにPlan9の雰囲気を伝えて行きたいと 思います。
ファイルサーバには2台の500MB の SCSI ハードディスクが接続されています。 CD-ROM 版のPlan9は 500MB のハードディスクには入りません。さらにユーザ領域を 確保するには全体で1GB程度のディスク領域が必要になります。 普通のOSでは500MBのハードディスクを2台接続したからと言って、CD-ROMをそのまま インストールすることは出来ません。きっとCD-ROMの一部分だけを分離して1つのハードディスクに入れ、そのあと残りをもう一つのハードディスクに入れる事になるでしょう。でもPlan9 はちょっと違います。複数のハードディスクを纏めて1つのハードディスクに見せかける能力を持っています。ハードディスクへの書き込みはインターリーブされ、1個のファイルも複数のハードディスクに分散されて格納されます。そういう訳で 小さな余りもののハードディスクがPlan9で活躍しています。
小さな規模で使う限り、ファイルサーバには強力なCPUは必要ありません。実際のネックはイーサネットの速度にあります。ベル研究所のように光ファイバを使うなら話は別です。Plan9のファイルサーバは素晴らしく安定しており、これまで一度も転けた事はありません。安定している原因は、ここでは1つの仕事だけが行なわれているからでしょう。Plan9にとってディスクは本来は WORM(Write Only Read Many) と呼ばれる書き込み可能光ディスクに対するキャッシュでしかありません。ですから WORM を取りつけなければ本来のファイルサーバではないのですが、お金がないので私のシステムでは WORM は省かれています。
認証サーバを独立させたのは、この方がシステムのリブートが容易だからです。 通常はtftpサーバはCPUサーバと兼用になりますが、どうせ認証サーバの仕事量は 殆どないのですから、この際もっと働いてもらうことにしました。認証サーバを独立させる他のメリットもあります。私の認証サーバではリモートログインを禁止しています。従ってユーザは認証に関係したファイル(暗号化されていますが)には外部から全くアクセスできません。
CPUサーバにはもっと能力のあるパソコンが欲しいのですが、お金がないのでここは がまんしました。端末と同じCPUではCPUサーバを設ける理由がありませんからね。 でも今は plan9.aichi-u.ac.jp として活躍して貰っています。
Plan9端末は、実は他と同じ i486DX2 と言ってもさらに一世代前のもの。でも筆者は 他の3つよりもこの古いコンピュータが気に入っています。プラスチックの華奢なフレームではなく、ちゃんとした金属のフレームで、もうケースが行方不明になっていますが、裸でしゃきっと立っています。ボートの試験には最適なのですね。Plan9端末は i486DX2 クラスのパソコンでも軽快に働きます。
これらのコンピュータは何れも10BASEのイーサネットで接続されています。 本当はPlan9はこんな接続の仕方をしてはダメなのです。少なくともCPUサーバとファイルサーバの間だけは 100 BASE のイーサネットで接続したいものです。
さてこれからが本論です。
Plan9のアップデートはCD-ROM の内容との差分で配布されます。従って、アップデートを行う時には必ずCD-ROMのソースがPlan9のファイルシステムの一部、しかも
/sys/src
の場所に見えていなければなりません。他のOS であれば、CD-ROMのコピーをUNIX側に移してしまったらアップデートの時に困ってしまいます。でもPlan9では大丈夫。
Plan9ではエンドユーザの権限で他のPlan9のファイルシステムやUNIXのファイルシステムをマウントできるのです。しかも好きな位置にマウント出来ます。
私のファイルサーバではソースコードを置く位置
/sys/src/
以下は空のディレクトリです。(正確に言えばコンパイルに必要な数個のファイルが
入っているだけです)
アァプデート版をコンパイルしたい時にだけ私はあるおまじないをかけます。
すると、/sys/src/
以下にはCD-ROM 版のソースコードが現われます。
エンドユーザの権限でマウントできるばかりか、書き込み禁止になっているシステム
領域である /sys/src/
にマウントできるのです!
UNIXの常識では考えられなかった事がPlan9では可能になります。このようなことを 許してもセキュリティは完璧に保たれているのです。なぜならPlan9の mount コマンドは他のユーザ、他のプロセスに一切の影響を与えないからです。
/sys/include/
以下のファイルに手を付けません。問題が発生するだろうと考えるのはUNIXユーザの
常識です。Plan9ではエンドユーザの権限で実質的に /sys/include/
以下のファイルを
変更できるのです。 $home/X/sys/include/
)に、変更が発生したインクルードファイルの改訂版を持っています。Plan9 にはbind と言う命令があり、これを使って、/sys/include/
の見え方を変更しているのです。
bind -b $home/X/sys/include /sys/include
以上で分る通り、Plan9ではファイルシステムの見え方をエンドユーザの権限で変更できます。UNIXではエンドユーザに許されているファイルシステムの編成はホームディレクトリから下だけです。従ってホームディレクトリから上の変更が必要になる場合にはUNIXではどうしてもシステム管理者にお願いしなければなりませんでした。そして大抵の場合には管理者はエンドユーザの要求を聞いてくれません。そのためにあきらめていた事の多くがPlan9では可能になるのです。
cpu
もしもあなたが anonymous FTP でディレクトリツリーごとコピーを取りたいなら、 Plan9端末はそれを可能にします。Plan9には ftp コマンドはありません。その代わり、もっと気のきいたコマンドてである ftpfs コマンドが存在します。 このコマンドはftpサーバのディレクトリをPlan9のファイルシステムの一部として見せてくれます。ftpサーバからファイルを取ってくるのに、cp や tar などの Plan9 のコマンドがそのまま使えるのです。