Free oftware の世界 18 続・ Lar Ⅳ W 訓の異常な愛情 P. D. StalImen % 置換とは、 rn 使用時のコマンドやマクロ、 rn が参照す またお会いしましたね る環境変数のなかに入れておいた % で始まる変数を、 rn が 実行時に適当な値に置き換えるものです。たとえは、現在 すいぶんと遅くなりましたが、お約束していた rn の紹 軏んでいるニュースグループの名前や記事番号などをとり 介第 2 弾をお届けします。前回 ( 1990 年 6 月号 ) は、 rn をは 出すのに使えます。環境変数は、 . cshrc や . profile 、また は rn の起動時に指定して、 rn が扱う文字列、たとえは記 しめて使う方を対象としておもに起動時のスイッチ指定と 内部コマンドについての説明をしました。今回はすでに使 事のヘッダなどの設定を変更するために使います。 一方のマクロ機能は、 rn 実行時にキーポードから入力さ い始めて何カ月かたち、 rn ・に細かいチューニングを施した れる文字をマップし直したり、長い文字列を少ないキース い方のために、実行時にパラメータとしてもっているさま ざまな値のとり出し方、また種々の設定の変史方法など、 トロークで入力したいときなどに使います。 % 置換は随時 いわば変数の使い方についてお話しすることにします。 おこなわれますが、環境変数とマクロ定義はいったん設定 れらの変数が自在に使えるようになれば、自分の環境によ すれは以後その値がすっと保持されます。 一見すると、前者は動的、後者は静的な設定のような気 り密着した rn を作り上げることができます 1 。 がしますが、しつは環境変数もマクロも % 置換を含んだ設 さまざまな変数 定ができるのでかなり柔軟な文字列操作ができます。柔軟 な文字列操作の何が楽しいかというと、たとえは F コマン rn はしつにさまざまな文字変数を扱いますが、これらは ド ( 引用付き関連記事の投稿 ) を使う際に rn が用意するヘ 次の 2 種に大別できます。 ッダの書式や内容、記事の投稿のために呼び出すプログラ ムの設定などを自分用に特化できることです。 % 置換 上記の設定の解釈には、ファイル名展開、バックスラッ : rn によって設定される変数 環境変数、マクロ シュ展開、そして制御文字展開が適用されます。前回にお : rn に対して設定をする変数 話ししたように、ファイル名展開は、、 ? 〃や、、 * 〃など、 シェルで用いられるのと同しスタイルのものです。これに もちろん、マクロは変数とは異なります。しかし、実行 中にも & & コマンドで設定を、、変〃えられること、また実行 は、 csh などと同様にログイン・ディレクトリを指定する 、、 / 〃、、 ~ ューザー名〃という書き方も含まれます。バックス 環境の設定という点では環境、、変数〃と同様に捉えられる ラッシュ展開は、 C 言語などに出てくる、、 \ n 〃、、 \ t 〃、、 \ 8 進 ことなどから、ここでは変数と同等に扱います ( & & コマン 数〃のことです。また制御文字展開は、たとえば、、 \ 007 ′ ドについては「マクロ」の項でお話しします ) 。 % 置換のい くつかは環境変数の値を反映するので、変更も可能です。 を表すのに実際にそのキャラクタを入力しなくとも、、 と、、 G 〃を入力すれば、解釈してくれるということです。 1 作り l•.tf るといっても、コンパイルし直すわけではない。むしろ、コンパイル それでは、これらの使い方をひととおり眺めてみましよう。 時などとは異なる設定をして、自分Ⅲの rn 実行環境にしようというものであ 二一口 る。 76 UNIX MAGAZINE 1991.2
FreeSoftwa 「 e の世界 UNIX MAGAZINE 1991.2 ¯V いる範囲にとどめる。 發細にすぎるのと改変の可能性を考慮して、 こではマニュアルに記載されて 11 この条件を確認するために、ついにソースを読んでしまったが、すこしばかり 環境 (environment) 変数の設定。 rn に対する環境変数 ー E 環境変数 = 値 にもとづいておこなわれます 11 。 いるかどうかが判断されるだけで、更新自体は別の条件 ありません。そのタイミングで更新すべき条件が揃って は、指定数の記事が表示されるごとに更新するわけでは を、表示された記事の数によって指定します。実際に 事の番号などの ) 更新をどれくらいの頻度でおこなうか . newsrc のチェックホイント指定。 . newsrc の ( 既読記 ー C 記事数 だろうか、などと不安になるときにどうぞ。 いいが反応が遅く、いったいほんとうに、、 y 〃と打ったの ドも復唱するようになります。コマンドをタイプしたは すが、このスイッチが指定されると rn は 1 文字コマン ンドが画面に現れるのは複数文字コマンドの場合だけで (verify) コマンド確認モード。通常は、タイプしたコマ されているかもしれません。 よっては、 rn 作成時にこのスイッチがデフォルトで指定 送速度で rn を使うときのためのものです。システムに らのメッセージや質問がたいへん短くなります。低い転 (Tersemode) 簡潔表辰このスイッチによって、 rn か 示されます。 指定されているものを除いて、この値に関係なく全部表 よって、 rn 自身が設定しています。ヘッダ部分は、 -h で しめに何行表示するかを設定します。通常は転送速度に 初期 (initial) 画面長の設定。記事を表示するときに、は -i ラ数 できない位置を指定すると、最下行になります。 定します。デフォルトは gl で、画面の最上行です。表示 かから捜し出した行を画面の何行目に表示するかを指 検索文字列を含む行の表示位置。 g コマンドで記事のな -g 行位置 指定してあるときのみに有効です。 レイの種類によっては、できないこともあります。 -e を 面を消さすに 1 行ごとに上書きしていきます。ディスプ の設定をするためのスイッチです。起動時に設定しても いいし、 rn 実行中に、、 & ー E 環境変数 = 値クとすることも できます。もちろん、あらかしめシェルに対して設定し てあっても rn にとってはまったく同しことです。いく つもの設定をしたいときは、 —EVISUAL=/usr/10ca1/bin/nemacs 一日一化 = 7 に L -EDOTDIR=%p のように、何回も -E を指定すれば大丈夫です。設定され た環境変数は、すべて rn が呼び出すプログラムにも受 け渡されます。 セープ先の設疋。このスイッチを指定すると、 S AV E D I R のデフォルト値が % p/ % c に、 SAVENAME が %a に設定されます。また、代わりに 、、十尸と設定すると、それぞれ % p と % C になります。 rn 作成時にこのどちらかが設定されているはすですの で、 & ( 引数なし ) で確かめてみてください。あくまでデ フォルト値なので、 SAVEDIR や SAVENAME を指 定すれはそちらが優先されます。 これで私もエキパート ? すっかり長くなってしまいました。 rn の機能があまりに も多く 12 、またコンパイルの際のパラメータ設定の自由度 があまりに高いためです。 もしここに書かれていることを日常的にしている人があ れば、その人は間違いなく rn の変人に近い上級者と呼ん でいいでしよう。そうでない人は、この記事を読みながら ひとつひとつ自分なりの設定をしてみてください。真の変 人は、自分のニュースリーダを perl あたりで作ってしまっ ていることでしよう。 rn 上級者は、こまで読んでまだ説明されていない機能 があることに気がつくと思います。しつは、ほんのすこし だけ、しかしとてつもなく凝ったことをしたい人には必要 かもしれないことが、説明されすに残っています。それが 何か知りたい方は・・・・・・これだけは言うなと念を押されてい たのですが、マニュアルを読んでください。 12 先日、別のニュースリーダ nn のマニュアルを横から見て、その解説記だけ は絶対書くまいと思った。 87
F 「 eeSo 代 wa 「 e の世界一朝 こちらは私有です。記事を自分でセープするためのディ うにするためです。これに対して、、、 % s 〃はサプジェク レクトリで、普通は /News です。、、一 d ディレクトリ名〃 トそのものをとり出したいときに使います。 のスイッチ指定によって好みの場所に変えられます。 rn は、起動後に % p ー 0 見在ディレクトリを移します。 メールの送付先 ( 、、 To : 〃ヘッダの内容 ) 。現在記事の 、、 From: 、、 Reply-To:" のヘッダから生成され、、、@ク (Original working directory) rn を起動したディレク を用いたインターネット・アドレス形式になります。 トリ。、、 % p 〃が固定なのに対してこれは rn を起動するご とに異なるので、より柔軟にセープ・ディレクトリなど メールの送付先。こちらのはうは経路へッダ ( Path : ) か を選びたいときに使います。 らとり出されたもので、、、 ! 〃でつながった UUCP 形式 になります。 ホームディレクトリ。環境変数 HOME の値をもちます。 己事、ライプラリの格納場所 (Destination used before4) 前回に記事をセープした これらの変数は、届けられた記事が格納されているディ ファイル名。、、 s % b 〃などと入力すれは・ 1 回前にセープ レクトリ / ファイルと、ニュースシステムや rn のためのラ したときと同しファイルに記事が書き加えられます。 イプラリ格納ディレクトリを示します。 現在記事のバイト長。 (Public news SP001 directory) 記事が格納されている %B (Byte offset ) 記事の先頭から実際にセープする部分ま ディレクトリ。 nntp で記事を読むシステムでなければ、 でのバイト数。 S と s コマンドはこの変数を 0 に、 W と 通常は /usr/spool/news です。この下にニュースグル w コマンドは記事本体まで ( おもにヘッダ部を含む ) の ープの構成にしたがってサプディレクトリが用意され、 バイト分に設定します。 % B は、これらのコマンドが呼 それぞれに記事が格納されています。 び出す外部プログラムを別のものと替えるときに使うこ とになるでしよう ( 環境変数 MBOXSAVER 、 NORM (newsgroup directory) 現在記事が格納されているデ SAVER 、 PIPESAVER の説明を参照 ) 。 ィレクトリのフルバス名。 %P/%c と同値です。 %x 実行環境設定情報 ニュース・ライプラリ・ディレクトリ。ニュース管理の 以下の変数は、 rn が環境設定を読み込むとき、または rn ためのライプラリ・プログラムや記録ファイルなどが置 に読み込ませたいときに使います。 いてあるところです。 rn ライプラリ・ディレクトリ。 rn に特有なライプラリ・ フログラムやシステム・デフォルト設定ファイル ( INIT ) が置いてあるところです。 設疋ファイル ( . newsrc 、 . rnmac など ) が置いてあるデ ィレクトリ。 rn は、起動時にこのディレクトリで設定フ ァイルを探します。設定ファイルがみつからないと、使 用者が rn をはしめて使う場合とみなして前回に紹介し たような初心者用のメッセージを出力します。環境変数 DOTDIR によって変史されていなけれは、ホームディ レクトリが % . の中身になります。 セープ関連情報 以下の変数は、おもに記事をセープするときに使えます。 (private news directory) 私有ニュース・ディレクト リ。 % P が公共ニュース・ディレクトリなのに対して、 4 この語呂合せは、筆者の想像である。 79 UNIX MAGAZINE 1991.2
FreeSoftwa 「 e の世界一⑩ % { 環境変数 } % { 環境変数ーデフォルト } その他 はスペースに置き換わります。 標準出力を取り込むときに使います。出力中の改行文字 指定したコマンドの出力結果。こちらは、プログラムの % ' コマンド ' 境変数をマクロに取り込むときなどに使います。 環境変数の値。未定義の場合は、、デフォルト〃。種々の環 をテキストに入れる場合は、、、 \ 〃でエスケープしてくだ りに否定を表わす、、ドも使えます。 が、その場合は””を指定したのと同しです。、、 = 〃の代わ トになります。非成立時テキストはなくてもよいのです すれは成立時テキスト、そうでなけれは非成立時テキス 条件マクロ。この値は、条件テキストがパターンに合致 % 條件テキスト = パターン ? 成立時テキスト : 非成立時テキスト ) キーポードから文字列を入力し、これに置き換えます。 その場での入力。画面に指定したプロンプトを出力して % ”プロンプト” 種類があります。 rn の現在モード。上述の条件マクロで用います。以下の M R groups?" あるいは同様の質問が出ている状能 ・、し、 0 記事をセープしようとして、、、 Use mailbox for- mat?' あるいは同様の質問が出ている状態。 過去にいったん購読を中止したニュースグループを 復活させるとき、、、 Resubscribe to this news- group?' あるいは同様の質問が出ている状賤 1 n a P A C D (lnitializing)o 起動時の初期設定中。 (Newsgroup selection level) 5 。 フ。選択レベル。 (Article selection level) 5 。記事選択レベル。 (Pager level) 5 。ページャレベル。 新しいニュースグループを登録するかどうかについ て、、、 Add this newsgroup?" あるいは同様の質問 ニュースグノレー 起動時に rn が無効と判断したニュースグループ ・ e い 0 の質間が出ている状能 直後で、、、 Do you really want. (Catchup confirmation)o 、、 c 〃 バ、 0 が出ている状能 コマンドを叩いた bogus news- ア′あるいは同様 が . newsrc にみつかり、、 \DeIete 5 各レベルの詳細は、前回の記事かマニュアルを参照。 80 なお、 rn はコンパイル時の設定にかなり自由度があるた め、使用する rn によってはここに挙げた以外の質問文 が現れる可能性があります。 %M M コマンドによって再度読めるように印を付けられた (Marked) 記事の数。マニュアルにも書かれているよう に、現在のニュースグループ内で何回 M コマンドが使 われたかを数えているので、次のニュースグループに移 るときに、 SReturning 5 Marked articles... 〃などと 表示されたとしても、印を付けた記事の数はそれより少 ない可能性もあります。 実行中の rn のプロセス番号。 。。パーセント記号のエスケーフ。。 修飾子。これを使って、 % 置換の値の最初の文字を大文 字にすることができます。たとえば、 %C が、、 fj. rec. food 〃だとすると、 % C は、、 Fj. rec. food 〃になります。 修飾子。最後のソ〃の直後の文字を大文字にします。た とえは・、 % c が、、 fj / rec / food 〃だったとすると、 %-c は 、、 fj/rec/Food" になります。 rn が扱う環境変数には、以下のものがあります。 rn のふ るまいを好みに合わせて調整するには、 % 置換をうまく使 ってこれらの変数を設定していくことでおおむね達成でき ます。設定はシェルの初期設定ファイルに書いておいても よいし、 -E スイッチで rn に渡してやることもできます ( 彳あの「コマンドとスイッチ ( 補遺 ) 」を参照 ) 。 それぞれの項には [ ] 内にデフォルト値を書き添えてあ 環境変数 UNIX MAGAZINE 1991.2
FreeSoftwa 「 e の世界 プ全体の状態を表す変数です。 これらは、記事そのものではなく、あるニ 現在ニュースクループの状況、名前 ュースグノレー 現在ニュースグループの未読 (unread) 記事の数。 %U 現在ニュースグループの未読記事の数。現在記事は含み ません。新しい記事を読む際に、あといくっ残っている かを表示するのに使われます。 %c 現在ニュースグルーフ (current newsgroup) の名則。た とえは、、、 fj/comp/misc 〃のようなディレクトリ表現形 式になります。 ニュースグループの格納ディレクトリを表しています が、ニュースグループの論理構成になっているので、自 分のファイルとしてセープする際のディレクトリとして 用いれは分類がしやすくて便利です。 現在ニュースグループの名前。たとえは、、、 fj. comp. misc" のような . newsrc で用いられている形式になり ます。すべてのニュースグループの記事を単一のディレ クトリにセープしたいときなどに便利です。 投稿、返信の際に用いられる情報 以下の変数は、記事や返信を作成するときに投稿先や送 付先などを設定するのに用いられるもので、現在記事のヘ ッダなどから引用された情報が入ります。 ヘッダひと揃いが入っているファイルの名前。 rn 自身は メールの送付や記事の投稿を扱わす、そのために独立し た別のプログラムが呼ばれます。ヘッダ ( 引用記事を含 む ) は、メールや記事を生成できるように % h で示される ファイル ( 通常は % . /. rnhead ) にいったん格納され、そ のファイル名が送付 / 投稿プログラムに渡される仕掛け になっているのです。ヘッダファイルの書式は、環境変 数 MAILHEADER 、 NEWSHEADER 、 CANCEL- HEADER で指定できます。 78 関連記事 (FoIIowup) の投稿先 (Newsgroups)0 現在記 事のヘッダと同し投稿先か、関連記事の投稿先 (Follow- up ー To ) が指定されている場合はそちらになります。 参照表示文字列 (reference indication) 。 F コマンド や R コマンドで記事を参照 ( 引用 ) する際、各行の先頭に は %I に設定されている文字列が挿入され、その行が引 用した部分であることを表します。通常は、、〉クですが、 スイッチで、、一 F 文字列〃のように変更できます。 関連記事のヘッダに現れる参照記 (References)—覧 表。現在記事のなかの参照記事一覧と現在記事自身の識 別子から構成されます。 現在記事の識別子 (Message-ID)0 ホスト名。 rn 使用者のログイン名。環境変数 USER または LOG- NAME の値が入ります。 %N rn 使用者の名前。環境変数 NAME で設定されます。 % 0 rn 使用者の所属機関 (Organization)0 これも環境変数 ORGANIZATION でデフォルトの設定を変えられま す。記事やメールのヘッダに使われます。 %S サプジェクト (Subject) ヘッダから、、 Re 〃を 1 つだけ削 ったもの。なせ、、 Re : 〃をとるかというと、関連記事を投 稿するときには伝統的に元の記事のサプジェクト・ヘッ ダに、、〇〇に関して〃という意味の、、 Re : 〃という文字列 を挿入します。しかしながら、その記事についてさらに だれかが関連記事を投稿するというようなことが続けは・、 サプジェクト・ヘッタ、が、、 Re : 〃だらけになってしまいま UNIX MAGAZINE 1991.2 は、関連記事のサプジェクトで、、 Re : 〃の数が減らないよ は・、その後の操作が簡単になるのです。 1 つだけとるの めには、 % S のように、、 Re : 〃をとり去った文字列があれ え、あればそのままにする必要があるわけです。そのた す。そこで、元の記事に、、 Re : クがなければこれを付け加
FreeSoftwa 「 e の世界 設定が書き込まれたファイル名と解釈されます。 Wall KILLLOCAL 局所削除ファイルを置くディレクトリ。局所削除ファイ 氏は、たくさんの環境変数を利用したいがそのすべてを ルのほうは、ある 1 つのニュースグループて特定の記事 環境中に置きたくないとき、またははかのプログラムが に関する設定をするためのファイルです。 用いる同し環境変数とは値を変えたいときに一 E スイツ C$p/% c/KILL] チを用いるように勧めています ( 「コマンドとスイッチ ( 補遺 ) 」を参照 ) 。 表示制御変数 [ なし ] 画面には記事のほかに、何種類かの情報が表示されます 書込み用ファイル が、これらはそうした表示の書式を規定するものです。 こに挙げるのは、セープその他の目的でファイルに書 き込む際のファイルやディレクトリを指定するものです。 SUBJLINE サプジェクトの表示書式。記事選択レベルで = コマンド を叩いたときに出る表示の書式です。通常は、サプジェ SAVEDIR クトヘッダの内容を示します。 [%s] 己事セープ・ディレクトリ。記事をセープする際、出力 先ディレクトリの指定がない場合に使用されます。これ FIRSTLINE が設定してあると、 -d スイッチが指定してあってもセー 記事を画面に表示する際に最初に現れる行。デフォルト 定義にもあるように、通常は、記事番号、未読記事の プ用コマンドはデフォルトでこのディレクトリのファイ 数、再度読むために印を付けた記事の数、 ルに書き込めます。ただし、その場合でも % p の参照値は ニュースグノレ ープ名です。 ー d で指定したままです。 [Article %a % ( % U % M ! 二 00 $ ? ()U more% ( % M ! 二 0 $ ? ・ 十 %M Marked to return) \ ) ) in %C: ] スイッチ、、一 / クが指定されている場合、 %p/%c スイッチ、、十 / 〃が指定されている場合、 %p MAILCALL メール着信表示。 rn 使用中にメールが届くと画面の左下 に知らされますが、これはその際のメッセージです。 SAVENAME [ (Mail) ] 記事セープファイル。記事をセープする際、出力先ディ レクトリしか指定がなかった場合に使われます。 送出ファイル書式 スイッチ、、一 / 〃が指定されている場合、 %a rn 使用中に送るメールや記事などの書式は、以下の変数 スイッチ、、十 / ' ' が指定されている場合、 O/OAC によって制御することができます。 MAILHEADER r 、 R コマンドでメールを送る際に MAILPOSTER に KILLGLOBAL 渡すヘッダの内容。これにかぎらす、ヘッダの書式はい 広域削除ファイルを置くディレクトリ。広域削除ファイ ったん % h が示すファイルにはき出され、その後しかる ルというのは、全ニュースグループをとおして特定の記 べきプログラムがそのファイルを扱います。 事に関する操作を設定しておくファイルです ( 広域 / 局 所削除については「コマンドとスイッチ ( 補遺 ) 」を参 胆 ) To : %T Subjcet : %(%i=-$? : Re : %S C$p/KILL] Newsgroups : 加 In-Rep1y-To : $i) % ( % Creferences] ! =A$?References\ : % [references] )Organization: % 0 Cc : 111 一口 7 感 - だ + だのどちらがデフォルトになっているかは rn 作成時の設定により異 るので、 & コマンドなどで確認するとよい。 82 UNIX MAGAZINE 1991.2
れらのアイドル状態にあるマシンの引・算能力をすべて集め ると、 1 台のワークステーションで利用できるものより格 段に大きなパワーが得られる。プロセスの透過性の目標は、 リモートのワークステーションでプロセスを透過的に実行 可能にし、その能力を簡単に共有できるようにすることに ある。独立したタスクをアイドル状態のワークステーショ ンで並行して実行すれば、アプリケーションはより迅速に 処理できる。 アイドルしているマシンを利用するもっとも簡単な方法 は、ユーサーが使われていないマシンを見つけ、そのマシ ン上でプロセスを実行することである。これは、 UNIX の rsh コマンドを使えはできる。引数にマシン名を指定する と、リモートのマシンでこのコマンドが実行される。この 方法は簡単ではあるが、いくつかの欠点がある。第 1 に プロセスに透過性を提供するものではないという点である。 なぜなら、プロセスはその親と同し環境では実行されない からである。カレントディレクトリが異なるうえ、リモー トのプロセスはその親の環境変数を引き継げない。第 2 に、 ューザーにとっても透過的ではない。ューサーはいつどこ でリモートに実行するかを選ばなければならす、リモート のプロセスはローカルなそれとは異なった扱いを受ける。 つまり、ローカルなプロセスのリストからは除外され、リ モートのマシンからしか操作できないのである。第 3 は、 rsh を通したリモート実行はローカルな実行と比べて格段 に負担が増大するという点である。 rsh に関するもう 1 つの間題は、ほかのユーサーにとっ ても透過的ではないということである。 rsh で始められた プロセスは、いったん実行が開始されると動かせなくなる。 ューサーがマシンの前に民ってきたときに自分のマシンで 知らないフロセスが実行されていた場合、そのユーサーか とれる措置は遅いレスポンスを孑財曼するか、他人の実行し ているプロセスを終了させるかのいすれかである。後者の 解決法は、 rsh を使ってプロセスを動かしているユーサー からみれば、プロセスを非透過的に移動させることを意味 する。 rsh よりも優れたリモート実行機能をいくつか挙げるこ とができる。 1 つは on コマンドである。これは子プロセス がカレントディレクトリと親の環境変数の両方を得ること を除き、 rsh と同様に働く。もう 1 つは ButlerC5) である。 これは、 on と同しくプロセスに対して透過的なリモート実 UNIX MAGAZINE 1991.2 ネットワークの透過性・ 行をおこなう。さらに、プロセスを実行するアイドル状態 のホストを自動的に選択する。プロセスを実行しているマ シンの所有者が戻ってきたときは、リモート実行プロセス から抜ける。しかも、その場合はユーサーに警告し、状態 保存に必要な猶予をプロセスにえた後に中断というかた ちでプロセスから抜ける。 真のプロセス透過性を提供する解決法は、プロセスの転 送 (migration)—すなわち、同しアーキテクチャのマシ ン間でプロセスを転送する機能である。これによって、プ ロセスはその親と同しノードで実行を開始し、ネットワー ク上のアイドル・ノードに移動できる。プロセスはつねに 開始時に得られた環境を持続し、ユーサーにもつねにロー カルなマシン上で実行されているかのような印象をケえる。 その場合、プロセスか転送されたことを示す唯一の兆候は、 もとのマシンの負荷が落ち、転送先マシンの負荷が増大す ることである。 プロセス転送の利点の 1 つは、いつでもプロセスを動か せるということである。このような持性により、マシンの 所有者カ唳ってきたときにリモート実行されているプロセ スを非破壊的な方法で中断させることができる。そして、 それまでのプロセスを無駄にすることなく、本来の場所に 戻すか、別のアイドル・ノードに移して継続できる。 プロセス転送の性能は、転送時のプロセスの状態による。 Sprite での測定では、プロセスが多くのファイルデータや メモリを得る前ならば迅速な転送が可能という結果が出て いる。これは DECstation3100 間でおこなったものだが、 転送に要した時間は 50ms 程度である [ 6 ] 。プロセスが多 くのデータを取得している場合は、転送時間はさらに長く なるであろう。 真の透過性を得るには、いつどこにプロセスを転送する かを決めるために、プロセス転送機能をベースとしてなん らかのメカニズムを構築しなけれはならない。 Sprite など の負荷共有型のシステムでは、マシンのリストとその負荷 を記録しているプロセスを常時実行させてプロセスの転送 先を決めている。いつ転送させるかについては、自動負荷 調整からアプリケーションによる制御まで、多様なメカニ ズムが考えられる。たとえは、 Sprite では並行構成機構に よってプロセスを転送するか否かを決めている。 プロセスの転送が実現できれは、完全なプロセス透過性 をもつシステム構築が可能になる。プロセス自身、それを実 63
FreeSoftware の世界ー朝 %a % 置換 記事 (ariticle) 番号。記事をセープするときのファイル 名で、関連記事や返信などを作成するときに使われます。 % 置換は、 % で始まるある種の変数を使った文字列の置 %A フルバスによる記事のファイル名。これは記事が格納さ 換えで、 C 言語の printf( ) に似ています。 れているところで、 %P/%c/%a と同等です。 これらは rn によって値が入れられ、使用者はたいがい マニュアルには、、、 Eunice システムにおいて LINKAR- 参照のみ可能になっています。この使い方ですが、たとえ T オプション ( コンパイル時に設定できる ) が設定され は記事をセープしたいときに記事選択 ( あるいはページ ていると、 %P/%c/%a は現在ニュースグループでの記 ャ ) レベルで、 事の名前を返すが、 % A は実際の ( ファイル ) 名を返し、 記事が複数のニュースグループに投稿されている場合、 両者が異なることがある〃とただし書きがしてあります。 ープと記 と入力すると、そのとき読んでいるニ ュースグノレ 事番号に合わせて、 己事のヘッダに指定されている配布先 (Distribution)0 s -/News/fj / ax 0 ce / 256 その記事をどれくらいの範囲に配布するべきかが指定さ れている部分です。 のように解釈されます。また、いつもこのようなセープの 仕方をしているのなら、環境変数 SAVEDIR に、、 % p / % %f ヘッダに指定されている投稿者 (From) 、返信先 (Reply c 〃、 SAVENAME に、、 % a 〃を設定しておけば、、、 s 〃に続 ー T 。 ) が指定されている場合はその指定先。 けて改行キーを押すだけで同等の効果が得られます 2 。 同様な変数に % t がありますが、純粋なアドレスのみ 以下に示す % 置換は複数文字コマンド ( 、、 ! 〃、、、 s 〃、、 / 〃 の %t とは異なり、 % f には、、 From : 〃または、、 RepIy- など ) の引数として使えますが、コマンドを入力している途 To : 〃から右側のすべての文字列が入っています。 中でエスケープキーを 2 回叩けば実際の値がその場で展開 されます。これは思ったとおりに置き換えられるかどうか %n ヘッダに指定されているニュースグルーフ。。 を確かめるのに便利で、たとえば、 %r s %p/savefile 参照記事へッ Y(References) に記載されている通信文 識別子の最後のもの。 とタイプしたところでやってみると、 この識別子が指す記事を親記事と呼びます。 s /usr/home/st a11men/News/s avef ile %s 話題へッダ ( Subject ) の内容から、、 Re : 〃と、、一 ( nf ) 〃 3 を のように % 置換後の文字列が表示され、さらに入力を続け すべて削ったもの。 ることができます。 % [ ヘッダ名 ] では、どのような % 置換があるかをみていきましよう。 、、ヘッダ名〃ヘッダの内容。たとえば、、、 % [distri-bution] 〃 現在記事の名前、ヘッダ情報 と書けは % D と同値になります。彳あの条件マクロなど と組み合わせて使えます。 これらは、いま読んでいる記事に関して設定されている 通常、ヘッダは、、 Distribution:" のように大文字で始ま 変数です。 りますが、 rn では綴りが合っていれは大文字 / 小文字の 別なく認識します。 3 第 (nf)" という印には歴史が詰まっているのだが、 二一 1 ロ 2 ー / スイッチがあらかしめ設定してあるシステムでは、 's 改行をだけ人力すれ ば、 % p / % c / % a にセープされるのがデフォルトになっている。詳しくは、「環 境変数」の SAVEDIR 、 SAVENAME 、さらに「コマンドとスイッチ ( 補遺 ) 」 を参照。 こでは割愛する。 77 UNIX MAGAZINE 1991.2
news¬ice 0 ee リのソート ( 主キーとして名前、時刻、サイズ、クラス、 ディレクトリが指定できる ) 、アイコンからテキストへの 外観の変更などの項目が含まれる。ファイル情報ダイア ログ・ポックスは、ファイル名、所有者、グループ、サイズ などの情報を報告する。ダイアログ・ポックスから変更 できる項目は、ファイルモードに関するものだけである。 X. desktop は総してすっきりとしたインターフェイ スであり、初心者向きのようである。しかし、いくつか の問題がある。デスクトップ・マネージャーにはリアル タイムの視覚的フィードバックが重要だが、 X. desktop はきびきびとした応答性に欠けている。選択されたこと を示すために、オプジェクトが強調表示されるまでに 0. 5 秒ほどもかかる。私にはひどく遅く感しられ、このよう な種類の対話には不充分といわざるをえない。 X. desktop は選択された項目をアイコンのラベルの 反転表示によって示し、アイコン全体を強調表示するわ けではない ( 視覚的な面からいえば、全体を強調表示さ せたほうが効果的であろう ) 。アイコンをドラッグすると きには、カーソルがオプジェクトを擱んでいる手の形に なる。これはユーザーが何をしているのかを示すという 点ではよいが、どのオプジェクトが影響を受けるのかは まったく分からない。ほとんどのドラッグ & ドロップ・ インターフェイス (Macintosh や OPEN LOOK ファ イル・マネージャー ) では、オプジェクトを強調表示して おいてその輪郭をドラッグするので、どのオプジェクト を対象に何がおこなわれるのかがはっきりと分かる。 今度は、 Looking Glass を検討しよう。 Looking Glass をはしめて起動すると、画面に global ウインド ウ、 directory ウインドウ、 desktoppanel の 3 つのウ インドウが現れる。 global ウインドウには 1 つのメニュ ーと System 、 Window 、 Show 、 Run 、 Jobs のラ ベルがついた 5 つのメニューがあり、最初はスクロール パネルは空になっている。 directory ウインドウにも、 File 、 Create 、 View 、 Sort 、 SeIect 、 Run というラベ ルのついた 6 つのメニューと 2 つのスクロールノヾネルが ある。 1 つのスクロールバネルにはユーサーのホームデ ィレクトリにあるディレクトリを表すアイコンが含まれ ており、もう 1 つのスクロールバネルにはファイルだけ が含まれている。 desktop panel は、最初は空である。 、、よく整理されていてこなれたインターフェイスクとい 36 うのが私の第一印象である。ファイルとディレクトリが 別個のパネルに分けられている点も気に入った。アイコ ンは、、適切なクサイズ ( 32X32 ピクセル ) で、スペースを 年駄にしていない。 すぐに気づいたのは、 LookingGlass が多種のファイ ルを識別しており、アイコンによってそれを区別してい ることである。 X. desktop では、大部分のファイルは単 純な紙あるいはフォルダー・アイコンとして表されてい た。 Looking GIass では . newsrc 、 . mh-profile 、 . rhosts 、 . sunview 、 . dbxinit 、 . signature などのファ イルが判別される。また、ディレクトリ、ディレクトリ へのシンポリックリンク、テキストファイル、バイナリ ファイルにはそれぞれ異なる種類のアイコンが用いら れ、 emacs のバックアップ・ファイルや自動保存ファイ ルなども区別してくれる。 X . desktop と LookingGlass は、両方ともさまざま な種類のファイルに意味をもたせている。 Looking Glass に、きわめて多種類のファイルアイコンがあるこ とは重要である。多種類のファイルが含まれている大き なディレクトリでは、目的のファイルが迅速に見つけら れる。 LookingGlass か操作環境に気を遣っているのは 一目瞭然である。 起動して最初にしたことの 1 つは、メニューの内容の チェックであった。 System メニューに、色の変更、削 除、実行、作成、表示および操作の優先順位の項目を見 つけたときは嬉しかった。 Looking Glass は、ユーサ ・インタ . ーフェイスのなかからカスタマイズのできる 数少ない X アプリケーションの 1 つである (X リソー ス・ファイルを編集するのとは逆の方式である ) 。 また、 Show メニューに環境変数のエントリがある点 も気に入った。このエントリを選択すると、設定されて いるすべての環境変数のリストが表示される。 工ントリの編集や削除、あるいは追加がおこなえる。こ れも、 LookingGlass が UNIX を強く意識しているこ との現れであろう。 マウスによる基本操作はほかのシステムで馴染んで いるものと似ているが、 1 つだけ大きな相違がある。す べてのマウスポタンが同し働きをするのである。 3 ボタ ンのシステムで Looking Glass がその利点を活かせる ものか、見てみたいものである。 UNIX MAGAZINE 1991.2
第 e $ & 新 0 ce 0 ee 製品概要 カスタマイズするためのダイアログ・ポックス、ディレ クトリ階層のツリー表示、パターンマッチによるファイ Looking Glass ルの選択、カラーおよび形状マスクっきのアイコン、動 Visix Software c. 画アイコン ( ディレクトリをオープンするためのオープ 11440 Commerce Park Dr. Reston, VA 22091 , USA ンフォルダ・アイコンなど ) 、長い形式のファイルリスト (TEL 十 1-800-832-8668 or 703-758-2701 ) の表示 ( ls ー 1 と似ている ) などの機能が取り込まれる。 パーション番号 : 1.0 X. desktop と Looking Glass はどちらも優れた製 米国内価格 : 595 ~ 1295 ドル 品である。私個人の感しるところでは、 LookingGlass 対応機種 . Sun 、 IBM PS/2 、 HP/ApoIIo 、 のはうが UN IX によく合わせてあり、 UNIX のべテラ DEC 、 MIPS 、 Solbourne など 対応 OS : SunOS 、 AIX 、 Ultrix 、 SCO ODT ンには受けがよいだろう。 X. desktop と比べると、 など UNIX のグラフィック版シェルというべきものにすっ コメント : UNIX によく適合しており、 UNIX の熟練者に歓迎されるであろう。フ。ロセ と近いところにある。とくに、プロセス管理や環境変数 ス管理や環境変数の扱いなどの機能によ の処理などの機能にはその傾向が強い。 り、 UNIX シェルのグラフィック版に近 いものとなっている。 X. desktop のアプローチは、これとは異なる。こちら はできるかぎり UNIX を隠そうとしており、大部分の 機能を直接操作 ( ドラッグ & ドロップ ) でおこなうよう にしている。はんとうの初心者にはこちらのほうが適し ているかもしれないし、いくっかの強力な機能は熟練者 にとっても魅力的である。 X. desktop のルール記述言 語を利用すれは、単純なドラッグ & ドロップ・インター フェイスに多種多様なアクションが記述できる。 IXI と その OEM 先は、もっとこの機能を利用すべきであろ 将来、われわれのよき友であるシェルを捨て去るとき がくるとは思わない。逆に、今回とりあげたような製品 によってあの退屈なファイル管理作業の一部がより簡 単に ( かつもっと楽しく ) なり、結果としてシェルの強化 につながるのである。 ■ lsaacSaIzman 今月の評者。 Rand Corp. ( カリフォルニア州サンタモニカ ) の情報 科・学部に勤務。現在、 MH メールシステム用の GUI(XView べー ス ) の開発に従・厖このシステムは、カスタマイズ可能なユーサ、一 インターフェイスのフィールド研究に使用するものである。 ACM SIGCHI のロサンジェルス副支部長 ( e ー mail : sa レman@rand. org)o X. desktop Ⅸー Ltd. 62-74 Burleigh St. Cambridge C B 1 1 OJ England (TEL 十 44 ー 223 ー 462131 ) パーション番号 : 2.0 米国内価格 : 495 ドルより 対応機種 . IBM RS / 6000 と PS/2 、 Sun 、 DEC 、 HP 、 Unisys 、 NCR 、 Dell など 対応 OS : AIX 、 SunOS 、 SCO ODT 、 UI- trix 、 HP/UX など コメント : できるかぎり UNIX を隠すように 設計されているので主として初心者向き といえるが、熟練者にとっても魅力的な いくつかの強力な機能がある。 REPORT CARD Graphical Shells X. desktop L00king Glass ・ Richard Morin 本欄の編集者。に叔科・学分野の UNIX アプリケーション当のコ ンサルティンク・会社 canta FordaComputer Lab. ( カリフォルニ ア州サンプルーノ ) の経営者。 Sun Microsystems User Group 理 'JHe-mail:{hoptoad,pacbeII}!cfcI!rdm)0 「 A Look At Graphical Shells 」 UNIX REVIEW 1990 年 11 月号より ルトスズ イ 工 イ フ トメタマ ン スュイタ ンキ ス サ ュカサ総 ポ合 評 39 UNIX MAGAZINE 1991.2