[インターネット・サイエンスの歴史人物館]

連載:インターネット・サイエンスの歴史人物館(17:最終回)レイモンド・トムリンソン

2008/07/08
(火)

TENEXの開発

仮想記憶が利用できるハードウェアは、メモリのアドレスと磁気ドラムやディスクのアドレスを、要求時に変換する機構を備えている。仮想記憶は、記憶域をページという一定の容量の単位に分割し、必要な時に外部記憶装置からメモリに呼び出し、使い終わると外部記憶装置に書き戻す動作により、搭載しているメモリより格段に大きな容量を、あたかも実メモリのように利用することができる。

PDP-10のプロセッサは、メモリバスを介して複数の独立したメモリブロックにアクセスできるため、マーフィーはプロセッサとメモリバスの間にアドレス変換を行う装置を配置し、18ビット語長で256キロワードの仮想アドレス空間を実現する計画を立てた。TENEXと呼ばれることになったOSの仮想記憶は、256キロワードの連続したアドレス空間を実現し、1ページは512ワードに設定された。

BNNのチームは、主としてSDS 940のタイムシェアリングOSを土台にし、さらにMITの最先端OS開発プロジェクトのMULTICSを参考にしながら、仮想記憶構造、プロセス構造と利用法、タイムシェアリングのスケジューリング方法などを設計していった。また、DECのOSであるTOPS-10を活用するプログラムを実行する方法として、システムコールを同等のサービスに変換するソフトウェア・モジュールを設計した。かれらは、プログラマの役割分担を明確にし、ほとんどの実装作業を6人だけで行うことにした。かれらは1969年11月に半年後の完成を目指して実装を開始した。

チームは予定通りのスケジュールで、70年5月にBBN社内でTENEXの稼働を開始した。しかし、クラッシュ発生率が高く、チームは約1ヶ月かけて障害原因を排除し、6月15日に正式にTENEXを発表した。TENEXでは、LISP、FORTRAN IV、TECOなどが利用できた。

TENEXにNCPを実装

BBNは68年12月に、サブネットルータの役割を果たすIMP(Interface Message Processor)をARPAから受注し、69年9月から月1台のペースでカリフォルニア州立大学ロサンゼルス校(UCLA)、スタンフォード研究所、カリフォルニア州立大学サンタバーバラ校、ユタ大学に納入することになった。TENEXの設計仕様は、ARPAの研究コミュニティによりARPANET向けOSとして評価され、ARPAの支援を得て実装された。ユタ大学は、TENEXが稼働することを見込んでPDP-10を導入し、その後ARPANETに参加を希望する大学ではPDP-10の導入が相次いだ。

IMPはARPANETの物理層、データリンク層、ネットワーク層のプロトコルを実装していたが、アプリケーション・サービスを可能にするためには、種類が異なるホストコンピュータ間のデータ伝送手順を規定するトランスポート層をソフトウェアで実現してOSに実装し、異なるOS間で接続の確立と解除を行えるようにする必要があった。

ARPA情報処理部長のローレンス・ロバーツは69年12月8日に、ユタ大学で開催されたネットワーク・ワーキング・グループ(NWG)の会議で、ホスト間プロトコルの要件を示し、UCLAのスティーブン・クロッカー、ヴィントン・サーフ、ユタ大学のスティーブン・カーに仕様をまとめるよう要請した。このプロトコルは、単方向通信のホスト間プロトコルと接続開始時のみ双方向通信を行うイニシャル・コネクション・プロトコル(ICP)で構成されることになり、NCP(Network Control Protocol)と呼ばれるようになった。

NCPの仕様は70年12月にまとまり、トムリンソンはNCPをTENEXに実装することになった。かれは1971年2月からNWGの会合に参加し、NCPの実装上の問題を指摘したり対処する役割も担った。71年10月にMITでNCPによる相互接続を検証する会議が開催され、71年末には全米15ヵ所の大学や研究所でNCPの利用が始まった。

ネットワークEmailの誕生

ICPは8ビットの情報で2台のホスト間の接続を確認するための全二重通信を定義していたが、トムリンソンは2台のPDP-10間で一度接続が成立して全二重通信が終了した後で、全二重通信を同じホスト間で復活させてPDP-10の36ビット・ワードでデータ・ファイルを転送するコードを試作しCPYNETと名づけた。かれは次いで、1台のPDP-10を共有するTENEXユーザーが文書を作成し互いに送信するSNDMGE(send message)というプログラムを記述した。

1台のタイムシェアリング・システムのユーザー間で利用できるEmail(電子メール)は、65年にMITで開発されたCTSS MAILなど複数のシステムで実現されていた。そんな折、スタンフォード研究所(SRI)のリチャード・ワトソンは、71年7月に「メールボックス・プロトコル(RFC196)」発表した。SRIは、ARPANETのネットワーク・インフォメーション・センター(NIC)として、情報を各ノードに配布する役割を担っていた。ワトソンは、文書を各サイトに配布するために、各テレタイプにメールボックス番号を割り当て、印字出力する方法まで規定していた。

トムリンソンはワトソンの提案を読み、電子的なメールボックスに届いた文書を印字するかはユーザーの判断に任せればよいと思い、SNDMSGとCPYNETを組み合わせてホスト間のメール送信が可能か試すことにした。CPYNETは特定のローカルファイルに対しての読み書きや追加を要求するアドレスを判別する。SNDMSGにCPYNETのコードを組み込めば、SNDMSGが送信するリモートホスト宛てのアドレスで、CPYNETを起動させてリモートホストとの接続を成立させて、宛先のメールボックスに文書を追加できるかのしれない。

トムリンソンの仕事場では、2台のPDP-10が隣り合わせに設置されARPANETに接続されていた。かれはSNDMSGを拡張し、1971年11月から12月にかけて送受信実験を繰り返した。かれは1台のPDP-10に接続されたテレタイプに送信文を入力し、もう1台に接続されたテレタイプからメッセージを印字することに成功した。

関連記事
新刊情報
5G NR(新無線方式)と5Gコアを徹底解説! 本書は2018年9月に出版された『5G教科書』の続編です。5G NR(新無線方式)や5GC(コア・ネットワーク)などの5G技術とネットワークの進化、5...
攻撃者視点によるハッキング体験! 本書は、IoT機器の開発者や品質保証の担当者が、攻撃者の視点に立ってセキュリティ検証を実践するための手法を、事例とともに詳細に解説したものです。実際のサンプル機器に...
本書は、ブロックチェーン技術の電力・エネルギー分野での応用に焦点を当て、その基本的な概念から、世界と日本の応用事例(実証も含む)、法規制や標準化、ビジネスモデルまで、他書では解説されていないアプリケー...