PDP-11について

Lions本の頃はPDP-11は(すくなくとも大学の計算機科学科にいるような人にとっては)ポピュラーなものだったようである。 しかし、今日、PDP-11を理解するのは単純な話ではない。 当時の現実がどのようなものであったかという予備知識がなければ、 いくら資料があっても実感としてつかむことは困難だからである。 いくら言葉の上で源氏物語を読むことができても、 当時の貴族の生活を知らなければ物語を楽しむのはおぼつかないのと同じことである。

本物のPDP-11を使う機会があれば最高なのだが、これは事実上不可能である。 したがって、資料からあれこれ想像するよりない。 さいわい、あらゆる情報を集積しているPDP-11サイトがあるので、 とくとながめることにしよう。

PDP-11とは何であったか

PDP-11誕生の経緯については詳しいサイトが存在するのでそちらを参照されたい。 日本語でもトラ技コンピュータの記事をもとにしたおもしろいページがある。 PDP-11/20とテレタイプ端末の写真

端末とは

現在利用されている端末といえばxtermやktermのようなウィンドウシステム上の端末エミュレーターくらいだろうか。 これらがエミュレートしているのはVT100などの仮想端末である。 CRTディスプレーとキーボードをそなえる端末(glass teletypeなどと呼ばれた)も後期のPDP-11では使われたが、 初期のPDP-11ではもっぱらテレタイプ端末であった。

テレタイプ端末というのはプリンターとキーボードからなる端末である。 キーボードからたかたかと入力してリターンキーを押すと、 タタタタタと応答が印字されるわけである。 端末をさすのにttyという略語が使われるのはテレタイプ(TeleTYpe)からきている。 第6版のころのUNIXにはmoreやlessのようなページャーがない。 画面ごとに出力を区切るという発想そのものがなかったのであろう。

UNIX第6版標準のエディターであるedは行指向で、 しかも行を直接編集する機能がない。 これは、後戻りできないというプリンターの特性に合わせて作られていたためである。

edの編集機能を強化したエディターemはベル研の外からやってきた。 emのソースコードを含めたおもしろいページがある。 emに影響を受けてexが誕生する。 のちにexに加わった画面編集モードviは非常な人気を得ることになる。

ディスクとは円盤であった

UNIX第6版がサポートしているディスクドライブにはいくつか種類があるが、 なかでも標準的だったのがRK05である。 ドライブ自体は50cmx30cmx75cmということは、大型のPCくらいの大きさである。 容量は2Mbyteほどで、UNIX第6版はこのRK05メディア3巻か磁気テープで配布されていた。

メディアはリムーバブルになっていて、 ここに直径30cmあまりの円盤をがっちょんとはめて使う。 口で言ってもわかりにくいが、 さいわいRK05の資料を集めたページにその様子が収録されている。 ちょうど、電子レンジに分厚いピザを入れてスイッチを押すとか、そんなような感じである。 こういう資料こそ貴重である。

量は難しい

PDP-11は現在のPCやワークステーションの原点ともいえるものなので、 その性質自体は特に理解が困難ということはない。 PDP-11で一番難しいのは量である。

どれだけのメモリがあればどれだけのことができるか、 という感覚が当時と現在とではまるきり違う。 初期のPDP-11が「メインメモリ最大256kbyte」と言われてもさっぱり感覚がつかめない。 速度についても同様である。 このへんは「適当に想像する」のがせいぜいである。

PDP-11さまざま

PDP-11にはいろんな機種があるが、UNIX第6版が対象としているのはPDP-11/40、 PDP-11/45、PDP-11/70である。 このほか、ドキュメントやソースコードには歴史的な事情により最初のPDP-11であるPDP-11/20への言及もみられる。

PDP-11/40、PDP-11/45はメモリー保護機構や拡張命令などがオプションである。 が、UNIXを動作させるにはこういったオプションを組み込んでいることが前提になっている。 PDP-11/70は上記のオプションを装着したPDP-11/45に近いが、 アドレスが拡張されているほか、キャッシュを搭載している。

細かい話をはじめるときりがないのでUNIXに直接関係のない話ははしょる。 UNIXからはPDP-11/45とPDP-11/70 はほぼ同じものである。 PDP-11/40のメモリー保護機構は簡易版なので、 他の2機種のような命令とデータの分離や、 中断した命令を再開するための機構がそなわっていない。 こういった違いはアセンブラーのルーチンや変数cputypeを見て吸収するよう記述されている。

Lions本はPDP-11/40用のm40.sのみを掲載しているが、 これをPDP-11/45および11/70用のm45.sと比較したり、 cputypeを参照している個所(main.cとbio.cにある)を見ると違いがわかる。 そこまでする必要があるか、というと正直なところよくわからない。 が、「些末なことだから」と馬鹿にせずに丁寧に調べていくのがPDP-11の感覚をつかむコツのような気もする。

実機にまつわる煩悩

PDP-11がまったく入手できないかというとそうでもない。 定期的にオークションをのぞいていると、 状態はともかくあるにはあるのだ。

初期のPDP-11はひとセット揃えると、 大型冷蔵庫のようなキャビネットがいくつも並ぶことになる。 そのうえ電力をやたらと食うのでおよそご家庭むきではない。 「貴様、それでもミニコンか!」という気分になるが、 当時の「ミニ」でないコンピューターというと、 部屋が丸ごと占拠されてしまうようなものだったのだから無理もない。

後期のものならば、本体はフルタワーのPCとさしてかわらないサイズである。 ただし、第6版のUNIXがサポートしているような古いハードディスクは本体よりも大きかったりするので、 結局コンパクトとはなかなかいかない。

デバイスさえ用意すれば後期のPDP-11で第6版のUNIXを動かすのは、 それほど難しいことではないようだ。 てもとにUNIXの入っているメディアがなくても、 シリアルから(9600 baudで!)データを転送してブートストラップするツールが存在する。 すばらしい。すばらしすぎる。

中古のPDP-11を手にいれてUNIXを動かすのはこのうえない道楽である。 手間と暇をかけることを厭わなければ、であるが、道楽とはそういったものだ。 世の中には拾ってきたPDP-11を再構成して組み上げるという素敵な趣味の人がいて、 そのノウハウを公開している。 こういうことをやってる人の集団がClassicCompである。 メーリングリストのアーカイブには膨大な情報が集積されているのだが、 玉石混淆でくらくらする。 このほか、便利な集大成もある。

煩悩は続くよどこまでも

ISA/PCIカード上にPDP-11を実現したOspreyなる製品も存在する。 周辺機器はカード上のx86プロセッサでエミュレートするが、 PDP-11プロセッサはDEC純正である。

ただし、まともに買おうとするとまともな自動車が買えるくらいのお値段になる。 これもまた、 まれに売りに出ていることがある。

参考資料

PDP-11等の古いマシンのマニュアルを掲載しているページ。 ハードウェアを持っている人にとっては鼻血が出そうなくらい便利。
戻る