TOPS-20
Channel: 宇宙のすべての知識 プリンシピア
Date: 2021-11-15

TOPS-20, by Wikipedia https://ja.wikipedia.org/wiki?curid=668030 / CC BY SA 3.0

#1969年のソフトウェア
TOPS-20はデジタル・イクイップメント・コーポレーション(DEC)によるDECの36ビットメインフレームコンピューター用のプロプライエタリ なOSで、PDP-10向けのTOPS-10の後継OSである。
ハードウェアリファレンスマニュアルには「DECsystem-10 / DECSYSTEM-20 プロセッサ」と記載された（DEC PDP-10とDECSYSTEM-20を意味している)。 TOPS-20の起源は、 BBNテクノロジーズ(BBN)のTENEXオペレーティングシステム(1969年)であり、1976年にDECから販売された。このシステムは名前の類似しているTOPS-10とはほぼ全く関係がなかったが、PA1050というTOPS-10のモニターコールをエミュレーションする機能が同梱されており、一部を除いてTOPS-10用実行ファイルをほとんど修正なしで動作させることができた。DECの方針により、DECのアプリを実行するのに必要となった場合を除いて、TOPS-10のその後の修正をフォローするためにPA1050をアップデートすることはなかった。 TOPS-20はPDP-10で当時利用可能だったOSとして、TOPS-10、ITS、WAITSなどの著名なタイムシェアリングシステムと競合関係にあった。 TOPS-20はBBNがDECのPDP-10用に開発したTENEXというOSをベースに開発された。TENEXはPDP-10で動作するサードパーティー製のOSとして当時最も人気があったが、DECが新たに開発した高速なKI-10版PDP-10では動作しなかった。この問題に対応するため、DECのPDP-10担当セールスマネージャはBBNからTENEXの権利を買い取り、新機種に移植するプロジェクトを立ち上げた。最終的には元のTENEXのコードはほとんど残らず、TOPS-20という名前で販売された。 このTOPS-20のおまけはTOPS-10のシステムコールをエミュレーションするエミュレーターに過ぎなかった。UUO (Unimplemented User Operation; 未実装ユーザー命令)と呼ばれる仕組みを利用し、TOPS-20用ではないコンパイラを実行したり、こうした言語で書かれたユーザープログラムを実行したりするのに必要だった。ユーザーアドレス空間にマップされたパッケージの名称がPA1050だった。PAまたはPATは互換の意味で、10はDECやPDP-10を意味し、50はPDP-10モデル50、10/50、1050を意味していた。 PA1050はPATと呼ばれることもあり、PA1050は特権を持たないユーザーモードのプログラムであり、JSYSコールを使って必要な時だけ動作することから、この名前は体をよく表していた。 TOPS-20は以下の機能によりその特徴を最大限に活用できる。 EXECは主に以下の方法で機能を実現している。 TOPS-20は当時としては非常に先進的な機能があった。 「？」を入力すると、許されるオペランドや必要なオペランドが補完される。 以下のコマンド一覧はTOPS-20のコマンドプロセッサによりサポートされる。 JSYSは Jump to SYStemの略。オペランドにはメモリアドレスの指定もあった。TOPS-20は18ビットまたは30ビットのアドレスを使用できた。モニタコールには1つないしは2つのオペランドが必要だった。一部のコールは両方の形式をサポートした。一部のモニタコールでは指定したアドレスのうちの18ビット以上が無視された。これらのコールは18ビットのアドレスが現在のセクションを参照しているものと解釈された。 内部的には、まずGTJFN (Get Job File Number)というJSYSでファイルを識別し、次にOPENFでJFN番号を指定してファイルを開き、ファイルの内容を操作した。 PCL（Programmable Command Language）はTOPS-20で動作するプログラミング言語。
PCLのソースプログラムは、デフォルトでは.PCLというファイル形式で保存され、TOPS-20の拡張されたEXECでDECLAREという動詞名を使ってコンパイルでき、コンパイルしたコマンドはEXECの一部として機能した。
 PCLには次のような機能があった： ポール・アレンは、TOPS-20が動作するXKL TOAD-2など、死去する前にいくつかの公にアクセス可能な歴史的なコンピューターシステムを維持していました。...