| 開発者 | BBN |
|---|---|
| 書かれた | アセンブリ言語 |
| 作業状態 | 歴史的 |
| 初回リリース | 1969年 |
| マーケティングターゲット | メインフレームコンピュータ |
| プラットフォーム | PDP-10 |
| 影響を受けた | トップ10 |
| デフォルトの ユーザーインターフェース | コマンドラインインターフェース |
| ライセンス | 独自 |
| 後継者 | トップ20 |
TENEX は、1969 年にBBNがPDP-10用に開発したオペレーティング システムであり、後にDigital Equipment CorporationのTOPS-20オペレーティング システムの基礎となりました。
背景
1960 年代、BBN はDARPAのLISPベースの人工知能プロジェクトに数多く関わっていました。その多くは (当時としては) 非常に大きなメモリ要件を必要としました。この問題の解決策の 1 つは、LISP言語にページングソフトウェアを追加して、メモリの未使用部分をディスクに書き出して、必要に応じて後で呼び出せるようにすることでした。そのようなシステムの 1 つは、BBN に入社する前にDaniel MurphyがMITでPDP-1用に開発していました。初期のDECマシンは18 ビットワードをベースとしており、アドレスを 256キロワードのメモリにエンコードできました。これらのマシンは高価なコア メモリをベースとしており、必要な量にはほど遠いものでした。ページャは、アドレスの最上位ビットを使用して、ページャのバッキング ストアとして機能する磁気ドラム上のブロック テーブルにインデックスを付けました。ソフトウェアは必要に応じてページをフェッチし、アドレスをRAMの適切な領域に解決しました。
1964年、DECはPDP-6を発表した。DECは依然としてMITのAIラボに深く関わっており、LISPハッカーからの多くの機能要求がこのマシンに取り入れられた。36ビットコンピューティングは、18ビットのアドレス空間ではこれらのシステムのストレージの1ワードに2つのアドレスが含まれ、一般的なLISPのCARおよびCDR操作に完全に一致するため、LISPプログラミングに特に便利だった。BBNは、入手可能になったときにAI作業用に1台購入することに興味を持ったが、DECにマーフィーのページャーのハードウェアバージョンを直接システムに追加することを求めた。そのような追加により、システム上のすべてのプログラムは目に見えない形でページングサポートを持つようになり、プログラミングがはるかに簡単になった。DECは当初興味を持っていたが、1966年にPDP-6の製造を中止し、より小型の18ビットと新しい16ビットラインのみに集中すると発表した。PDP-6は高価で複雑だったため、売れ行きが悪かった。
DEC がPDP-10となる製品で再び36 ビット事業に参入することが明らかになるまで、それほど時間はかからなかった。BBNは、当時 CPU 名 KA-10 で知られていた新しいマシンにページング サブシステムを搭載するために DEC と交渉を開始した。DEC は興味を示さなかったが、この交渉の進展の 1 つとして、PDP-10 で第 2 の仮想メモリ セグメントをサポートし、ユーザー アドレス空間の半分を物理メモリの別の (読み取り専用になる可能性のある) 領域にマップできるようにするという案が浮上した。さらに、DEC は、最低でも 16K ワードのコアを持つシステムをサポートし、高速半導体レジスタオプション(コアの代替) を省略するなど、マシンのコストを可能な限り低く抑えることを主張したが、その代償として、かなりのパフォーマンスの低下を招いた。
BBN と PDP-10

