RSTS/E 10.1、DCL CLI の実行 | |
| 開発者 | デジタル・イクイップメント・コーポレーション(後のメンテック) |
|---|---|
| 書かれた | MACRO-11 アセンブリ言語、BASIC-PLUS -2、DCL |
| 作業状態 | 開発は行われていませんが、まだ利用可能です |
| ソースモデル | クローズドソース[1] |
| 初回リリース | 1970年 |
| 最新リリース | RSTS V10.1 / 1992 [2] |
| 利用可能 | 英語 |
| 更新方法 | バイナリパッチ、完全なバイナリ |
| パッケージマネージャー | バックアップ |
| プラットフォーム | PDP-11 |
| カーネルタイプ | タイムシェアリング オペレーティングシステム |
| デフォルトの ユーザーインターフェース | コマンドラインインターフェース: DCL (デジタルコマンド言語) |
| ライセンス | 独自 |
| 先行 | TSS/8 |
RSTS ( / ˈ r ɪ s t ɪ s / ) は、Digital Equipment Corporation (DEC、現在はHewlett-Packardの傘下)が16 ビットミニコンピュータのPDP-11シリーズ用に開発したマルチユーザー タイムシェアリング オペレーティング システムです。RSTS の最初のバージョン (RSTS-11、バージョン 1) は、 PDP-8用のTSS-8タイムシェアリング オペレーティング システムを開発したDEC のソフトウェア エンジニアによって 1970 年に実装されました。RSTS の最後のバージョン (RSTS/E、バージョン 10.1) は、1992 年 9 月にリリースされました。RSTS-11 と RSTS/E は通常単に「RSTS」と呼ばれ、この記事では通常、短縮形を使用します。RSTS-11 は、ボストンのEvans Griffiths & Hartとの契約により開発された BASIC プログラミング言語の拡張バージョンである BASIC-PLUS をサポートしています。[3] [4] RSTS/Eバージョン5B以降、DECはRT-11およびRSX-11オペレーティングシステムの実行環境をエミュレートすることで、追加のプログラミング言語のサポートを追加しました。
頭字語と略語
- BTSS(Basic Time Sharing System – 市販されなかった) – RSTSの最初の名前。[5]
- CCL (簡潔コマンド言語) –コマンド ライン インタープリターに保存されているプログラムを実行するコマンドに相当します。
- CIL (コア イメージ ライブラリ) – RSTS バージョン 6A など、1 つ以上のスタンドアロン (起動可能) プログラムとオペレーティング システムを保持するために使用されるコンテナー ファイル形式。
- CILUS (Core Image Library Update and Save) – CILファイルを操作するためのDOS-11プログラム。 [6]
- CLI (コマンド ライン インタープリター) –コマンド ライン インターフェイスを参照してください。
- CUSP(一般的に使用されるシステムプログラム)– Microsoft Windowsの タスクマネージャーやレジストリエディターのようなシステム管理アプリケーション。[7] RSTS-11では、CUSPはユーザープログラムと同様にBASIC-Plusで書かれていました。
- DCL (デジタル コマンド言語) –デジタル コマンド言語を参照してください。
- DTR (DATATRIEVE) – プログラミング言語
- FIP (ファイル情報処理) – ファイル要求を発行するための常駐領域
- FIRQB(ファイル情報要求キューブロック) – ファイル要求に関する情報を含むデータ構造。[8]
- KBM (キーボード モニター) – コマンド ライン インタープリターに類似しています。
- LAT (Local Area Transport) – Digital のTCP/IPの前身
- MFD(マスターファイルディレクトリ) –ファイルシステムのルートディレクトリ。[9]
- PBS (印刷バッチサービス)
- PIP(周辺機器交換プログラム)
- PPN (プロジェクト プログラマ番号) – Unix のGIDおよびUIDに類似しています。
- RDC (リモート診断コンソール) - ライトとトグル スイッチの代わりにコンソール端末またはモデムへのシリアル接続を使用して CPU を制御する PDP-11 の交換用フロント パネル。
- RSTS-11 (リソース共有タイムシェアリングシステム) – RSTSの最初の商用製品名
- RSTS/E (リソース共有タイムシェアリング システム拡張) – RSTS の現在の実装。
- RTS (ランタイム システム) – サプライヤによって提供される読み取り専用コード セグメント。ユーザー プログラムがオペレーティング システムとのインターフェイスに使用する 32K、16 ビットワードアドレス空間の上位にマップされます。RTS のコピーは 1 つだけ RAM にロードされますが、それを必要とするすべてのユーザー プログラムのアドレス空間にマップされます。本質的には、共有の再入可能コードであり、それを必要とするすべてのプログラム間でコードを共有することで、RAM 要件を削減します。
- RTSS (リソースタイムシェアリングシステム – 市販されていない) – RSTS の別名
- SATT (ストレージ割り当て真理値表) は、ディスク全体のブロックまたはクラスターがディスクに割り当てられているかどうかを示す、各ディスク上の一連の 512 KB ブロックです。ビット単位では、1 はクラスターが使用中であることを示し、0 は使用されていないことを示します。
- SIL (イメージ ライブラリの保存) - RSTS システム生成手順が DOS-11 を使用するものから RSTS/E でネイティブに実行されるものに切り替えられた後の OS コンテナ ファイル形式。置き換えられた CIL にちなんでこのように呼ばれます。
- SILUS (Save Image Library Update and Save) – SIL ファイルを作成するプログラム。置き換えられた (無関係の) DOS-11 CILUS プログラムに倣ってこの名前が付けられました。
- UFD(ユーザーファイルディレクトリ) – ユーザーのホームディレクトリ。ファイルシステムのルートディレクトリ。[9]
- XRB(転送要求ブロック) – 情報を伝達するためにFIRQBを使用しない他のタイプのシステム要求に関する情報を含むデータ構造
発達
1970年代
RSTS のカーネルはアセンブリ言語MACRO-11でプログラムされ、CILUSプログラムを使用してコンパイルされ、ディスクにインストールされ、DOS-11オペレーティングシステム上で実行されました。RSTS は、DEC が「BASIC-PLUS 」と呼んだBASICプログラミング言語の拡張バージョンで起動しました。オペレーティングシステムのすべてのシステムソフトウェアCUSPS は、リソースアカウンティング、ログイン、ログアウト、およびシステム管理のプログラムを含め、BASIC-PLUS で記述されていました。1970 年から 1973 年まで、RSTS はわずか56K バイトの磁気コアメモリ(メモリマップされた I/Oスペースを含めると 64 キロバイト) で実行されました。これにより、システムは最大 16 の端末と最大 17 のジョブを持つことができました。最大プログラムサイズは 16K バイトでした。[10] 1973 年末までに、DEC はRSTS を実行するライセンスシステムが 150 台あると推定しました。[11]
1973 年、メモリ管理サポートは、新しい DEC PDP-11/40およびPDP-11/45ミニコンピュータ用の RSTS (現在の RSTS/E) に組み込まれました ( PDP-11/20 はRSTS-11 でのみサポートされていました)。新しい PDP-11 コンピュータにメモリ管理が導入されたことで、これらのマシンは 4 倍のメモリ量 (18 ビットアドレス指定、256K バイト) をアドレス指定できるようになっただけでなく、開発者がユーザー モードプロセスをカーネルのコアから 分離する道も開かれました。
1975 年、メモリ管理サポートが、新しい 22 ビット アドレス指定可能なPDP-11/70用に再度更新されました。RSTS システムは、最大 63 ジョブで2メガバイトのメモリを使用できるようになりました。RTSとCCLの概念が導入されましたが、これらは " SYSGEN "中にコンパイルする必要がありました。マルチターミナル サービスが導入され、1 つのジョブで複数のターミナル (合計 128 個) を制御できるようになりました。大きなメッセージの送受信とプロセス間通信は非常に洗練され、効率的になりました。8 月までに、ライセンス システムは 1,200 台になりました。[11]
1977 年、RSTS のインストール プロセスは DOS-11 に依存しなくなりました。RSTS カーネルはRT-11 RTSでコンパイルされ、RT-11 SILUSでカーネル ファイルとしてフォーマットされ、コンピュータがタイム シェアリング中にシステムまたは他のディスクにコピーできるようになりました。BASIC-PLUS RTS (および RT-11、RSX-11、TECO、サード パーティのRTS ) はすべて、RSTS カーネルとは独立したユーザー モード プロセスとして実行されました。システム管理者は、ブートストラップ フェーズで、どのRTS をシステムのデフォルトのキーボード モニター ( KBM )として実行するかを決定できるようになりました。この時点で、ライセンスされたシステムは 3,100 台ほどありました。[11]
1978年、22ビットアドレッシングをサポートできるすべてのマシンに、最終的なメモリ管理アップデートが組み込まれました。RSTSは、PDP-11で利用可能な最大メモリ量(4メガバイト)を使用できるようになりました。また、SUPERVISORYモードのサポートも含まれており、RSTSはこの機能を備えた最初のDECオペレーティングシステムとなりました。DECnetもサポートされ、コロラド州コロラドスプリングスのRDC (DECサブスクリプションサービス)のフィールドサービス技術者によるリモート診断もサポートされました。 1970年代の終わりまでに、ライセンスされたシステムは5,000を超えました。[11]
1980年代
1981 年、Unibusマシン ( PDP-11/44、PDP-11/45、PDP-11/55、および PDP-11/70) のユーザー向けに、命令とデータの分離スペースがサポートされ、個々のプログラムのメモリ制約が拡張されました。プログラムをコンパイルして命令とデータの分離スペースを使用すると、すぐに命令用に最大 64 KB、バッファリング データ用に最大 64 KB のプログラムが提供されます。DCL RTSが組み込まれ、DECnet III の新しいリビジョンもサポートされました。
1983年までに、推定15,000台のDECマシンでRSTS/Eが稼働し、[3] V8.0-06には、DECが販売した最小の18ビットPDP-11(MicroPDP-11)のサポートが含まれていました。このディストリビューションには、MicroPDP-11へのインストールを容易にするために、事前に生成されたカーネルとCUSPSが含まれていました。DECは、MicroPDP-11用の事前に生成されたバージョンをMicroRSTSとして割引価格で販売しましたが、ユーザーが独自のカーネルを生成する必要がある場合は、フルバージョンを購入する必要がありました。ファイルシステムはアップグレードされ、RSTSディレクトリ構造1(RDS1)という名称が与えられました。[12] RSTSファイルシステムの以前のバージョンはすべて、RDS0という名称が与えられています。[13]新しいファイルシステムは、1700を超えるユーザーアカウントをサポートするように設計されました。[14]「現在、ライセンスを取得したユーザーは1万人を優に超えており、ライセンスを取得していないユーザーも少なくとも同数いると考えられています。」[11]
1985 年から 1989 年にかけて、RSTSはバージョン 9 の改訂で成熟した製品になりました。DCLが主要な RTS としてインストールされ、ファイル システムが再度アップグレードされ (現在は RDS1.2)、新しいユーザー アカウント機能をサポートしました。パスワードは、DEC Radix-50形式で保存される 6 文字に制限されるのではなく、修正された DESアルゴリズムを使用して暗号化されました。バージョン 9 より前は、プロジェクト (グループ) 0 (指定は [0,1]) に非ユーザー システム アカウントがあり、プロジェクト番号 1 のすべてのアカウントは特権付きでした ( Unixシステムのルート アカウントと似ています)。バージョン 9 のリリースにより、プロジェクト 0 に追加のアカウントを作成できるようになり、任意のアカウントに複数の特権を個別に設定できるようになりました。LATプロトコルのサポートと、最新バージョンの DECnet IV を実行する機能が追加されました。これらのネットワーク拡張機能により、DECserver を介して端末に接続しているすべてのユーザーは、 VMS を実行するVAXと同じように簡単に RSTS マシンと通信できるようになりました。 DEC オペレーティング システム間のDCLコマンド構造も、使い慣れた外観と操作性に貢献しました。
これは単なる疑似コマンドファイルプロセッサではありません。VMS の機能に基づいています。DCL コマンドファイルプロセッサは、DCL とモニターの大幅な変更により、RSTS で完全にサポートされ、統合されています。DCL はジョブの一部としてコマンドファイルを実行するため、疑似キーボードやキーボードへのコマンドの強制は必要ありません (ATPK の場合と同様)。[15]
1990年代
1994年、DECはPDP-11ソフトウェア事業のほとんどをMentecに売却した。[16]その後もDECはMentecのスタッフの支援を受けて、短期間ながら自社のPDP-11顧客へのサポートを継続した。
1997年、DigitalとMentecは、RSTS 9.6以前を非商用、趣味の目的で使用することを希望するすべての人に無償ライセンスを付与しました。このライセンスはSIMH PDP-11エミュレータでのみ有効です。ライセンスは他のDigitalオペレーティングシステムにも適用されます。ライセンスのコピーは、 SIMHエミュレータの公式Webサイトからダウンロードできる認定ソフトウェアキットに含まれています。[17]
ドキュメント
RSTS ディストリビューションに付属する標準のドキュメント マニュアルは、少なくとも 11 冊の大きな 3 穴バインダー (総称して「オレンジ ウォール」と呼ばれます)、RSTS/E クイック リファレンス ガイドを含む 1 冊の小さな 3 穴バインダー、およびIntroduction to BASIC AA-0155B-TKのペーパーバック コピーで構成されています。11 冊の 3 穴バインダーにはそれぞれ次のものが含まれています。

