| RT-11 | |
|---|---|
| 開発者 | デジタル・イクイップメント・コーポレーションとメンテック社 |
| 執筆 | マクロ11 |
| 動作状態 | 製造中止 |
| ソースモデル | 非公開ソース |
| 初回リリース | 1973年6月 (1973-06) |
| 最新リリース | 5.7 / 1998年10月 ( 1998-10 ) [ 1 ] |
| マーケティングターゲット | 実験室用、科学用、産業用機器 |
| 利用可能 | 英語 |
| 対応プラットフォーム | PDP-11ファミリーおよびクローン |
| カーネルタイプ | モノリシック |
| デフォルトのユーザーインターフェース | キーボードモニタ(KMON)コマンドラインインターフェース |
| ライセンス | 専有 |
RT-11 ( Real-time 11 ) は、 Digital Equipment Corporation PDP-11 16 ビットコンピュータ全機種向けの、小型で低価格の[ 2 ]シングルユーザーリアルタイム オペレーティングシステムで、現在は販売終了しています。RT-11 は 1970 年に初めて実装され、1973 年 6 月にリリースされました。 [ 3 ]すべての PDP-11 で、リアルタイム コンピューティングシステム、プロセス制御、データ収集に広く使用されました。また、低コストの汎用コンピューティングにも使用されました。[ 2 ]
RT-11はアセンブリ言語で記述されました。MACRO -11アセンブラの条件付きアセンブリ機能とマクロプログラミング機能を多用することで、高度な設定が可能になり、プログラマはマシンコードでは規定されていない高レベルの命令を指定できるようになりました。RT-11の配布物には、すべてのコメントが削除されたオペレーティングシステムとそのデバイスドライバのソースコードと、ユーザーが指定した構成に基づいてオペレーティングシステムとドライバをビルドする「SYSGEN」というプログラムが含まれていました。開発者向けドキュメントには、コメント付きのカーネルリストが含まれていました。
RT-11では、デバイスドライバ[ 4 ] [ 5 ]をロードできましたが、V4.0より前は、システムデバイス(ブートデバイス)のデバイスドライバは構成時にカーネルに組み込まれていました。RT-11はデバイス制御やデータ取得によく使われていたため、開発者がデバイスドライバを作成したり、機能を強化したりすることが一般的でした。DECは、ハードウェアサブシステム(バス構造からコードまで)を公開し、オペレーティングシステムの内部構造を文書化し、サードパーティのハードウェアおよびソフトウェアベンダーを奨励し、デジタル機器コンピュータユーザー協会の発展を促進することで、このようなドライバ開発を奨励しました。
RT-11 システムではプリエンプティブ マルチタスクはサポートされていませんでしたが、ほとんどのバージョンでは複数のアプリケーションを同時に実行できました。モニターのすべてのバリアントにはバックグラウンド ジョブがありました。FB、XM、ZM モニターにはフォアグラウンド ジョブもあり、SYSGENシステム生成プログラムで選択された場合は 6 つのシステム ジョブもありました。これらのタスクには固定の優先順位があり、バックグラウンド ジョブが最も低く、フォアグラウンド ジョブが最も高くなっていました。システム コンソールユーザー インターフェイスからジョブを切り替えることができ、SYSGEN は単一のバックグラウンド ジョブを提供するモニター (SB、XB、ZB バリアント) を生成することができました。[ 2 ]フォアグラウンドとバックグラウンド という用語は直感的ではありません。バックグラウンド ジョブは通常、ユーザーのコマンドライン インタプリタであり、フォアグラウンド ジョブは非対話型のデータ収集などを行う場合があります。