BBN はそれでも PDP-10 を数台購入し、独自のハードウェア ページャーを構築することを決定しました。[1]この時期に、新しいマシンでどのオペレーティング システムを実行するかについての議論が始まりました。最小限の労力で既存のソフトウェアを実行し続けるために、TOPS-10 を引き続き使用することが強く主張されました。これには、ページング システムをサポートするために TOPS-10 を書き直す必要があり、これは大きな問題のように思われました。同時に、TOPS-10 は開発者が望んでいた多くの機能をサポートしていませんでした。最終的に、彼らは新しいシステムを作成することに決定しましたが、既存の TOPS-10 ソフトウェアをわずかな労力で実行できるようにするエミュレーション ライブラリを組み込みました。
開発者チーム ( Daniel MurphyとDaniel G. Bobrowを含む) は、新しいシステムに TENEX (TEN-EXtended) という名前を選びました。このシステムには完全な仮想メモリシステムが含まれていました。つまり、プログラムは 262,144 ワードの仮想メモリの 18 ビット アドレス空間全体にアクセスできるだけでなく、すべてのプログラムが同時にアクセスできます。ページャ システムは、必要に応じてバックアップ ストアとの間でデータをコピーし、通常どおりにマッピングを処理します。必要な変更は、ページャが RAM とストア間のマッピング セットをいくつか保持できるようにすることです (システムを使用するプログラムごとに 1 つ)。ページャは、パフォーマンスを調整するためにアクセス時間情報も保持します。結果として得られたページャはかなり複雑になり、フル ハイトの 19 インチ ラックマウント シャーシを占有しました。
TENEX の注目すべき機能の 1 つは、ユーザー指向のコマンドライン インタープリタです。当時の一般的なシステムとは異なり、TENEX は意図的に長いコマンド名を使用し、さらにコマンドを拡張して明確にするために重要でないノイズ ワードを含めました。たとえば、Unix はlsディレクトリ内のファイルの一覧を印刷するために を使用していましたが、TENEX は を使用していましたDIRECTORY (OF FILES)。" DIRECTORY" はコマンド ワードで、" (OF FILES)" はコマンドの目的を明確にするために追加されたノイズです。ユーザーがこれらの長いコマンドを入力する必要性を軽減するために、TENEX は、明確に省略されたコマンド ワードを理解し、部分的なコマンド ワードを完全な単語または句に拡張するコマンド補完DIRシステムを使用しました。たとえば、ユーザーはと入力してエスケープ キーを押すと、TENEX はDIR完全なコマンドに置き換えます。補完機能はファイル名でも機能し、インタープリタ側で多少の労力が必要でしたが、システムは人間が読める説明付きの長いファイル名を許可していました。 TENEX にはコマンド認識ヘルプ システムも含まれていました。疑問符 ( ?) を入力すると、一致する可能性のあるコマンドの一覧が出力され、疑問符が削除されたコマンド ラインにユーザーが戻されます。コマンド ラインの補完とヘルプは、tcshなどの現在の CLI にも引き継がれています。
TENEXからTOPS-20へ
TENEX は小規模な PDP-10 市場でかなり人気が高まり、外部ページャ ハードウェアは独自の小規模ビジネスに発展しました。1970 年初頭、DEC は PDP-10 プロセッサのアップグレードである KI-10 に着手しました。BBN は再度、間接ページ テーブルを備えた複雑なページャをサポートするよう DEC に働きかけましたが、DEC ははるかに単純なシングル レベル ページ マッピング システムを採用しました。この妥協はシステムの売上に影響を及ぼしました。この時点で、TENEX は最も人気のある顧客作成の PDP-10 オペレーティング システムでしたが、新しい高速な KI-10 では動作しませんでした。
この問題を解決するために、DEC PDP-10 のセールス マネージャは BBN から TENEX の権利を購入し、新しいマシンに移植するプロジェクトを立ち上げました。この頃、マーフィーも BBN から DEC に移り、移植プロジェクトに協力しました。作業のほとんどは、ソフトウェアと KI-10 のよりシンプルなハードウェアの組み合わせで BBN ページャ ハードウェアをエミュレートすることに集中しました。これは、PDP-6 と比較して KI-10 の速度が速かったために可能になりました。さらに、移植作業では、使用されている新しいバックアップ ストア デバイスをサポートするために、 いくつかの新しいデバイス ドライバが必要でした。
新しい TENEX が出荷される頃、DEC は KI-10 の低価格版となる KL-10 の開発に着手しました。その一方で、スタンフォード大学のAI プログラマー (多くはMIT の卒業生)は、オリジナルの KA-10 より 10 倍高速な PDP-10 を構築する独自のプロジェクトに取り組んでいました。このプロジェクトはFoonlyシリーズのコンピューターに発展しました。DEC は彼らを訪ね、彼らのアイデアの多くが KL-10 プロジェクトに取り入れられました。同年、IBM も仮想メモリを搭載した独自のマシンを発表し、これをあらゆるコンピューターの標準要件にしました。最終的に、KL ではシステムにいくつかの大きな変更が取り入れられましたが、コストはそれほど下がりませんでした。当初から、新しいDECSYSTEM-20 はデフォルトのオペレーティング システムとして TENEX のバージョンを実行することになりました。
KL-10 プロセッサ アーキテクチャの機能アップグレードは限られていました。最も重要な新機能 (拡張アドレッシングと呼ばれる) は、モデル Bハードウェア リビジョンで実行されるページャ マイクロコードを変更して、ユーザー仮想アドレス空間を拡大したことです。元の 18 ビット アドレス空間を超えて配置された命令による一部の有効なアドレス計算は、30 ビットの有効ビットまで実行されましたが、サポートされている仮想アドレス空間は 23 ビットのみでした。元の 18 ビット アドレス空間に配置されたプログラム コードは、下位互換性のためにセマンティクスが変更されませんでした。
このオペレーティング システムの最初の社内コード名は VIROS (VIRtual memory Operating System) でした。顧客から質問が寄せられ始めたため、DEC が VIROS というプロジェクトの存在を正直に否定できるように、名前は SNARK に変更されました。SNARK という名前が知られるようになると、名前は一時的に KRANS に変更されましたが、スウェーデン語で「krans」は「葬儀の花輪」を意味する(ただし、単に「花輪」という意味で、この部分は作り話である可能性があります) という異論が出たため、すぐに廃止されました。
最終的に DEC は TOPS-20 をオペレーティング システムの名前として選び、TOPS-20 として販売されました。ハッカー コミュニティは、その起源に留意し、すぐにこれを TWENEX ( 「twenty TENEX」の合成語) と名付けましたが、この時点では元の TENEX コードはほとんど残っていませんでした ( AT&T V7 Unix とBSDの違いに似ています)。DEC の人々は「TWENEX」と聞いて身震いしましたが、それでもこの用語は定着しました (「20x」という略語も使用されました)。[2]
TWENEX は成功し、非常に人気がありました。実際、1980 年代初頭には、UnixやITSと同じくらい熱烈な支持者を擁していた時期がありました。しかし、 VAXアーキテクチャとそのVMSオペレーティング システムに対する社内のライバルをすべて廃止するという DEC の決定により、DEC-20 は廃止され、TWENEX の短い人気に終止符が打たれました。DEC は TOPS-20 ユーザーに VMS への移行を説得しようとしましたが、1980 年代後半までに、ほとんどの TOPS-20 ユーザーは Unix に移行しました。TOPS-20 愛好家の忠実なグループは、マーク クリスピンと Panda TOPS-20 ディストリビューション に代表されるように、TOPS-20 を保存および拡張するためのさまざまなプロジェクトに取り組み続けました。
参照
参考文献
- この記事の一部のテキストは、パブリック ドメインである「TWENEX」の The Jargon File エントリから引用されています。
- ^ Strollo, Theodore R.; Burchflel, Jerry D.; Tomlinson, Raymond S. (1970 年 7 月 22 日)。「BBN ポケベル モデル 701 の技術詳細」(PDF)。Bolt , Beranek および Newman。
- ^ 「TWENEX」.
さらに読む
- Daniel G. Bobrow、Jerry D. Burchfiel、Daniel L. Murphy、Raymond S. Tomlinson、「TENEX、PDP-10 用のページ化されたタイムシェアリング システム」、Communications of the ACM、第 15 巻、135 ~ 143 ページ、1972 年 3 月。
