環境変数 - みる会図書館


検索対象: UNIX MAGAZINE 1991年2月号
119件見つかりました。

1. UNIX MAGAZINE 1991年2月号

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

2. 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

3. UNIX MAGAZINE 1991年2月号

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

4. 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

5. 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 : クがなければこれを付け加

6. UNIX MAGAZINE 1991年2月号

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

7. 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

8. UNIX MAGAZINE 1991年2月号

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

9. UNIX MAGAZINE 1991年2月号

news&notice 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

10. 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