RT-11は、通常、印刷端末またはビデオ端末を介して操作されました。当初は、ストラップで切り替え可能な電流ループ(従来型のテレタイプ用)またはCPUカード上のRS-232(後にRS-422も)インターフェースを介して操作されました。DECは、VT11およびVS60グラフィック表示装置(テキスト表示用のグラフィック文字ジェネレータとグラフィック入力用のライトペンを備えたベクターグラフィック端末)もサポートしていました。サードパーティ製品として人気があったのは、Tektronix 4010シリーズでした。
キーボードモニタ (KMON) は、ユーザーが発行したコマンドを解釈し、コマンド文字列インタープリタ (CSI) 形式のコマンドを使用してさまざまなユーティリティを呼び出しました。RT-11 コマンド言語には、 RT-11 から多くを借用したDOS系オペレーティングシステムで後に見られる多くの機能 (コマンドやデバイス名など) がありました。CSI 形式では、入力ファイル名と出力ファイル名、およびオプション(RT-11 では「スイッチ」) が正確な順序と構文で指定されることが期待されました。コマンドラインスイッチは、Unix 系オペレーティングシステムで使用される/ダッシュ ( ) ではなく、スラッシュ ( )で区切られました。すべてのコマンドには、完全な形式と短縮形があり、短縮形に短縮することができました。たとえば、RENAME コマンドはRENに短縮できました。-
バッチファイルとバッチプロセッサを使用すると、基本的な制御フローを備えた一連のコマンドを発行できます。バッチファイルの拡張子は.BATです。
RT-11の後期バージョンでは、.COMコマンドファイルを使用して一連のコマンドを呼び出すことが可能でしたが、それらはフロー制御なしで順番に実行されました。さらに後になって、.CMD制御ファイルを入力として受け取る間接コマンドファイルプロセッサ(IND)を使用することで、一連のコマンドを高度に制御して実行することが可能になりました。
拡張子が.SAVのファイルは、一種の実行ファイルでした。RT-11のSAVEコマンドを使用すると、メモリの内容をディスクファイルに保存でき、後で読み込んで実行できるため、「セーブファイル」と呼ばれていました。これにより、任意のセッションを保存することが可能でした。
SAVE コマンドは、GET、 START 、REENTER、EXAMINE、DEPOSITとともに、KMON に実装された基本コマンドでした。一部のコマンドとユーティリティは、後にDOS系オペレーティングシステムに借用されました。これらのコマンドには、 DIR、COPY、RENAME、ASSIGN、CLS、DELETE、TYPE、HELPなどがあります。FORMATコマンドは物理ディスクのフォーマットに使用されましたが、ファイルシステムの作成はできませんでした。ファイルシステムの作成には INIT コマンド (DOS コマンド FORMAT /Q に相当) が使用されました。ほとんどのコマンドは、ファイル名にワイルドカードを使用することをサポートしていました。
物理デバイス名は「dd{n}:」の形式で指定され、「dd」は2文字のアルファベットのデバイス名、オプションの「n」はユニット番号(0~7)でした。ユニット番号が省略された場合は、ユニット0が想定されました。たとえば、TT: はコンソール端末、LP:(またはLP0:)はパラレルラインプリンタ、DX0:、DY1:、DL4: はディスクボリューム(それぞれRX01ユニット0、RX02ユニット1、RL01またはRL02ユニット4)を指していました。論理デバイス名は1~3文字の英数字で構成され、物理デバイス名の代わりに使用されました。これはコマンドを使用して実行されましたASSIGN。たとえば、コマンドを実行ASSIGN DL0 ABCすると、以降の「ABC:」へのすべての参照が「DL0:」にマッピングされます。予約済みの論理名DK:は、現在のデフォルトデバイスを指していました。デバイスがファイル指定に含まれていない場合は、DK:が想定されました。予約済みの論理名SY:システムデバイス(システムが起動されたデバイス)を参照します。
RT-11 の後のバージョンでは、特定のデバイスに対して最大 64 ユニット (0 ~ 77 の 8 進数) を指定できるようになりましたが、デバイス名は依然として 3 文字の英数字に制限されていました。この機能は SYSGEN の選択によって有効になり、DU および LD デバイス ハンドラにのみ適用されました。これら 2 つのケースでは、デバイス名の形式は「dnn:」となり、「d」は DU デバイスの場合は「D」、LD デバイスの場合は「L」、そして「nn」は 00 ~ 77 (8 進数) でした。
RT-11には、さまざまな操作を実行するためのユーティリティが付属していました。DIR 、DUP、PIP、FORMATユーティリティは、ディスクボリュームの管理に使用されました。TECO 、EDIT、およびビジュアルエディタのKED(DEC VT100用)とK52(DEC VT52用)は、ソースファイルとデータファイルの作成と編集に使用されました。MACRO 、LINK、LIBRは、実行可能ファイルの作成に使用されました。ODT 、VDT、およびSDデバイスは、プログラムのデバッグに使用されました。DEC版のRunoff [ 6 ]は、ドキュメントの作成に使用されました。最後に、VTCOMは、モデムを介して電話回線で別のコンピュータシステムに接続し、使用(またはファイルの転送)するために使用されました。
このシステムは、現代のパーソナル コンピューティングの多くのタスクを処理するのに十分な完成度を備えていました。他の PDP-11 オペレーティングシステムで使用される Saturn Software のワード プロセッシング パッケージやスプレッドシートなどの生産性ソフトウェアも RT-11 上で動作しました。[ 7 ] RT-11 用の大量の無料ユーザー提供ソフトウェアがDigital Equipment Computer Users Society (DECUS)から入手可能で、 Cの実装も含まれていました。アセンブリ言語プログラムの開発およびデバッグツールが提供されていましたが、C、Fortran、Pascal、[ 8 ]およびBASICのいくつかのバージョンを含む他の言語は、追加料金で「レイヤード 製品」として DEC から入手できました。これらの言語やその他のプログラミング言語のバージョンは、他のサードパーティ ソースからも入手可能でした。DECNET 、インターネット、および他のサードパーティ ソースによって開発されたプロトコルを使用して RT-11 マシンをネットワーク化することも可能です。
RT-11オペレーティングシステムは、2枚の8インチ250KBフロッピーディスクと56KBのメモリで構成されるマシンから起動して実用的な作業を実行でき、8台の端末をサポートできました。その他の起動オプションには、RK05 2.5MBリムーバブルハードディスクプラッタまたは磁気テープがありました。ディストリビューションは、プリインストールされたもの、またはパンチテープ、磁気テープ、カートリッジテープ、フロッピーディスクで提供されていました。最小限の完全なシステムで、1人のリアルタイムユーザーをサポートするものは、ユーザープログラムを含めて、1枚のフロッピーディスクと8K 16ビットワード(16KB)のRAMで実行できました。これは、スワッピングとオーバーレイのサポートによって実現されました。このような小さなメモリシステムでの動作を実現するために、キーボードコマンドユーザーインターフェイスは、ユーザープログラムの実行中にスワップアウトされ、プログラムが終了するとメモリにスワップインされました。このシステムは、リアルタイムクロック、印刷端末、VT11ベクターグラフィックユニット、16チャンネル100kHz A/Dコンバータ(2チャンネルD/A付き)、9600ボーシリアルポート、16ビット双方向ボードなどをサポートしていました。
RT-11では、6文字のファイル名と3文字の拡張子(6.3)をRADIX-50でエンコードした、シンプルで高速なファイルシステムが実装されました。RADIX-50では、これら9文字がわずか3つの16ビットワード(6バイト)にパックされます。その結果、ファイル名に使用できる文字は「A」~「Z」、「a」~「z」(大文字に強制)、「0」~「9」、「$」、「%」、「*」となりました。ファイル名には、デフォルトのDK:デバイスとは異なるデバイスを指定するためのデバイス名をプレフィックスとして付けることができました。デバイス名もRADIX-50でエンコードされていました。
すべてのファイルは連続しており、各ファイルはディスク上で連続したブロック(ディスクストレージの最小アドレス指定単位、512バイト)を占有していました。これは、ファイル全体を非常に高速に読み書きできることを意味していました。このファイルシステム構造の副作用として、時間の経過とともにボリューム上でファイルが作成および削除されると、未使用のディスクブロックが連続した状態を維持できなくなる可能性があり、これが大きなファイルを作成する際の制限要因となる可能性がありました。その対策は、定期的にディスクを「圧縮」(または「圧縮」)して未使用部分を統合することでした。[ 9 ] [ 10 ]
各ボリュームには、ボリュームの開始時に事前割り当てられたディレクトリが 1 つだけあります。ディレクトリはエントリの配列で構成され、エントリはファイルまたは未割り当て領域ごとに 1 つです。各ディレクトリのエントリは 8 (またはそれ以上) の 16 ビットワードですが、sysgen オプションによりアプリケーション固有の追加のストレージが許可されています。[ 11 ]
多くのRT-11プログラム(特殊な周辺機器やハードウェアへの直接アクセスを必要としないもの)は、RSTS/EタイムシェアリングシステムのRT=11 RTS(ランタイムシステム)を使用して直接実行したり、RSX-11とVMSのさまざまなリリースでRTEM(RTエミュレータ)の下で実行したりすることができました。
RT-11にDCLを実装したことで、他のDECオペレーティングシステムとの互換性が向上した。各オペレーティングシステムには固有のコマンドやオプションがあったものの、共通のコマンドやコマンドオプションも多数存在した。
DECは、リアルタイム機能を備えたマルチユーザー・マルチタスクオペレーティングシステムであるRSX-11Mと、マルチユーザー時分割システムであるRSTS/E (当初はRSTS-11という名称だった)も販売していたが、リアルタイム応答が求められるデータ収集システムでは、RT-11が依然として主流のオペレーティングシステムであった。Unixオペレーティングシステムも普及したが、RT-11のようなリアルタイム機能と極めて小さなサイズは備えていなかった。
RT-11は、 Q-BusベースとUnibusベースの両方のDEC PDP-11ファミリーの全機種で動作しました。さらに、同じくDEC製のプロフェッショナルシリーズおよびPDT-11「プログラムデータ端末」システムでも動作しました。PDP-11アーキテクチャは、他社の代替製品(例えば、MentecのM100とそのファミリー)や、他国でリバースエンジニアリングされたクローン製品(例えば、ソビエト連邦のDVK)にも採用されているため、RT-11はこれらのマシンでも動作します。
CalCompプロッターなどの周辺機器のドライバサポートを追加するには、通常ファイルのコピーが必要であり、SYSGENは不要でした。[ 12 ] [ 2 ]
インターネットプロトコル用のルーティングソフトウェアであるFuzzballは、 RT-11プログラムを実行することができた。[ 13 ]
HAMMONDsoftwareは、初期のマルチコンピュータシステムであるSTARelevenや、VAX/VMSオペレーティングシステムからアーキテクチャコンセプトの一部を取り入れたマルチプロセス/マルチユーザーRT-11実装であるSHAREplusなど、RT-11互換のオペレーティングシステムを多数配布した。動作にはRT-11デバイスドライバが必要だった。ネットワークオプションにより、他のPDP-11やVAX/VMSへの透過的なデバイスアクセスがサポートされた。RSX -11アプリケーションとの限定的な互換性も利用可能だった。SHAREplusはヨーロッパで最も強力なユーザー基盤を持っていた。
S&H Computing が開発したTSX-11 [ 14 ]は、RT-11 のマルチユーザー、マルチプロセス実装でした。唯一できなかったのはブート処理の処理だったので、TSX-Plus マシンでは、TSX-Plus をユーザー プログラムとして実行する前に、まず RT-11 を起動する必要がありました。TSX-Plus が実行されると、RT-11 からマシンの制御を完全に引き継ぎました。TSX-Plus は、他のユーザーからのユーザーに対する真のメモリ保護を提供し、ユーザー アカウントを提供し、ディスク ボリューム上のアカウントの分離を維持し、RT-11 EMT プログラム要求のスーパーセットを実装しました。
S&H がオリジナルの TSX を開発したのは、「1 人のユーザーしかサポートできないコンピュータに 25,000 ドルを費やすことに [創設者のハリー・サンダース] 不満を感じた」ためで、その結果、1976 年に最初の 4 ユーザー版 TSX が誕生しました。[ 15 ] 1976 年にリリースされた TSX の後継として、TSX-Plus (1980 年にリリース) が開発されました。 [ 15 ]このシステムは 1980 年代に人気を博しました。RT-11 プログラムは一般的に TSX-Plus 上で変更なしで動作し、実際、RT-11 ユーティリティのほとんどはそのまま TSX-Plus 上で使用されました。デバイス ドライバは通常、わずかな変更だけで済みました。
PDP-11のモデルとメモリ容量によっては、システムは最低12ユーザーをサポートできた[ 15 ](ワークロードに応じて、2Mb 11/73では14~18ユーザー)。[ 16 ] TSX-Plusの最終バージョンはTCP/IPをサポートしていた。
ユーザーは、マルチタスクのサポートレベル、メモリサイズ、命令とデータのアドレス空間の分離などが異なる複数のバリエーションから選択できた。
RT-11をベースにした、いくつかの特殊なPDP-11システムが販売された。
ソ連ではRT-11のクローンが複数製造された。
モニターのSQUEEZEコマンドを使用して音量を圧縮します
コマンドは、未使用のすべての領域を1つの領域に統合します...
/23と11/34ベースの最大20ユーザー向けの効率的な汎用タイムシェアリング...