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といった主な拡張子名、アスタリスク(\*)を用いたワイルドカード、コマンドのスイッチにスラッシュ(/)を用いるなど、数多くの共通点がみられる。