RSX-11

RSX-11は、ディジタル・イクイップメント・コーポレーション (DEC) が開発したPDP-11シリーズ向けのリアルタイムオペレーティングシステムファミリで、1970年代後半から1980年代前半によく使われていた。1972年にPDP-11/40向けにリリースされたRSX-11Dが最初である。プロセス制御が主な用途だったが、プログラム開発にもよく使われた。

概要 
RSX-11の前身として、Dennis J. Brevik がPDP-15向けに設計した RSX-15 がある。Brevik によれば、当初はDEX-15と呼んでいたという。また、RSXは Real-Time System Executive の頭字語だという。ただし後に Resource Sharing Executive の頭字語に変更された。

Garth Wolfendale がプロジェクトリーダーとなって、1972年から1976年まで RSX-11D の開発とリリースを指揮した。その間に22ビット・アドレッシングのPDP-11/70サポートも行っている。Wolfendale はイギリス出身であり、イギリスでIASの設計・開発チームを立ち上げ、タイムシェアリングシステムの機能をRSX-11に導入した。その後は Andy Wilson がイギリスでの開発とIASのリリースを引き継いだ。

デヴィッド・カトラーは RSX-11D をさらにメモリ容量の小さいマシンで動作可能にする RSX-11M の開発リーダーを務めた。RSX-11M で導入された新方式は、後のVMSにも採用された。マイクロソフトの Windows NT は概念的には RSX-11M の子孫に当たるが、より直接的にはRISCプロセッサ () 用のカトラーが開発を指揮したOSがベースとなっている。ただしそのOSはリリースされなかった。この流れは、Helen Custer の著作  "Inside Windows NT" でカトラーが書いた序文にてよく説明されている。

私の最初のOSプロジェクトは、16ビットのPDP-11シリーズで動作するRSX-11Mというリアルタイムシステムだった。…32KBのメモリで動作するマルチタスクOSで、階層型ファイルシステム、アプリケーションのスワッピング、リアルタイム・スケジューリング、開発ユーティリティを備えていた。このOSとユーティリティは、非常に小さいシステムからPDP-11/70のように4MBのメモリを搭載したシステムまで、PDP-11の全機種で動作した。 — Dave Cutler

バージョン 
RSX-11 には様々なバージョンがある。
RSX-11A, C — 小型の紙テープベースのバージョン
RSX-11B — RSX-11CにディスクI/Oを加えたバージョン。ブートでは最初に DOS-11 をブートしてから RSX-11B を立ち上げる。ディスクI/OにはDOS-11のマクロを利用している。
RSX-11D — マルチユーザー・ディスクベースのOS。IASへと進化した。
IAS — タイムシェアリング指向を加えた RSX-11D で、PDP-11/70 と同時期にリリースされた。RSX-11ファミリでは初めてDCL（）を導入した。
RSX-11M — マルチユーザー版
RSX-11S — RSX-11Mのメモリ常駐版。組み込みシステムで採用された。アプリケーション開発は RSX-11M 上で行う。
RSX-11M-Plus — RSX-11Mの拡張版。マルチプロセッサのPDP-11/74サポートのために設計されたが、その機種はリリースされなかった。しかし、PDP-11/70でよく使われていた。
RSX-20F — RSX-11Mからの派生で、PDP-11/40 をPDP-10のフロントエンド・プロセッサとして使用する際のOS。
Micro/RSX — MicroPDP-11向けに事前にシステム生成した PSX-11M-Plus。インストールが容易だが、カーネル再作成ができない。
P/OS — PDP-11をベースにしたパーソナルコンピュータ DEC Professional 向けに改造した RSX-11M-Plus。

ソビエト連邦でのクローン 
DOS/RV,  — ソビエト連邦でつくられたRSX-11Mのクローン。RSX-11Mをそのままコピーし、プロンプトだけをバイナリファイルを直接書き換えて変更したものと見られている。RSX-11Mではソースコードが付属しており、システム生成に使われていたため、複製は容易だった。キリル文字での名称にある "ОСРВ" は "Операционная Система Реального Времени" の略で、ロシア語でリアルタイムオペレーティングシステムを意味する。'OCPBCM' という6文字は16ビットRADIX-50ワードに収まり、これは 'RSX11M' と同様である。名称の残りの "СМ" は 'Система Малых [электронно-вычислительных машин]' の略で「小型（電子計算機）システム」を意味する。PDP-11互換の 'СМ ЭВМ' というマシンで動作した。なお、ハードウェアに若干の違いがあり、RSX-11のバグをソ連の技術者が独自に修正したため、両者には若干の差異がある。

詳細 
RSX-11は汎用タイムシェアリングシステムとしても使われたが、その用途にはRSTS/Eがあった。RSX-11はリアルタイムOSであるため、周辺機器からの入力に対して所定の時間内に応答するという機能が備わっていた。システム立ち上げ時にタスクをメモリ上にロックする機能や、タスクに優先度を割り当てる機能もある。

64KBというPDP-11の相対的に小さい仮想アドレス空間で大きなプログラムをサポートするため、洗練された半自動オーバーレイシステムを使用している。taskbuilder (TKB) というプログラムを使って、任意のプログラムのオーバーレイを生成する。オーバーレイの構成が複雑になるほど、その生成には時間がかかる。

DCLが導入される以前、RSXのプロンプトは ">" か "MCR>" だった。"MCR"は "Monitor Console Routine" の略である。全てのコマンドは入力にあたって先頭3文字に短縮でき、そのために先頭3文字のみで識別できるよう名付けられていた。ログインコマンドの "HELLO" はログインしていない状態でのみ実行可能である。"HELLO" は短縮できない。というのも、ログインしていない状態で "HEL" と入力すると "HELP" コマンドが実行されるためである。

関連項目 
 RSTS/E
 RT-11

脚注

外部リンク 
 Al Kossow posted some further notes on RSX-11 in alt.sys.pdp11.

ディジタル・イクイップメント・コーポレーション
リアルタイムオペレーティングシステム
1972年のソフトウェア