第 1 巻: 一般情報とインストール
- ドキュメントディレクトリ
- リリースノート
- メンテナンスノート
- システムのインストールとアップデートガイド
第2巻: システム管理
- システム管理者ガイド
第3巻: システムの使用
- システムユーザーガイド
- コマンド プロシージャの記述ガイド
第4巻: ユーティリティ
- ユーティリティリファレンスマニュアル
- EDT エディターの紹介
- SORT/MERGE ユーザーズガイド
- RUNOFF ユーザーガイド
第4A巻: ユーティリティ
- EDT エディター マニュアル
第4B巻: ユーティリティ
- タスクビルダーリファレンスマニュアル
- プログラマーズユーティリティマニュアル
- RT11 ユーティリティ マニュアル
- TECO ユーザーズガイド
第5巻: BASIC-PLUS
- BASIC-PLUS 言語マニュアル
第6巻: システムプログラミング
- プログラミングマニュアル
第7巻: マクロプログラミング
- システム指令マニュアル
- ODT リファレンスマニュアル
第7A巻: マクロプログラミング
- MACRO-11 言語マニュアル
- RMS-11 MACRO プログラマーズ ガイド
第8巻: RMS [記録管理サービス]
- RMS-11: 概要
- RMS11 ユーザーズガイド
- RMS-11 ユーティリティ
手術
コミュニケーション
RSTS は、シリアル通信接続を使用してオペレータと対話します。接続は、20 mA電流ループインターフェイスを備えたローカルコンピュータ ターミナル、RS-232インターフェイス (ローカルシリアル ポートまたはモデム経由のリモート接続)、またはDECnet または LAT を使用したイーサネット接続のいずれかです。最大 128 のターミナル (マルチ ターミナル サービスを使用) を RSTS システムに接続して、最大 63 のジョブを実行できます (使用するプロセッサ、メモリとディスク容量、およびシステム負荷によって異なります)。ほとんどの RSTS システムでは、ターミナルの数はこれよりはるかに少なかったです。ユーザーは、バッチモードで実行するジョブを送信することもできます。また、"ATPK" と呼ばれるバッチ プログラムもあり、これを使用すると、ユーザーは、 MS-DOSのバッチ コマンドに似た半対話モードで、仮想ターミナル (疑似ターミナル) で一連のコマンドを実行できます。
ログイン [プロジェクト、プログラマー]
ユーザーは、ログアウトした端末でLOGINコマンド (または HELLO)を入力し、リターン キーを押すことでシステムに接続します。ログアウトした端末で任意のコマンドを入力すると、LOGIN プログラムが起動し、コマンドが解釈されます。まだログインしていない (「ログアウト」) ユーザーが使用できるコマンドの 1 つである場合は、そのコマンドに関連付けられたプログラムが CHAIN されます。それ以外の場合は、「HELLO と入力してください」というメッセージが端末に表示されます。バージョン 9 より前のバージョンでは、ユーザーは 1 行ログインを開始することもできますが、この場合、ユーザーのパスワードが画面に残り、室内の他のユーザーが見ることができます (例を次に示します)。

