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つが開発された。はテキストベースのスタートレックのようなゲームで、ユーザーは端末からコマンドを打ち込み、リアルタイムで対戦できた。また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のアセンブラが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純正ではなくユーザーグループ  の会員が提供したものである。

* FOCAL (FOCAL-10)
* Forth - スレッデッドコード方式の言語
* IMP72
* LISP - AIプログラミング向けインタプリタ
* Pascal - コンピュータ教育向けコンパイラ
*  - 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
* コロッサル・ケーブ・アドベンチャー