TOPS-10

TOPS-10は1967年にディジタル・イクイップメント・コーポレーション (DEC) がメインフレームのPDP-10シリーズ向けにリリースした歴史上のオペレーティングシステム(OS)。TOPS-10を搭載したPDP-10システムは "DECsystem-10"と呼ばれた。"TOPS" は Timesharing / Total OPerating System の略。元々はPDP-6およびPDP-10の初期のOSだった "Monitor" が発展したもので、1970年にTOPS-10へ改名された。

**概要**
TOPS-10は共有メモリをサポートしており、世界で初めて真のマルチプレイヤーを実現したゲームの1つが開発された。DECWARはテキストベースのスタートレックのようなゲームで、ユーザーは端末からコマンドを打ち込み、リアルタイムで対戦できた。またTOPS-10は今日ではMMORPGと呼ばれるオンラインロールプレイングゲームの先駆けであるMulti User Dungeon(MUD)のオリジナルを運用するのに用いられた。
他の特筆すべきアプリケーションとして FORUM がある。現在ではチャットと言われるユーザー同士の会話ができるアプリケーションであり、いわゆる「CBシミュレータ」の先駆けでだった。このアプリケーションは複数のユーザーによる対話の可能性を示したもので、CompuServeのチャットが開発される要因のひとつとなった。
TOPS-10のAPIは非常に頑強であり、UUO（Unimplemented User Operation; 未実装ユーザー命令）を利用した機構を使っている。UUOによりシステムコールは機械語の命令の1つであるように実装された。このAPIはモニターコールと呼ばれ、当時としてはほとんどのOSより大きく進んでおり、DECsystem-10のシステムプログラミングを単純かつ強力なものにした。
TOPS-10はプライオリティが付いた複数のキューで構成されるスケジューラを備えており、多段フィードバックキューの原始的なもので、プライオリティに基づいてプロセスをキューに挿入できた。またこのOSではユーザーファイルとデバイスが独立していた。

**コマンド**
下記のリストはTOPS-10がサポートしているコマンドの一覧である。- ASSIGN- ATTACH- BACKSPACE- BACKUP- CCONTINUE- COMPILE- CONTINUE- COPY- CORE- CPUNCH- CREATE- CREDIR- CREF- CSTART- D(eposit)- DAYTIME- DCORE- DDT- DEASSIGN- DEBUG- DELETE- DETACH- DIRECTORY- DISABLE- DISMOUNT- DSK- DUMP- E(xamine)- EDIT- ENABLE- EOF- EXECUTE- FILCOM- FILE- FINISH- FUDGE- GET- GLOB- HALT- HELP- INITIA- JCONTINUE- KJOB- LABEL- LIST- LOAD- LOCATE- LOGIN- MAKE- MERGE- MIC- MOUNT- NETWORK- NODE- NSAVE- NSSAVE- OPSER- PJOB- PLEASE- PLOT- PRESERVE- PRINT- PROTECT- PUNCH- QUEUE- QUOLST- R- REASSIGN- REATTACH- REENTER- RENAME- RESOURCES- REWIND- RUN- SAVE- SSAVE- SCHED- SEND- SET- SKIP- START- SUBMIT- SYSTAT- TECO- TIME- TPUNCH- TYPE- UNLOAD- USESTAT- VERSION- WHERE- ZERO

**歴史**

**リリース履歴**
PDP-6のMonitorは1964年にリリースされた。1967年のリリース2.18でPDP-10のKA10プロセッサをサポートした。1970年のリリース5.01からTOPS-10に改称された。リリース6.01（1974年5月）で初めて仮想記憶（デマンドページング）を実装し、物理メモリ容量より大きなプログラムを実行できるようになった。リリース7.00から対称型マルチプロセッシングが可能となった（それまではマスタースレーブ方式が使われていた）。最終版は1988年のリリース7.04である。

**今日のTOPS-10**
1996年、DECはTOPS-10を愛好家が使用することを許諾するホビースト向けライセンスを発行した。
今日TOPS-10を動作させる最も簡単な方法は、適当なエミュレータとOSのシステムイメージを利用する方法である。また、元もとの配布用磁気テープの内容がアーカイブされており、そこから構築することも可能である
。
ポール・アレンは歴史的コンピュータシステムを保守し公開しているが、その中にTOPS-10が動作する DECsystem-1090 も含まれる。

**ソフトウェア**

**実装されたプログラミング言語**
TOPS-10のアセンブラMACRO-10がTOPS-10に同梱されていた。
以下のプログラミング言語製品がTOPS-10上で動作した。- ALGOL (ALGOL-10 v10B) - 汎用コンパイラ- APL (APL-SF V2) - 数学的モデリング用インタプリタ- BASIC (BASIC-10 v17F) - 汎用インタプリタ- BLISS (BLISS-10, BLISS-36) - システムプログラミング用コンパイラ- COBOL (COBOL-68, COBOL-74) - 事務処理用コンパイラ- FORTRAN (FORTRAN-10 v11) - 科学技術計算用コンパイラ
以下のプログラミング言語もTOPS-10上で実装されているが、DEC純正ではなくユーザーグループ DECUS の会員が提供したものである。- FOCAL (FOCAL-10)- Forth - スレッデッドコード方式の言語- IMP72- LISP - AIプログラミング向けインタプリタ- Pascal - コンピュータ教育向けコンパイラ- PILOT - CAI向け言語- SAM76- Simula - モデリング用コンパイラ- SNOBOL - 文字列処理用インタプリタ- BCPL - エセックス大学が実装したコンパイラ

**実装されたユーティリティ**
以下のリストはTOPS-10で実装された主なユーティリティソフトである。- RMS - レコードマネジメントサービス- IQL - 対話型クエリ言語- DBMS-10 - CODASYL データベース

**TOPS-10で実装された主なゲーム**
 コロッサル・ケーブ・アドベンチャー (ADVENT)- DECWAR - 前述- FORUM - 前述- HAUNT - 初期のロールプレイングゲーム- マックハック - リチャード・グリーンブラットが開発したコンピュータチェス- MUD - 前述

**影響**
MS-DOSはTOPS-10から大きな影響を受けている。3文字のファイル拡張子、EXEやTXTといった主な拡張子名、アスタリスク(*)を用いたワイルドカード、コマンドのスイッチにスラッシュ(/)を用いるなど、数多くの共通点がみられる。

**脚注**

**関連項目**
 TOPS-20- コロッサル・ケーブ・アドベンチャー