さよなら こんにちは1,1;秘密 準備ができて
または
I 1,1;秘密 準備ができて
または
ログイン 1,1;シークレット 準備ができて
端末の状態は、コマンド インタープリタによって出力されるコマンド応答から判断できます。BASIC-PLUS KBM (キーボード モニタ) と通信しているログイン ユーザーにプロンプト「Ready」が表示され、ログアウトしたユーザーにはプロンプト「Bye」が表示されます。
ユーザーは、PPN番号とパスワードを入力してログインします。ユーザー番号は、プロジェクト番号 ( Unix のグループ番号に相当)、カンマ、プログラマ番号で構成されます。両方の番号は、特別な例外を除いて 0 から 254 の範囲です。アカウントを指定するときは、プロジェクト番号とプログラマ番号を括弧で囲みます。一般的なユーザー番号は、[10,5] (プロジェクト 10、プログラマ 5)、[2,146]、[254,31]、[200,220] などです。ユーザーがログアウト中にシステム プログラムを実行している場合 (システム マネージャーによって有効にされているため)、PPN番号は [0,0] になり、SYSTAT CUSPに**,** と表示されます。したがって、これは有効なアカウント番号ではありません。ユーザーがプロジェクト番号とプログラマー番号の間にカンマの代わりにスラッシュ (/) を指定した場合、[1,2]NOTICE.TXT (Unix のmotdに相当) に保存されているシステム全体のメッセージはログイン時に表示されません。
システムとユーザーアカウント
どのプロジェクトでも、プログラマー番号 0 は通常、グループ アカウントとして予約されており、特別な記号 # で参照できます。ユーザー番号が [20,103] の場合、「#」で始まるファイル名への参照は、ユーザー番号 [20,0] のアカウントに保存されているファイルを参照します。この機能は教育環境で役立ちます。プログラマー番号 0 はクラスのインストラクターに発行され、個々の学生には同じプロジェクト番号のアカウントが与えられ、インストラクターは自分のアカウントにそのプロジェクト番号 (そのクラスの学生のみ、他のクラスの学生には共有されません) でのみ共有としてマークされたファイルを保存できます。
プロジェクト番号には 2 つの特別なクラスがあります。プロジェクト番号 0 は一般にシステム ソフトウェア用に予約されており、バージョン 9 より前はプロジェクト 0 アカウントは 1 つしかありません ([0,1] という名前)。プロジェクト番号 1 のプログラマーは特権アカウントであり、Unix システムの単一のアカウント「root」に相当します。ただし、アカウント番号 [1,0] から [1,254] はすべて特権アカウントです。バージョン 9 では、システム マネージャーによって任意のアカウントに特定の特権を付与できます。
アカウント [0,1] は、オペレーティング システム ファイル自体、すべてのランタイムライブラリシステム、およびシステムの起動に関連する特定のシステム ファイルを保存するために使用されます (著者のコメントは右側に太字で表示されます)。
方向 [0,1] 名前 .Ext サイズ Prot 日付 SY:[0,1] BADB .SYS 0P < 63> 06-Jun-98 不良ブロックのリスト SATT .SYS 3CP < 63> 06-Jun-98 割り当てられたディスク ストレージのビットマップ INIT .SYS 419P < 40> 06-Jun-98 オペレーティング システム ローダー プログラム ERR .ERR 16CP < 40> 06-Jun-98 システム エラー メッセージ RSTS .SIL 307CP < 60> 06-Jun-98 オペレーティング システム自体 BASIC .RTS 73CP < 60> 06-Jun-98 BASIC-PLUS ランタイム システム RT11 .RTS 20C < 60> 06-Jun-98 RT-11 ランタイム システム SWAP .SYS 1024CP < 63> 06-Jun-98 システムスワップ ファイル CRASH .SYS 35CP < 63> 1998 年 6 月 6 日 システム クラッシュ ダンプ RSX .RTS 16C < 60> 1979 年 9 月 23 日 RSX-11 ランタイム システム TECO .RTS 39C < 60> 1979 年 9 月 24 日 TECO テキスト エディタ SY:[0,1]の11ファイルにある合計1952ブロック (編集者注: このディレクトリ リストはバージョン 9 より前のものです。)
DIRコマンドは、DIRECT プログラムの RUN コマンドに相当するインストール済みの CCL です。[0,1] は、オペレーティング システムのストレージ アカウントのアカウント番号 (およびディレクトリ名) です。これは、「プロジェクト番号 0、プログラマ番号 1」と呼ばれます。
各ファイルの後に表示される数字は、ディスク ブロックで表したサイズを表します。1 ブロックは 512バイトまたは 1/2 キロバイト (K) です。"C" はファイルが連続していること ( Microsoft Windowsシステムのドライブがデフラグされた後のファイルと同様に、断片化されずに 1 つのファイルとして保存されている) を示します。一方、"P" は特別に保護されていることを示します (P ビットが別のコマンドでクリアされない限り、特権ユーザーであっても削除できません)。括弧内の数字 ("< 40>" など) はファイルの保護を表し、常に 10 進数で表示されます。保護は、ファイルが他のユーザー、同じプログラマ番号を持つ他のユーザーによって表示できるかどうか、ファイルが読み取り専用か、または他のユーザーによって変更できるかどうか、および追加の権限を与えられた一般ユーザーがファイルを実行できるかどうかを示します。これらの保護コードは、UnixやBSD、Linuxなどの同様のオペレーティング システムのr、w、x 保護と非常によく似ています。コード 60 はプライベート ファイルに相当し、コード 63 はプライベートで削除できないファイル、コード 40 はパブリック ファイルです。
ライブラリ ファイルはアカウント [1,1] に保存され、通常は論理名 LB: で参照されます。アカウント [1,2] はシステム起動アカウント (Unix システムが root で起動するのとよく似ています) で、CUSP名の前にドル記号 ($) を付けることで参照できるシステムCUSPSが含まれています。アカウント [1,3] には "!"、アカウント [1,4] には "%"、アカウント [1,5] には "&" が使用されます。アカウント [1,1] には、そのアカウントでログインしたユーザーがPOKEシステム コールを実行してシステム内の任意のメモリに値を入れることが許可される唯一のアカウントであるという特別な権限もあります。したがって、アカウント番号 [1,1] は Unix ベースのシステムで "root" に最も近いものです。
ランタイム環境
RSTS の特徴の 1 つは、プログラムの実行手段と、プログラムを実行するための環境です。さまざまな環境により、BASIC-PLUS、拡張されハードコンパイルされた BASIC-Plus-2、および COBOL (最終的には COBOL-85 にアップグレード) やFORTRAN IV (最終的には FORTRAN-77 にアップグレード) などのより伝統的なプログラミング言語でのプログラミングが可能になりました。 DIBOLやMUMPSなどの他の言語もサポートされていました。これらの環境は互いに独立しており、ある環境からプログラムを起動すると、別のプログラムの実行中にシステムが別の環境に切り替わり、その後、ユーザーが開始した元の環境に戻ります。これらの環境はランタイム システム ( RTS)と呼ばれていました。これらの RTS のほとんどが備えていたコマンド ライン インターフェイスはKBMと呼ばれていました。バージョン 9 より前は、システム管理者はシステムがどの RTS で起動するかを定義する必要があり、コンパイルされたプログラムを実行する RTS でなければなりませんでした。
システム マネージャーは、特別なCCL (簡潔コマンド言語) コマンドをインストールすることもできます。これは、すべての KBM コマンド ( DCLを除く) よりも優先されます。CCL は、Windows システム上のプログラムへのショートカット、またはUnix ベースのシステム上のシンボリック リンクに似ています。CCL は、起動時にメモリ常駐コマンドとしてインストールされるか、システム マネージャーによってシステムの実行中に動的にインストールされます (つまり、ディスク ファイルのように永続的ではありません)。
ログインすると、ユーザーはこれらの環境のいずれかに「切り替え」、BASIC-PLUS プログラミング言語で言語ステートメントを入力し、特定のプログラムに RUN コマンドを発行したり、CCLと呼ばれる特別なコマンドを発行してコマンド オプションを使用してプログラムを実行したりできます。
ほとんどの RSTS システム マネージャーは、実行中のプログラム、プログラムが使用しているRTS 、プログラムが使用しているメモリの量、プログラムが拡張できる量、およびRTSが使用しているメモリの量をユーザーに知らせることができる「Control-T」の 1 行ステータス オプションを含むカーネルを生成しました。
ベーシックプラス
BASIC-PLUSで書かれたプログラムはBASIC RTSで実行され、最大 32K バイトのメモリ (合計 64K バイト中) を使用できました。言語は解釈され、各キーワードは内部で一意のバイト コードに変換され、変数とデータはインデックス付けされてメモリ領域内に別々に格納されました。内部バイトコード形式は PCODE と呼ばれていました。対話型 SAVE コマンドが発行されると、BASIC Plus RTS は作業メモリ領域を ".BAC" 拡張子のディスク ファイルに保存しました。この形式は文書化されていませんでしたが、英国サウサンプトン大学の電子工学部の 2 人の学部生(Nick de Smith と David Garrod) が、BAC ファイルを元の BASIC-Plus ソースにリバース エンジニアリングできるデコンパイラを開発しました(2 人はその後 DEC で働きました)。残りのメモリは BASIC RTS自体によって使用されました。 BASIC-Plus-2、FORTRAN-IV、またはマクロアセンブラなどの真のバイナリ実行ファイルを許可する言語でプログラムを作成した場合、使用可能なメモリの量は 56K ( RTSに割り当てられる 8K ) になります。標準の BASIC-PLUS プロンプトは「Ready」応答であり、Control-T を押すとステータスが表示されます(例):
新しい 新しいファイル名--HWORLD 準備ができて10 Print "Hello World"20 Input "Press Control-T for 1 line status: ";a$30 EndrunHWORLD 2008年1月1日午後10時17分 こんにちは世界 1 行のステータスを表示するには、Control-T を押します: ? 1 KB0 ハードウェア+基本 KB(0R) 2(16)K+14K 0.2(+0.0) +0 準備ができて 保存 準備ができて コンパイル 準備ができてDIR HWORLD.*/na/ex/si/prSY:[1,2] HWORLD.BAS 1 < 60> HWORLD.BAC 7C <124> SY:[1,2]の2つのファイルの合計8つのブロック 準備ができて
DCL (デジタルコマンド言語)
バージョン 9 以降、DCL はバイナリ プログラムを実行する機能がないにもかかわらず、主要な起動RTSになりました。これは、消えつつある RSX RTS (下記参照) の登場によって可能になりました。DCLは、互換性のために、DEC のオペレーティング システム (RSX-11、RT-11、VMS、およびそれ以降のOpenVMS ) の最新バージョンすべてに組み込まれました。標準のDCLプロンプトはドル記号 "$" です (例):
$ write 0 "Hello World, it is " +F $TIME () Hello World, it is 01-Jan-08 10:20 PM $ inquire p1 "1 行のステータスを表示するには、Control-T を押してください:" 1 行のステータスを表示するには、Control-T を押してください: 1 KB0 DCL+DCL KB(0R) 4(8)K+24K 0.1(+0.1) -8 $ set verify/debug/watch
$ show memory
(メモリの表示) (SYSTAT/C)
メモリ割り当てテーブル:
開始 終了 長さ 永続的 一時的
0K - 85K ( 86K) MONITOR
86K - 1737K (1652K) (ユーザー)
1738K - 1747K ( 10K) (ユーザー) DAPRES LIB
1748K - 1751K ( 4K) (ユーザー) RMSRES LIB
1752K - 2043K ( 292K) ** XBUF **
2044K - *** END ***
$
RSX (リアルタイム システム エグゼクティブ)
COBOL、マクロ アセンブラ、または BASIC-Plus-2 のそれ以降のリリースなど、RSX RTS用に作成されたプログラムは、バイナリ プログラムで使用可能な最大量のメモリを使用できます ( RTSが上位 8K を自身で使用する必要があるため、56K)。RSTS バージョン 7 以降では、RSX RTS をカーネルに含めることができるため、ユーザー アドレス空間から完全に「消える」ため、ユーザー プログラムに 64K バイトのメモリを使用できます。
プログラムは、ライブラリの使用(許可されている場合)、複雑なオーバーレイ戦略、または他のプログラムの呼び出し(「チェーン」)と「Core Common」と呼ばれる共有メモリ領域内のコマンドとデータの受け渡しなどの方法によって、使用可能なメモリ量の制限を回避しました。
RSX がデフォルトのKBMの場合、標準の RSX プロンプト (ログイン時とログアウト時の両方) は ">" (または MCR "Monitor Console Routine") 記号です (例):
> run
HELLO と入力してください
> HELLO 1,1;SECRET
> run
?What?
> help
有効なキーボード コマンドは次のとおりです。
割り当て 取り外し ヘルプ 実行 保存解除
BYE 終了 マウント シャットダウン 割り当て
解除 HELLO 再割り当て スイッチ
> CSPCOM を実行
CSP> HWORLD=HWORLD
CSP> ^Z
> TKB を実行
TKB> HWORLD=HWORLD,LB:CSPCOM.OLB/LB
TKB> //
> HWORLD.TSK を実行
Hello World
1 行のステータスを表示するには、Control-T を押します: ?
1 KB0 HWORLD+...RSX KB(0R) 7(32)K+0K 0.8(+0.2) +0
> DIR HWORLD.*/na/ex/si/pr
SY:[1,2]
HWORLD.BAS 1 < 60>
HWORLD.BAC 7C <124>
HWORLD.OBJ 2 < 60>
HWORLD.TSK 25C <124>
SY:[1,2]の4つのファイルの合計35ブロック
>
RT-11
RT-11 RTS は、RT-11 ディストリビューションのシングル ジョブ バージョンをエミュレートします。RSX エミュレーションと同様に、RT-11 はメモリの上位 8K を占有し、下位 56K をCUSPS、FORTRAN-IV またはマクロ アセンブラで記述されたプログラム用に残します。RT-11 がデフォルトのKBMである場合、標準の RT-11 プロンプト (ログイン時とログアウト時の両方) は "." 記号です (例):
.バージョン
HELLOと入力してください
.こんにちは 1,1 ;秘密
.バージョン
RT-11SJ V3-03; RSTS/E V8.0
. R PIP
*HWORLD.MAC=KB:
.MCALL .TTYIN、.PRINT、.EXIT
HWORLD: .ASCII /Hello World/<15><12>
.ASCIZ / 1行のステータスを表示するには、Control-T を押します:/
。平
開始: .PRINT #HWORLD
.TTYIN
。出口
.END START
^Z
*^Z
. R マクロ
HWORLD=HWORLD
*^Z
. R リンク
*HWORLD=HWORLD
*^Z
. R HWORLD.SAV
こんにちは世界
1 行のステータスを表示するには、Control-T を押します。
1 KB0 HWORLD+RT11 KB(0R) 2(28)K+4K 0.6(+0.2) +0
. .DIR HWORLD.*/na/ex/si/pr
SY:[1,2]
HWORLD.BAS 1 < 60>
HWORLD.BAC 7C <124>
HWORLD.TSK 25C <124>
HWORLD.MAC 1 < 60>
HWORLD.OBJ 1 < 60>
HWORLD.SAV 2C <124>
SY:[1,2]の6つのファイルにある合計37ブロック
。
TECO (テキスト エディターおよびコレクター)
TECOエディタ自体は、編集バッファに使用できるメモリ量を最大化するために RTS として実装されました。また、汎用ランタイム システム (RSX および RT11) がリリースされる前に、RSTS V5B で初めて実装されたためでもあります。TECO は、RSTS とともに配布された RTS の中で、組み込み KBM を含まない唯一の RTS でした。ユーザーは、TECO プログラム (TECO.TEC) を実行して TECO を起動します (他のプログラムと同様)。TECO とアフィン QEDIT は、最初の UNIX ベースのテキスト エディタである ED の直接の祖先です。ほとんどの RSTS システムでは、CCL を使用してファイルを作成 (MAKE ファイル仕様)、ファイルを編集 (TECO ファイル仕様)、または TECO プログラムを実行 (MUNG ファイル仕様、データ) していました。次のプログラムは、TECO を使用して円周率(現在は 20 桁に設定)を計算する例です。 [18]
準備ができて
TECOを実行する
*GZ0J\UNQN"E 20UN '
BUH BUV HK
QN< J BUQ QN*10/3UI
QI< \ +2*10+(QQ*QI)UA
BLK QI*2-1UJ QA/QJUQ
QA-(QQ*QJ)-2\ 10@I// -1%I >
QQ/10UT QH+QT+48UW QW-58"E 48UW %V ' QV"N QV^T '
QWUV QQ-(QT*10)UH >
うわーん @^A/
/香港証券取引所$$
31415926535897932384
準備ができて
RSTS イースターエッグ
システム起動 (INIT.SYS)
ユーザーがシステム起動時に起動ユーティリティ INIT.SYS の「Option:」プロンプトに認識されないコマンドを入力すると、「ヘルプを表示するには「HELP」と入力してください」というメッセージが表示されました。その後、ユーザーがプロンプトに「HELP」(引用符を含む) と入力すると、「とにかく、面白いですね...」という応答が返され、実際のヘルプ メッセージが表示されます。
PDP-11 コンソールライト
システム マネージャは、コンソール ライトの周りで 2 匹のヘビが追いかけ合っているような錯覚を与える回転表示パターンをカーネルにコンパイルできます。通常のカーネルでは、下部のデータ ライト内で 1 匹のヘビが右から左に動いているように見えます。システム マネージャが「ライト」オブジェクト モジュールもコンパイルすると、上部のアドレス ライト内でもう 1 匹のヘビが左から右に動いているのが見えます。これは、バージョン 9.0 より前のバージョンでは監視モードを使用して実現されていました。RSX にも、2 匹のヘビがチキン ゲームをプレイしていて、コンソールの中央でぶつかり合っているように見える類似の表示パターンがありました。
テコイースターエッグ
「make」コマンドを使用すると、ユーザーはテキスト ファイルを作成し、自動的に TECO テキスト エディターに入ることができます。ユーザーが「make love」と入力すると、システムは「love」というファイルを作成し、「Not War?」と入力し返します。
開いているファイルリスト
後に DEC で働くことになった Kevin Herbert 氏は、90 年代に、ユーザーが入力して^F、ユーザー プロセスが開いているファイルのリスト (使用中のブロックとファイル サイズを含む) を表示できるようにする、文書化されていない機能を 1990 年代に追加しました。
スターデート
バージョン 9.0 以降、文書化されていない機能により、システム マネージャーがシステム日付の表示を変更できるようになりました。RSTS は、テレビ シリーズStar Trekでよく知られている星の日付を表す一連の数字としてシステム日付を表示する最初のオペレーティング システムになりました。
他社のアドオン
システムインダストリーズは、 RSTSの唯一のソースライセンスを購入し、SIMACS (SImultaneous Machine ACceSs) は、特殊なディスク コントローラがディスク アクセス用のセマフォ フラグを設定できるようにし、複数の PDP-11 RSTS システムでディスクを共有する RSTS システム上の同じファイルへの複数の書き込みを可能にしました。この機能は、多くの DEC コンピュータに接続された System Industries コントローラに実装され、System Industries に勤務していた Albert Chu 博士によって設計されました。
主な革新はセマフォの使用であった。セマフォは、協調共有によってどのプロセッサが排他的書き込みアクセス権を持っているかを示すフラグである。[19]
これには、RSTS オペレーティング システムによるディスク アクセス方法に多くの変更が必要でした。I/O アクセスを処理する FIPS (File Information Processing System) システムは、RSTS ではシングル スレッドでした。別のマシンがブロックにアクティブ アクセスしている間にディスク アクセスを停止できるようにするには、FIPS が要求をタイムアウトし、次の要求に進み、停止した要求にラウンド ロビン方式で「戻る」ことが必要でした。これを可能にするコードは、カリフォルニア州ミルピタスの System Industries で働いていた Philip Hunt によって書かれました。彼は最終的に、1980 年代後半から 1990 年代前半にかけてニューイングランド地域の Digital Equipment で働きました。
SIMACS [20]はPDP-11製品ラインに限定されず、VAXenでも使用できました。[19]
RSTSエミュレーション
ロス/V
1981年、エヴァンス・グリフィス・アンド・ハート社はROSS/V製品を発売した。ROSS /VはRSTSのユーザーモードプロセス(CUSPS、RTS、ユーザープログラム)を、VAX-11マシン上のVMSで変更せずに実行できるようにした。このエミュレーションのコードは、PDP-11で実行されるRSTSカーネルによって通常処理されるすべてのカーネルプロセスを処理した。RSTSのすべてのバージョンで採用されているオリジナルのBASIC-PLUS言語は、エヴァンス・グリフィス・アンド・ハート社によって10,500ドルの固定価格で下請けされた。[21]
その他の PDP-11 エミュレータ
RSTS とそのアプリケーションは、 SIMHやErsatz-11などのさまざまな PDP-11 エミュレータで実行できます。詳細については、PDP-11を参照してください。
RSTSマスコット
スパイクとアルバート
バージョン
RSTSは元々 BTSS (Basic Time Sharing System)と呼ばれていました。出荷開始前に、BTSSという製品がすでにHoneywell社から販売されていたため、名前がBTSSからRTSSに変更されました。単純な入力ミスにより、名前がRTSSからRSTSに変更されました。[21]
PDP-11/40 および PDP-11/45 に新しいメモリ管理サポートとメモリ増設機能が追加されたことにより、名前がさらに変更され、RSTS-11 は RSTS/E になりました。
ソ連のクローン
- DOS-KP ("ДОС-КП")
アプリケーション
コンピュータ局はRSTS/Eベースのデータ管理のためにUser-11を導入することもあった。[23]
参照
- 非同期システムトラップ
- ベーシックプラス2
- 簡潔なコマンド言語
- データリーブ
- DECネット
- フロントパネル
- ケビン・ミトニック
- 地域交通
- オクタルデバッグテクニック
- キオ
- 記録管理サービス
- ランタイムシステム
- タイムシェアリング
- タイムシェアリングシステムの進化
参考文献
- ^ "/Bits/DEC/Pdp11/RSTS のインデックス".
- ^ 「Mentec - RSTS/E バージョン 10.1 内部およびデータ構造マニュアル」 。2017年11 月 7 日閲覧。
- ^ ab Fleig, Clare P. (1983年3月). 「Evans, Griffiths & Hart」.ハードコピー. pp. 51– 54.
- ^ 「EGHの会社沿革」。
- ^ 「RSTS 80周年」.
- ^ RSTS-11 システムマネージャガイド。マサチューセッツ州メイナード:Digital Equipment Corporation。1973 年 1 月。
- ^ ftp://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp11/rsts/V07.2/AA-5246E-TC_RSTS_E_V7.2_Release_Notes_Jun82.pdf
- ^ ftp://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp11/rsts/V09/7_MACRO_Programming/AA-EZ10A-TC_RSTS_E_V9.0_System_Directives_Manual_Jun85.pdf
- ^ ab RSTS/E システムマネージャガイド(PDF)。マサチューセッツ州メイナード: Digital Equipment Corporation。1989 年 7 月。
- ^ ディック、P:「RSTSの歴史:補遺」、25ページ。「VAX/RSTSプロフェッショナルマガジン」1984年2月1日、第6巻第1号、ISSN 0746-1909
- ^ abcde ディック、P.:「RSTSの歴史」、pp. 24-26。「RSTSプロフェッショナルマガジン」1983年6月1日、第5巻第3号、ISSN 0745-2888
- ^ Mayfield, M:「RSTS/E モニターの内部」、1~9 ページ。
- ^ Mayfield, M.:「RSTS/E モニターの内部」、1~4 ページ。
- ^ Marbach, C.: 「RSTS と Micro-11」、p. 50。「VAX/RSTS プロフェッショナル マガジン」1983 年 8 月 1 日、第 5 巻、第 4 号、ISSN 0745-2888
- ^ Romanello, G.: 「RSTS/E バージョン 9.0 のプレビュー」、p. 28。「VAX/RSTS プロフェッショナル マガジン」1984 年 12 月 1 日、第 6 巻、第 6 号、ISSN 0746-1909
- ^ 「PDP-11 RSX RT RSTS エミュレータ Osprey Charon」。archive.org。2006年8月13日。2006年8月13日時点のオリジナルよりアーカイブ。 2016年12月26日閲覧。
- ^ たとえば、RSTS/E 7.0 インストール テープのイメージを参照してください: http://simh.trailing-edge.com/kits/rstsv7gen.tar.Z
- ^ グリーンスポン、M.:「RSTS クリスタル ボール – パート 3」、p. 12。RSTSプロフェッショナル マガジン、1982 年 10 月 1 日、第 4 巻、第 5 号
- ^ ab Joshi, Prem; Delacroix, Jacques (1984 年 9 月)。「複数の VAX/VMS に対する新しい柔軟性」。ハードコピー。pp. 64– 68。
- ^ 「Burton Grad Associates」(PDF) 1986 年 3 月 27 日
SIMACS(System Industries Multiple Access Control System)
- ^ ab "RSTS 80th Birthday". silverware.co.uk . 2016年12月26日閲覧。
- ^ 「テレサ・グリーンのDELTA回想録」
- ^ 「生産性支援が Bureau の Cobol コードを置き換える」。Computerworld : 40。1983-07-18。2011-12-26に取得。User -
11 [...] RSTS/E オペレーティング システムで実行される (DEC) PDP-11 用のデータ管理システム [...]
外部リンク
- スウェーデン、ストックホルムの王立工科大学のエルビラ
- RSTS 趣味人サイト
- SimHウェブページ
- ウォフォード・ウィッチ
