連載 C ADVISOR 丘 om UNIX REVIEIW Eric Allman 仮想記憶の話 PDP-II 時代の UNIX 話は旧聞に属するが、 PDP-II 時代の UNIX には仮想 メモリなど備わっていなかった。もっとも、当時はほとん どのマシンが仮想メモリなど必要としていなかった。プロ セッサには 16bit のアドレス空間があるだけで、 UNIX 型 システムにとってはセグメンテーション・レジスタでゲー ムをするなんてとんでもないことだったので ( 初期のパソ コンとは事情が異なり、プロセス間の機密保持という点で そう信しられていた ) 、メモリの限界はきっちり 64KB と 決められていた。 当時、 UNIX のコンテクスト・スイッチングは次のよう にしていた。ます、新しいプロセスがメモリ - にロードされ ているかどうかを確かめる。メモリにあれは・、メモリ管理 レジスタをロードして新しいプロセスを指すようにし、実 行を継続する。メモリになけれは、システムはます新しい プロセスのために空間を捜さねはならないのだが、通常こ れはメモリから別のプロセスをはしき出すことを意味した。 これは、、オール・オア・ナッシング手法〃とでもいうやり 方だ。それだけでは役立たないつまらぬ、つまり使われな いプロセスの一部を追い出すのではなく、プロセス全体を 追い出すのだ。これには、プロセスのセグメントをすべて ディスクに書き込むということも含まれている ( 実際には、 、、真のテクスト〃をもっプロセスはもうちょっと簡単だ。真 のテクストであるプロセスは、自分自身のコードを修正し ないことになっている。つまりテキストはけして変更され ないので、プロセスをスワップアウトするときにディスク に書き出す必要がないということだ ) 。新しいプロセスのた めに空間か確保されると、それをメモリに読み込むことが できる。小さいプロセスなら、一度に複数個がメモリに共 100 存できる ( かって、 UNIX は小型でこしんまりとしたシス テムとして知られていたことを思い出してはしい ) 。たとえ は、シェルと cat と ed くらいなら物理メモリに共存でき るだろう。 真性 UNIX ハッカーのあなたなら上に述べたことにい くっか不正確な部分があると指摘されるかもしれないが、 基本となるアルゴリズムはここでの目的にかなっているし、 根本的な誤りがあるわけではないので委細かまわす先に進 むことにする。 そして VAX 登場 もちろん、 UNIX 世界のすべてがつねに夢と光に満ちあ ふれていたわけではなかった。 VAX が誕生したとき、その 32bit のアドレス空間は夢のように思えたものだ。だが、残 念なことに VAX にはしめて移植された UNIX 32 / V は 依然スワップペースのシステムだった。つまり、プロセス の切替え時には基本的に上で述べたのと同し方法を使って いたのだ。プロセスが 64KB ならば、完全なイメージをデ イスクに書き込むのもうなすける。ところがプロセスが何 MB もあるときは、ディスクに書き込むのにとても時間が かかる。いすれにしても、 32bit のアドレス空間がフルに使 われることはなかったのである。というのは、ハードウェ アが実際にはそんな膨大な物理メモリをサポートしていな かったので、たとえお金があったとしても実現不可能だっ たのだ ( ちなみに、メモリを 256KB 増設するごとに数千ド ルかかった ) 。 仮想メモリをサポートする必要が出てきた最大の要因は、 デマンドベージングだ。これは、簡単にいうとプロセスが スタートするときにそのすべてをメモリにコピーするので はなく、いくっかのページが欠けたままで走らせてしまお UNIX MAGAZINE 1990.9
仮想記憶の拡張 プロセスのロック機能 プロセスのロック機能として、 plock ( 3 ) ライプラリ関数 が追加されました。これにより、 plock ( ) を呼び出したプ ロセスは、テキスト・セグメント ( TXTLOCK ) 、データ・ セグメント (DATLOCK) 、またはその両方 ( PROCK - LOCK) をメモリ内にロックすることができます。この機 能を使うときは、プログラムのなかのロックしたい部分で plock(XXXLOCK) をかけ、ロックの必要がなくなった ら plock(UNL 〇 (K) て解除します。 plock ( P OCK ) ; plock ( 化 0 係 ) ; ロックされたセグメントはスワップアウトされないた め 6 、プロセスの実行にかかる時間の見積りが簡単になりま す。なお、この関数を実行できるのは特権ューサー (root) メモリロック機能 だけです。 プラリ関数が追加されました。これを使ってページをメモ メモリロック機能として、 mlock(3) 、 mlockaII(3) ライ リ内に閉し込めることができます。たとえば、 valloc() で /, 、ゝ確保したメモリ領域にロックをかけるには次のようにしま す。 #define SIZE 1024 * 1024 * 10 addr = (caddr_t *)valloc ( S 工 ) ; mlock(addr, SIZE) ; for ( i = 0 ; i く S 工 ; i + + ) *addr + + = array [ 土 ] ; これによって、ロックされたページはページアウトされ なくなり、ページングのためのオーバーヘッドがなくなり ます。データベースでは、頻繁にアクセスされるテープル をもつべージをメモリにロックしておくと、そのアプリケ ーション全体の性能の向上が図れます。 反面、はかのプロセスに割当て可能なメモリが少なくな るぶん、システム全体のパフォーマンスが悪くなるおそれ もあります。そのため、この関数の実行も特権ューザー ( root ) にかぎられます。 メモリ管理ポリシーのアドバイス これはシステムレベルの機能ですが、特権ューサーがア プリケーション・フログラムから新しいライプラリ関数 madvise ( ) を使うことによって、指定した範囲のメモリに 対するアクセスの性質をカーネルにアドバイスすることが できます。アドバイスの種類としては、次のようなものが あります。 #define MADV_NORMAL #define MADV_RANDOM #define MADV_SEQUENTIAL #define MADV_WILLNED #define MADV—DONTNED 0X0 0X1 0X2 0X3 0X4 ←デフォルトのメモリアクセス ←ーランダムにページを : 参 ←シーケンシャルにメモリを参 ←そのメモリを再利用する ←そのメモリを再利用しない カーネルはこれらに合わせて仮想記憶システムの動作を 変えるので、仮想記憶全体のパフォーマンスが最適化され ます。この機能は、非常に大きな仮想記憶空間を使用する アプリケーション、あるいは大きなファイルをメモリ空間 にマップしてアクセスするアプリケーションの最適化に 有効です。ちなみに SunOS 4.1 の cat 、 cp コマンドは MADV-SEQUENTIAL を使用しています。 6 これは ps axlw コマンドの出力の RSS フィールドで確認できます。 UNIX MAGAZINE 1990.9 システム管理上の変更 システムの起動に関する追加と変更 /sbin ディレクトリには intr ( 8 ) という新しいコマンド が追加されています。通常、 / etc / rc * ファイルから起動さ 63 シグナルは無視されてしまいます。 intr はこれをキーポー グループにセットされるため、キーポードから入力された れるコマンドは、起動したシェルとは別の tty のプロセス
連載 / 0 ADVISOR ⑩ うというものだ。実行中のプロセスがメモリにないページ を実際に使う必要が生しると、ハードウェアがページフォ ールトーーーすなわちそのページをメモリにもっていくよう に OS に要求する。そのページが使用可能になると、プロ セスの実行か羅続される。 1 つのプロセスのすべてのペー ジがメモリに同時に存在する必要はないので、プロセスに 対して実際の物理メモリよりも大きなアドレス空間を割り 当てることができる。そもそも、、仮想〃メモリという呼び 方は、実際にはそこにはないメモリが使えるというところ からきている。 もちろん、マシンがプロセスを 1 べージすっ運び込んで いるときにたまたまメモリを使い尽くしてしまうこともあ るだろうし、プロセス全体をいちどにスワップアウトした くはないと思うかもしれない。とくに大規模なプロセスが 含まれているときは、おそらくそのほとんどのページは、、汚 されてクいないーーっまり、最後にディスクに書き込まれ てから変更されていないはすだ。 MMU(Memory Man- agement Unit ) は各ページに対応する、、ダーティビット〃 をもっている。このビットは、対応するべージに書き込ま れるとセットされる。クリーンなページは、使ったメモリ が再利用されるまでディスクに書き込む必要はないという わけだ。 こうなると、そのページがディスクから読み込まれたと きにセットされる、、使用中ピッドなんていうものも使い たくなるにちがいない。これは、プロセスのワーキングセ ット、つまりある時点で使われているべージの集合を決定 するのにも利用できる。プロセスのワーキングセットがあ らかしめ分かっていれは、大量のページフォルトを避けら れるのだ。 しかし、 VMS(DEC 製の VAX 用 OS ) の開発者たちは こんなものを必要だとは感しなかったらしく、このビット ードウェアに組み込まれていない。代わりに、ダーテ イビットは VAX 上のソフトウェアでシミュレートされ た。プロセスのワーキングセットが分かっていれば、カー ネルがあるプロセスを追い出さなけれはならなくなったと きに正しい決定を下すことができる。とくに、実行可能状 態になっているプロセスのワーキングセットからべージを 削除するのを回避できるのだ。 繰り返すが、この解説では細かくはあっても重要な事項 のいくつかをあえて無視しているが、アルゴリズムは正し UNIX MAGAZINE 1990.9 いはすだ。 だからどうしたって ? それしゃあ、そんなことがこのコラムでなんの役に立つ のかだって ? 賢明な読者の方々ならもうお分かりだろう。 仮想メモリ・サプシステムがどのように働くかを知ってい れは、効率のよいプログラムを書くための知識が得られる のだ。もちろん、小さいプログラムではどんなへマをしよ うがあまり問題にならないが、大規模にメモリを使用する プログラムを書くときには、こうした細かい点に注意を払 えはきわめて性能のよいプログラムを作れる。いつものよ うに、この原理を反例を使って解説してみることにしよう。 この例は、私の空想上の作りごとである。 我々が、、データベース〃と呼ぶ類の多数のアプリケーシ ョンは、なんらかのかたちでキャッシュを実現している。 これらのアルゴリズムは、往々にして仮想メモリ・サプシ ステムで使われるアルゴリズムに似たものになる。プログ ラムの実行能を改善するために、頻繁に使うディスクプ ロックをメモリ上にコピーしてもっていたりするのだ。と くに遅いメディア、たとえば別のマシンへのネットワーク 接続とかキャパは高いが実行性能は比較的悪い新技術のデ イスク ( SCSI のことがいいたいのかな ? ) などを使用する 場合、これはたいへん重要になる。アプリケーションが、 、、参照の局所性〃ーーすなわちごく短時間の間隔で物理的に 近接しているデータ要素を参照するという特性をもつな ら、キャッシュはとくに重要になってくる。最初は参照の 局所性などおかしいと感しるかもしれないが、実際には頻 繁にお目にかかる。本を読んでいるときなど、別のページ に移る前にまわりの文章を読む ( 隣接する文章を読む ) し ゃないか。これは、、、ランダムアクセス〃をする百科辞典の ような本にもあてはまる。つまり、最初の検索はランダム アクセスだが、べージを繰る前にそのページの文章をいく つか読むからだ。同しことがディスクファイルやデータベ ースなどにもいえる。 同様に、 UNIX 型ファイルシステムにアクセスする場 合、ルートディレクトリ (/) や /bins/usr/bin などすべて のユーサーが使用するいくっかのディレクトリは頻繁にア クセスされる。だから、これらのディレクトリに対応する ページをメモリ上に保持しておくのがうまいやり方になる。 キャッシュを実現しようとすると、たいていは仮想メモ リが扱わなければならなかったのと同し旧い問題を抱える 101
連載 / ℃ ADVISOR ことになる。たとえは、汚れてしまったページを周期的に、、、が生したりするのだ。 書き出したり、別のページを読み込むためのメモリが必要 前者のほうがわりと簡単なので、例として挙げておこう。 になって割当て場所を確保するための犠牲を選び出す必要 / ' キャッシュ・バッフアが次のように宣言されているとする。 / struct cachebuf / * fl bits * / int cb-flag ; / * probably more header infomation here * / char cb-buf [ 512 ] ; / * buffer space * / / * buffer dirty fl * / #def ine CBF_DIRTY 0X0001 / * probably more flag bits here * / struct cachebuf Cache CMAXCACHE] ; すると、ダーテイベージのチェックは次のようになる。 regxster cachebuf *cb ; for ()b = Cache ; cb く &Cache [ ト XCAC} 旧 ] ; cb + + ) if (cb->cb—flags & CBF—DIRTY つ flushpage (cb) ; cb—>cb—flags & = -CBF—DIRIY; struct cachebuf \ 簡単そうに見えるだろう。でも、残念ながらこれが仮想 メモリ・サプシステムとどのように相互作用するのかを考 えてみると、仮想的に ( 洒落のつもりね ) すべてのページが メモリに読み込まれなけれはならす、汚れていないページ も例外とはならないことが分かる。 では、次のような代替定義を考えてみよう。 int cb—flags ; / * fl bits * / / * probably more header infomation here * / / * pointer to buffer space * / char * cb—bufp ; / * buffer dirty flag * / #define CB_DIRTY 0X0001 / * probably more flag bits here * / struct cachebuf Cache [MAXCACHE] 今度は配列 Cache がぐっと小さいので、同しアルゴリ ズムが仮想メモリから読むべージ数がぐっと少なくなる。 もちろん、この修正版ではバッファベージを別個に割り当 ててリンクしなけれはならないという煩わしさはあるが、 それを補ってあまりある利点がある。 すなわち、バッフアデータが仮想メモリ・サプシステム で使われているのと同しメモリ・アライメントをもつよう にすることができるので、キャッシュを間違いなくメモ リ・サプシステムに密着させることができるのだ。うまく 位置調整されたバッフアはページ境界から始まりページ境 界で終るので、カーネルは一部のバイト列をコピーしなお すことなく効率的にメモリに移動できる。これは、システ ムのページテープルにあるバッフアの記述を変史すれば 102 実現できる。 バッフア自身が仮想メモリ・サプシステムと適切に揃え られていれば、多くの場合は速くなる。たとえば、ディス クベージを読み込むときはデータを配置するメモリ位置を 指すポインタを read ルーチンに渡すよね。通常の実装で は、ディスクから読み込んだバイト列をカーネルの内部バ ッフアからユーサーか指定したバッフアにコピーしている。 ューザーが指定したバッフアが iE しく位置調整されていて、 データ量がページサイズの整数倍であれば、システムがメ モリ管理レジスタを変史することによってデータのコピー を回避できる。これにより、仮想アドレスは要求したデー タがあるカーネルの入出力バッフアを直接指す。これでバ 位置調整 UNIX MAGAZINE 1990.9
連載 An lntroduction tO X Window System 中村眞 twm の使し防 ( その 3 ) 教訓 : ところ変われば品変わる 今回の連載をきっかけに、私がこれまで使ってきたワー クステーション環境の . twmrc を書き換えてみました。 マニュアルにもいつも以上に目をとおした後でしたので、 、、タッタタラリラ〃と余裕しやくしやく。前の . twmrc を別 名にして避けたあと、今回作ったスタートアップ・ファイ ルを . twmrc に cp でコピーしてと・・・・・。ホップアップ・メ ニューで f. restart が設定された項目を選んで、さてと、 おや ? twm が死んしやった ! twm が、文法の誤りとか工ラー出力に叫んでいるな。 ふむふむ、 x 行目にますいところがあるのか。ではエディ タを開いてっと・・・・・・正しいみたいだけれど、ははあ、毎度 のことながら綴りの間違いかな。まあ、この行は大勢に影 響もないし、とりあえす頭に # を付けてコメントにしてしま おうっと。さあっ、 twm を再起動リ つつう、またエラー ? いまさらマニュアルを繙くのも面倒だし、 れもコメントだリ今度こそ・・ ぎやっ、なぜ ? ? ええいつ、 . twmrc の構文解析は頭から進むはすだし、この行より 前にはコメントだけだし ? ? というわけで忙しいさなかに 数十分、なかば意地になって取り組んだ挙句、あっ ! さて、 こで問題です。いったい私はどのような間違い を犯していたのでしようか ? 解答は後ほど。自己弁護する わけではありませんが、ちょっとした思い違いや、当然と 142 考えるところに意外な落し穴があるものです。 X 端末にまつわるお話 1 年前に比べて X 端末の普及には目を見張らせるものが あり、主要なワークステーション・メーカーのカタログに も見受けられるようになりました。なるほど、価格も手頃 でパチンと電源を切ってもかまわないし、なかにはワーク ステーションといえるような CPU とメモリをもつものさ えあります。 一方では、使っていくうちにワークステーションでは起 こらなかったことや気がつかなかったことも X 端末ではい ろいろ目につくようになります。ここでは、これらのいく つかについてお話しましよう。 教訓その 1 : ない袖は振れない ( メモリに限りがある ) ワークステーションでは仮想記憶が常識となっています ので、見た目では豪勢にメモリを使って仕事をしても支障 ありません 1 。ところが、現在の X 端末で仮想記憶を採用し たものはありませんから、利用の仕方によってはメモリが なくなることもあります。では、いったい何がメモリを食 べてしまうのでしようか。おもなものとして、イメージの 転送やフォントのダウンロードが挙げられます。とくに 大きな漢字のフォントのダウンロードを何種類か続けると すぐにメモリが枯渇してしまいます。 UNIX MAGAZINE 1990.9 一般市民を呼びつけて・・・・・・というようなものでしようか ( ? ) 。 が悪いかもしれませんが、住民の“公僕〃であるはすのお役人は、ときとして ドなどを指示する、といった観点からは逆の立場に見えてしまいます。たとえ ーです一一 - ューザーがコマン た表示や動作をおこなうのが X におけるサー て納得できない方がいらっしゃいます。 X のプロトコルを受けて、これに応し ノヾー〃だということについ 2 何度説明しても、表示やキーポードを司る側がサー 当然遅くなります。 るとすぐに満杯になってしまいます。また、どけたり戻したりを頻繁にすると とができるスワップディスクに入るわけです。ですから、スワップ領域をケチ しかし無限にあるわけではなく、情報はメモリとそれをちょっとどけておくこ これに対して X 端末で働いているサーバー 2 がとれる対 1
SPARC Station 用メモリー SNXSM/SI (4MB) SNXSM SNXSM/S4 (16MB/32MB) S 、 XSM S ト 80 (LMB) : SU' 、 3 / 60 、 SU' \ 3 80 、 SPARC Stauon 1 、東芝 AS3 0 、東芝 AS3080 、東芝 AS4 0 、富 f: 通 S -3 / 60 、新日鉄 \ SSU 、 3 / 60 、新日鉄、 SSU \ 3 / 80 、新日鉄 NSSUN SP/I 、 FUJI .XER()X6401 SU 、 4 / 110 、東芝 AS4 ⅱ 0 、富 l.•通 S ー 4 / 110 、新日鉄、 SSU 、 4 / 110 、 FU 引 XEROX6411 SNXS,M S4( 16MB 、 ]2.MB) :SPARC Station に SPARC Station 330 、 SPARC Station 370 、 SPARC Station 390 、新日鉄 NSSU'.\' sp, / 330 、新日鉄 NSSUN SP / 370 、新日鉄 NSSU'N' SP / 390 、 FU 引 XER()X 6433 SNXSM / S4 はクリアポイント社が、世界で初めて 4M ビットのメモリーチップを実用化したメモリーポードです。 SPARC Station 1 , SPARC Station 3XX, SUN 3 / 80 , に使用すると、メモリー容量を一気に 4 倍に拡張出来ます。 例えば、 SPARC Station 1 の場合、最大 16MB までしか拡張出来ませんが、 S 、 XSM / S4 で 64MB に出来ます。 SPARC Station 330 用メモリーカード 8 , 16 , 32 , 64 , 128MB SNME-330 •SOJ DRAM 使用による高信頼性 ■最大 160MB まで拡張可能 ■ 8 , 16 , 32MB は 1Mbit DRAM を使用 ■ 64 , 128MB は 4MbitDRAM を使用 •SPARC Server 330 に最適 ■ 3U フォームファクター Sun 3/Sun 4 用メモリーボード SNX2RAM 8 , 16 , 32MB R T 35 par ・ kwood Drive ・ Hopkinton, MAO ロ 48 SUN4 / 260 / 280 用、 SUN3 / 260 / 280 / 470 / 480 用 SNXRAM 4 , 8 , 12 , 16 , 20 , 24 , 28MB SUN3 / 75 / 110 / 140 / 160 / 180 用 SNME-350 4 , 8MB SUN3 / 50 用 ーエ my memory ゞヒ , me g んいれ〃 ~ 6 C 0r20 えれ t. 0 日本総代理店ー、、。 LL 。メモリー コンビュータタイナミックス株式会社 〒 160 東京都新宿区西新宿 7 ー 5 ー 10 第ニミソタヒル TEL03-366-9741 FAX03-366-9800 ※ SUN はサンマイクロシステムズ社、東芝 AS -3000 / AS -4000 は東芝、富士通 S - 3 / S -4 は富士通物、 NSSUN は新日本製鉄株、 FUJI XEROX 640 レ 64 Ⅱ / 6433 は富士ゼロックス株の登録商標てす 常に優秀なサポートエンジニアを求めております
ews & 0 ce SPARC ローエンドカラ—WS ÄSUN 日本サン・マイクロシステムズ ( Te103 ー 内蔵が 237 万円、 17inch のモノクロ・ディ 221 ー 7021 ) は、カラーのローエンドシステ スクレスが 186 万 5 , 000 円、同 207M B ム「 SPARCstation IPC (lnter Personal HDD 内蔵が 210 万 5 , 000 円。出荷は 9 月 Computing) 」の阪売を開始した。 から。 SPARCstationI 十と同し 25MHz の ◆おもな仕様 SPARC CPU/FPU を使用し、メモリは 8MB ( 12 / 24MB に増設可能 ) 。処理能力 は、整数演算 15.8Mips 、浮動小数 . 点演算 1.7MFlops 。本体サイズは、 24.4X26.4x 11 .7cm(WXDxH)0 平均アクセス時間 16ms の 207MB HDD を内蔵可能で、外 部接続により最大 2.6GB まで拡張できる。 また、 1 .44MB の 3.5inch FDD を内蔵。 インターフェイスは、 SBus ( 2 スロッ ト ) 、 Ethernet 、 SCSI 、 RS423 、オーディ オポート。 モニターの解像度は 1 , 152X900pixels カラーは 16inch の 66H ノンインターレ ースで 1 , 670 万色中 256 色同時表示可能。 モノクロは 17inch または 19inch 。 OS は、 SunOS4.10 ディスク付きのシ ステムでは、 OS と OpenWindowsV2.0 がインストールされて出荷される。 価格は基本構成 ( 本体、ディスプレイ、キ ーポード、 OS のライセンス ) のカラー・デ イスクレスが 214 万円、同 207MB HDD ◆イ各表 SPARC station SLC IPC 1 十 SPARC IU(20MHz) SPARC IU(25NIHz) SPARC IU(25MHz) SPARC FPU(20MHz) SPARC FPU(25MHz) SPARC FPU(25MHz) Sun-4 NINIU IGB / フ。ロセス 8 ~ 24NIB 64KB SBus x 2 Ethernet SCSI(4.8MB/s) RS423 x 2 オーディオ I/F 17/19inch モノクロ ( 1 , 152 x 900pixel) 16inch カラ ( 1 , 152 x 900)pixel 256 色 (8bit) 1 , 670 万色 C P U メモリマネーンメント 仮想メモリ メインメモリ メモリキャツンユ シ・ステム′、ス インター フェイス 8 ~ 16MB 8 ~ 40MB SBus x 3 Ethernet SCSI(4.8MB/s) RS423 x 2 オーディオ I/F 17/19inch モノクロ ( 1 , 152 x 900P ⅸ el ) 16/19inch カラー ( 1 , 152 x 900)pixel 256 色 (8bit) 1 , 670 万色 540 , 000 vector/s*** 270 , 000 、 'ector/s*** 104MB * / 669MB * ( 最大 2.6GB ) 3.5inch* Ethernet SCSI(4.8MB/s) RS232C オーディオ I/F 17inch モノクロ ( 1 , 152 x 900pixeI) 接続ディ スフ。レイ グラフィ ックス機能 カラー六レット 2D べクトル 3D ペクトル D H F D D T など M 104MB * / 669MB * ( 最大 2.6GB ) 207MB * / 669MB * ( 最大 2.6GB ) 3.5 ⅲ ch 150MB CNIT * 2.3GB 8mmMT * 550MB CD-ROM * SunOS 4.0 以上 995 , 000 円 214 万円 267 万円 (8MB メモリ、 17inch モ (8MB メモリ、 16inch カ (8MB メモリ、 16inch カ ノクロ CRT 、キーー ラ—CRT 、キーポード、 ラー CRT 、キー十一ド、 ド、マウス、 OS) マウス、 OS) マウス、 OS) 丁イスクの接続可能台数は最大 4 台 ***GX モデル 0 価格と構成例 * オフ・ション ・ディスクレス カラ ・ディスク付ぎ カラ 17 インチモノクロ・ティ スクレス 19 インチモノクロ・ティ スクレス スク付き 17 インチモノクロ・ティ ◆オプション 4MB 増設メモリ 16MB 増設メモリ 669MB HDD 1 / 4 CMT 669MB HDD 十 1 / 4 CMT 669MB HDD 十 8mm 550MB CD-ROM ドライプ Sbus Second Ethnernet ControIIer 2 , 140 , 000 円 2 , 370 , 000 円 1 , 865 , 000 円 2 , 020 , 000 円 2 , 105 , 000 円 329 , 000 円 1 , 260 , 000 円 1 , 262 , 000 円 320 , 000 円 1 , 579 , 000 円 2 , 623 , 000 円 226 , 000 円 85 , 000 円 1 UNIX MAGAZINE 1990.9
連載 策といえば、、、もうなくなるよ〃と叫ふ程度のものです。本 An lntroduction to X Window System ー朝 UNIX MAGAZINE 1990.9 がって、クライアントがゲーム用の特殊なフォントを要求 ところが、フォントはサーバーが管理しています。した ることはますありません。 ですから、参照パスの設定が誤っていないかぎり問題にな されるのでクライアントと同しマシンに存在しているはす ファイルのほうは、 UNIX のファイルシステムとして参照 マップ・ファイルを参照して動作します。ビットマップ・ クライアント・プログラムは、頻繁にフォントやピット ( サーバーとクライアントはあかの他人 ) 教訓その 3 : 豚に小判 いかもしれません。 うち登場するでしようが ) 、現状ではある程度やむを得な で RISC チップを使ったものはまだありませんから ( その いう人もいるくらいです。これらの多くを担当する X 端末 ーサー・インターフェイスを利用できるようにするためと 近のワークステーションの速度カ吐がったのは、贅沢なユ 芯が一時止まることがあっても慌てないでください。最 なることがあるようです。そこまではいかないにしても、 ロードしているときなどは、カーソルのはうがなおざりに 生して、えっちらおっちらとネットワーノを通してダウン います。とくに大きなサイズのフォントを利用する必要か 専念してしまうことになり、はかがおろそかになってしま ます。このため、あまりにも忙しい仕事があるとそちらに 一般に、サーバー自身は 1 個のプロセスで実現されてい 教訓 2 : 聖徳太子も耳は 2 つ ( すべてを同時にはできない ) メモリ節約のための一法です。 して内蔵された漢字フォントがあれは、これを用いるのも わす声を失ったことがあります。なお、 X 端末に ROM と 末ですからメモリの拡張などご無用です」というお答で思 いメモリが拡張できるの ? 」と質間したところ、「これは端 て、あるメーカーの発表会で「この X 端末には、どのくら この点を多少とも認識していただければと思います。かっ は、用途に合わせて増設してください。また、売る側でも 目を奪われてメモリをけちるとバチがあたります。メモリ したがって、お金がないときにはカラーなどの見栄えに 卒倒することさえあります。 仕事を工イツと放棄してしまうくらいが関の山、ときには 当になくなってしまうともうお手あげで、その際は一部の リス B DF フォーマットのフォントファイル ( xtrek の例 ) STARTFONT 2 . 1 COMMENT created by Jeff Weinstein FO xtrek SIZE 31 78 78 FON'IBOUNDINGBOX 32 64 0 ー STARTPROPÆR. TIES 3 OWNERSHIP " Created by Jeff We instein from glyphs by Chris Guthrie" FOtff_ASCENT 0 FONT_DESCENT 64 ENDPROPERTIES CHARS 90 STARTCHAR fedview_0 ENCODING ー 1 0 SWIDTH 516 0 DWIDTH 16 0 BBX 16 16 0 ー 16 BINAP 03C0 07e0 0ff0 0ff0 0ff0 07e0 03C0 0990 0990 0990 0ff0 0990 0990 0810 0810 0810 STARTCHAR fedview_l ENCODING ー 1 1 SWIDITI 516 0 DWII)IH 16 0 BBX 16 16 0 ー 16 BINAP 0060 03f8 03f8 03f8 03fc しても応えられるとはかぎりません。もちろん、さきほど から話しているようにダウンロードに際してフォントを提 供する側に登録しておけばよいわけです。ところが、サー バーの種類が違うとフォントのファイル形式も異なること もあり、〇〇というマシンのアプリケーションに付属して きたフォントがそのままでは使えないこともあります。 X の世界でのフォントの共通形式は、 BDF フォーマットと 呼ばれるテキスト形式のもので、これをフォント・コンパ イラにかけて 3 利用できる形式に変換した後、サーバーが使 用できるようになります ( リスト 1 参照 ) 。しかし、逆コン 3 フォント・ディレクトリに BDF 形式のまま入れておき、利用するたびにフォン ト・コンパイラにかけて一時的に利用できる形式のファイルを作成した後、ダ ウンロードするサーバーもあリます。 143
こで、、簡単〃と述べたのは、相対的な意味である。 SGI のマシンはグラフィックスを売り物にしており、そ の性能は SGI の強力な特徴の 1 っといってもよい。同社 では性能を示す多数の数字を公表しているが、別個の製 品ラインのグラフィックス性能を単純に比較するのは危 険である。 SGI が使用しているべンチマークの定義が変 史されたからだ。他社のグラフィックス・マシンと比較 するのはさらに難かしい。というのは、グラフィックス・ べンチマークには標準がほとんどないからである。たと えは、 SGI は同社の多くのシステムの性能を polygon/ s 単位で測定している。ここでいう polygon とはい 10X 10 ( 100pixeI) 、 24bit フルカラー、光源あり、グロー・シ ェーディング、 Z バッファ ( B を除く ) 、任意の方向〃の 図形である。しかし、性能を示す数値には定義の異なる polygon にもとづくものもある。また、上記のように多 分野にわたるものなので、他社のマシンについては誤解 を招きかねない性能比較となる可能性も高い。 上で述べたワークステーションに加え、 SGI のほとん どのシステム ( 4D / 85 は除く ) にはサーバー構成のもの がある。この構成にはグラフィックス・ディスプレイは ないが、その他の点ではワークステーション・モデルに 似ている。サーバー・モテルの価格は、 4D / 25S の 9 , 900 ドルから 8 プロセッサの 4D / 280S の 165 , 200 ドルま でである。 基本の 4D / 85 GTB は床置型の 13 スロットの筐体に 入っている。これらのスロットのうち、 1 つはグラフィ ックス・エンジン用、 5 つは、、 p ⅸ e レヾスクグラフィック・ カード用、さらにもう 1 つがプロセッサカード用に予約 されている。残りの 6 スロットは、 VME スロットとし て使用できる。 Ethernet カードが VME スロットを 1 つ占有するので、多くのシステムでは空きスロットは 5 つになる。筐体サイズは、 66X53.3X73.6cm ( HxWx D) となっている。 システムにはマウスとキーポードのほか、 SGI 標準の 1 , 280X1 , 024pixeI の 19 インチ・カラーモニターが付 属している。マウスは 3 ボタンの光学式で、キーポード は拡張 PC フォーマットを採用した 101 キー配列とな っており、感触は素晴らしい。また、われわれにはこの 配列のほうが好ましい。マウスは、キーポードの横 ( 右ま たは左 ) にプラグを差し込んで接続する。同社のマウスは e $ & 0 ee 0 ce UNIX MAGAZINE 1990.9 総して優れてはいるが、われわれはサードバーティーか らトラックポールを購入して代用した。 的で、すっと使いやすかった。 4D / 85 の基本メモリは 8MB であり、プロセッサカー このほうが能率 に 24MB の RAM ( 11 , 000 ドル ) を追加して合計 の基本システムであり、価格は 49 , 900 ドルである。これ この記事のために使用したシステムは 4D / 85 GTB しているのなら、たいへん魅力的である。 のアプリケーションに固有なハードウェア機能を必要と の価格と機能は不慣れな人ならば戸惑うはどだが、特定 関連のオプションがある。グラフィックス・オプション ョンのスクリーン・イメージを混合するグラフィックス フェイスの組合せのはか、外部ビデオとワークステーシ る。通常のディスク、テープ、メモリ、およびインター SGI のシステムには、はかにも多数のオプションがあ 〃と呼ばれる筐体が用意されている。 してさらにディスクドライプを収納できる、、ツインタワ イトのドライプ・スロットは 2 つしかないが、必要に応 ラ、筐体にさまざまな組合せがある。 4D / 85 にはフルハ ドルである。 SGI のマシンには、ドライプ、コントロー 2GB の SMD HDD とコントローラの価格は 22 , 000 価格は 10 , 000 ドルである。別の筐体に収められた 1 . ドルであり、 780MB の ESDI HDD とコントローラの る。 4D / 85 用の 380MB SCSI HDD の価格は 3 , 500 ESDI のいくつかのバージョンまたは SMD が使用でき りも大きなシステムのインターフェイスには、 SCSI 、 のモデルでは SCSI か驃準だが、 4D / 85 あるいはそれよ ディスクの選択肢はもっと複雑である。 Personal lris ーマットの 150MB ドライフ・が供給されている。 ー 24 フォーマットの 60MB ドライプと QIC-150 フォ には、ハーフハイトのスロットを使用する。 MT は、 QIC イスを 2 つ増設できる。 4D / 85 用の SCSI MT の増設 り、フルハイトのデバイスを 2 っとハーフハイトのデバ 4D / 85 の筐体には周辺機器用のスペースが 4 カ所あ 16MB は 9 , 200 ドルもする。 ( 2 , 000 ドル ) だが、追加されたカード上に増設する次の 使う。 4D / 85 の増設メモリのうち、最初の 8MB は安価 まで ) には、増設メモリのために VME スロットを 1 つ 16MB まで増設できる。 16MB を超える場合 ( 128MB ドに搭載されている。メモリはカード上に 4MB 単位で 17
第 e $ & 0 ce $ UNIX SystemV R3.1 と BTRON 仕様 OS を開発中。システム開発には C コンパ 25MHz: 17Mips 20NIHz: 14Mi い イラ、アセンプラ、リンケージキット、シ 1 13 ( 拡張 10 進算命令を含む ) ミュレータデバッガ ( FMR と MSOS/2 、 2KB 2KB Sun3 と SunOS3.5 または 4 . 0 、 VAX と TLB は命令 / オペランド用各 64 ェントリ、 LSID による多重論理 VMS4.5 の環境で動作 ) などの、既存の 空間をサ十一ト 各 32bit 、外部アドレスモニター アドレス気ス GMICRO F32 ファミリー用サポートツー 機能、 2 サイクル・気スアクセ テー・タ . ス 第囓 ス、プロノ ? 転送機能 ルが使用可能なほか、 ICE 、言平価用 VME 命令キュー 6 段、ストア六ッファ その他 1 段、 5 段 , : イフ・ライン構造 ポードシステムを開発中。 1991 年初めに 33MHz 版を出荷・定。 MB92411 、割込みコントローラ 集積した。従来に比べて 10 進演算機能、キ MB92421 、タグメモリ MB92431 を使用 MB92461 は、 MPU, 周辺機器、および ャッシュ、メモリ管理機構などを強化。周 システム用の各種クロックを供給、 辺 LSI には F32 / 200 用の GMICRO できる。 OS は組込み用に ITRON 仕様リアル FPU MB92811 (GMICRO F32 / 200 併用 25MHz の MPU まで対 : 可育邑 タイム OS 「 REALOS/F32J を提供。ほか 時 5Whetstone Mips) 、 GMICRO F32 / サンプル価格は MB92301 ( 20MHz ) が に、サードバーティーがシステム用の 200 / 100 用の DMA コントローラ 160 , 000 円、 MB92461 が 15 , 000 円。 PC98 用 BASE T 準拠ポード 伝送速度は 10Mbps 。アクセス方式は CSMA/CD 、通信プロトコルに OSI を使 ■ R ℃ OH 用。接続可能最大ノード数は 1 , 024 、 Eth- ernet にも接続が可能。 リコー (Tel 03 ー 578 ー 3111 ) は、 PC98 シ リーズ用の LAN システム「 AT&T 価格は、 NAU(Network Access RICOH STARLAN 10 」の販売を開始し Unit) 、ツイストペア・ケープル、電メー ル / 電子掲示板のソフトウェア込みで ーー 0 IEEE 802 . 3 IOBASET 標準案に準拠、 148 , 000 円。 ◆おもな仕様 性能 基本命令数 命令キャ : ′ンユ テータキャツンユ NI M U 低価格レーサープリンタ ZAPPLE アップルコンピュータジャパン (Tel 03 Times 、 Helvetica 、 Courier 、 Symbol の 9 ~ 24 ポイントのフォント FD が付属。コ ー 224 ー 7000 ) は、低価格のレーサープリンタ ントローラ・ポードの交換により Per- 「 Personal LaserWriterSC 」と Post- sonal LaserWriter NT へのアップグレ ターフェイスは AppleTaIk 、 RS232C0 Script 対応の「 Personal LaserWriter ードが可能。価格は 368 , 000 円。 HP LaserJet と Diab10630 工ミュレー NTJ の販売を開女ムした ロ 0 ションを標準装備し、 12 書体 37 タイプフ ◆ Personal LaserWriter NT ◆ Personal LaserWriter SC 68000 を使用、メモリは 2MB ( 最大 68000 を使用、メモリは IMB 、解像度は ェース、 Diab10630ECS 工ミュレーション 用の 2 書体を内を価格は 548 , 000 円。 8MB) 、 Adobe PostScript を内蔵。イン 300dpi0 QuickDraw をサポートし、 ハイエンド PDP-II ー 11 / 94 」の販売を開始した。 UNIBUS 、 PDP ー 11 / 94 が Q-BUS を使 従来の PDP ー 11 ファミリーとハード / 用 OOS は、 RT-II 、 RSX-IIM/IIS 、 RSX EDEC -IIM-PLUS 、 TSTS/E 、 DMS-II をサ ソフトともに完全互換。 CPU は同社独自 日本ディジタルイクイップメント (Tel の 16bit DCJII 、メモリは 2MB または ポート。 価格は MicroPDP ー 11 / 93 が 324 万円 03 ー 989 ー 7111 ) は、、、 PDP ー 11 ファミリー 4MB 、処理性能は従来機種より約 40 % 向 の最ー [:. 位機種「 MicroPDP ー 11 / 93 」「 PDP から、 PDP ー 11 / 94 が 490 万円から。 した接続バスは、 MicroPDP-11/98 が 12 UNIX MAGAZINE 1990.9