| 開発者 | デジタル・イクイップメント・コーポレーション |
|---|---|
| 作業状態 | 製造中止 |
| ソースモデル | クローズドソース |
| 初回リリース | 1971年 |
| プラットフォーム | PDP-8 |
| デフォルトの ユーザーインターフェース | 簡潔なコマンド言語(CCL) (コマンドライン インターフェイス) |
| ライセンス | 独自 |
| 先行 | 8 ビット |
OS/8は、Digital Equipment CorporationのPDP-8ミニコンピュータで使用される主要なオペレーティング システムです。
OS/8 より前の PDP-8 オペレーティング システムには次のものがあります。
- RLモニター[1]はMS/8とも呼ばれる。
- P?S/8、[a]必要なメモリは4Kのみです。
- PDP-8 4Kディスクモニターシステム[2]
- PS/8 (「プログラミング システム/8」) は 8K を必要とします。これが 1971 年に OS/8 になりました。
その他の関連するDECオペレーティングシステムとしては、OS/78、OS/278、[3] 、OS/12がある。後者はOS/8と実質的に同一バージョンであり、DigitalのPDP-12コンピュータで動作する。
Digitalは非商用目的でOS/8イメージをリリースしており[4]、これはSIMHを通じてエミュレートすることができます。
概要
OS/8は、それが動作する PDP-8 コンピュータと複雑さと規模が釣り合ったシンプルなオペレーティング環境 [5] を提供します。I /O は、ポーリング (割り込み駆動ではない) 技術を使用する一連の付属ドライバによってサポートされます。デバイス ドライバは、128 12 ビットワードのメモリ ページを 1 つまたは 2 つしか占有できず、フィールド 0 の任意のページで実行できなければならないため、巧みに記述する必要があります[6]。これには、小さな負の定数に OPR 命令 (7XXX) を使用するなど、かなりの巧妙さが要求されることがよくあります。
OS/8 のメモリ常駐「フットプリント」は、フィールド 0 の先頭の 128 ワードとフィールド 1 の先頭の 128 ワードの合計 256 ワードのみです。オペレーティング システムの残りの部分 (USR、「ユーザー サービス ルーチン」) は、必要に応じて (ユーザーのプログラムに対して) 透過的にメモリのスワップ インとスワップ アウトを行います。OS/8 のこのディスク常駐 (または、より正確には、システム デバイス常駐) 部分は、スワップ スペースを含む SYS: デバイスの最初の 14K ワード (56 ブロック) です。
残りのメモリ内容は、いくつかの基本的なユーザー コマンド間で保持されます。これは、実行可能プログラムを作成するプロセスによって活用されます。たとえば、アセンブリ言語プログラムは、最初に .BN (バイナリ) ファイルにアセンブルされます。次に、1 つ以上の .BN ファイルが LOAD (ABSLDR) コマンドを使用してメモリにロードされます。次に、ロードされたプログラムを START コマンドで実行したり、ODT でデバッグしたり、後で GET コマンドで取得したり、R コマンドまたは RUN コマンドですぐに実行したりできる .SV ファイルに保存したりできます。現在ロードされているプログラムに関する情報は、SYS: デバイスにある CCB (コア コントロール ブロック) に保持されます。この情報には、プログラムによって使用されるメモリ部分 (保存する必要がある部分) とプログラムの開始アドレスが含まれます。
ユーザーまたはジョブに関連付けられた保存メモリというこの概念は、PDP-10用のTOPS-10を含む他の DEC オペレーティング システムにも見られ、このようなメモリはコンテキストとして知られています。
OS/8 はハードディスクから起動し、0.5 秒以内に コマンド プロンプトを表示できます。
簡潔なコマンド言語
OS/8 の初期のバージョンには、ごく少数の基本コマンド( GET、SAVE、RUN、ASSIGN、DEASSIGN、およびODT ) を備えた非常に初歩的なコマンドライン インタープリタがありました。バージョン 3 では、より多くのコマンドを実装するCCL ( Concise Command Language )と呼ばれるより洗練されたオーバーレイが追加されました。OS/8 の CCL は、 TOPS-10を実行する Digital のPDP-10システムの CCL を直接模倣したものです。実際、OS/8 ソフトウェア システムの多くは、 TOPS-10 オペレーティング環境を可能な限り忠実に模倣するように設計されています。(CCL コマンド言語は、RT-11、RSX-11、およびRSTS/E を実行するPDP-11コンピューターで使用され、PDP-8、PDP-10、および PDP-11 の 3 つのアーキテクチャすべてにわたって同様のユーザー オペレーティング環境を提供します。)
基本的な OS と CCL は、かなり高度なコマンドを多数実装していますが、その多くは、 MS-DOS、Windows、Unix 系オペレーティング システムにも存在しない、現代のコマンド言語ですら存在しません。
たとえば、COMPILEコマンドは、指定されたソース ファイルに適したコンパイラを自動的に検出し、コンパイル/アセンブル/リンク サイクルを開始します。
ASSIGNコマンドとDEASSIGNコマンドを使用すると、プログラムで物理名の代わりに論理デバイス名を使用できます (MS-DOS で必要な名前)。たとえば、プログラムはデバイスFLOP:AAA.TXTに書き込むことができ、最初に「ASSIGN FLOP: RXA2: 」と記述すると、物理デバイス RXA2 (2 番目のフロッピー ディスク ドライブ) にファイルが作成されます。VAX / VMSとAmigaのオペレーティング システムAmigaOS (およびTRIPOSに基づいて構築された他の OS ) では、この機能がかなり使用されています。
SETコマンドは、システムバイナリコード内の場所をパッチすることで、多くのシステムオプションを設定できます。そのうちの1つであるOS-78のコマンド[7]はSET SYS OS8で、OS-78に含まれていないMONITORコマンドを再度有効にします。
BUILDコマンドを使用すると、OS をオンザフライで再構成でき、デバイス ドライバーを追加することもできます。多くの場合、OS を再起動する必要はありません。
OS/8 ファイルシステム
OS/8 は、次のようなさまざまな大容量ストレージデバイス上 のシンプルでフラットなファイル システムをサポートします。
- TU56 DECテープ
- DF32 32KW [b] [8] 固定ヘッドディスク
- RF08 256KW [c] 固定ヘッドディスク
- RK01/02/03/04/05カートリッジ ディスク ドライブ
- RL01/02カートリッジ ディスク ドライブ
- RX01/02フロッピー ディスクドライブ
PDP-8 のファイル名はFFFFFF.XXの形式になります。ここで、「F」はファイル名の大文字の英数字を表し、「X」は拡張子 (ファイル タイプ) の大文字の英数字を表します。
- .PA :アセンブリ言語
- .SV : 保存されたコアイメージ (実行可能プログラム)
- .FT : Fortran ソースファイル
- .DA : データファイル[d]
任意のファイルの内容は、単一の「エクステント」に連続して保存されます。割り当ては次のように機能します。[9]プログラムは最初に仮ファイルを開きます (ユーザー サービス ルーター (USR) の「ENTER」機能を使用)。これにより、最大の空きエクステントがファイルに割り当てられるか、必要なファイル サイズが事前にわかっている場合は、そのファイルに適合する最小のエクステントが割り当てられます。ENTER は、ファイルの開始ブロック番号とサイズをプログラムに返し、プログラムはデバイス ドライバーを直接呼び出してファイルに書き込みます。書き込みが完了すると、プログラムは USR の「CLOSE」機能を呼び出します。CLOSE は仮ファイルを永続ファイルとしてマークし、将来の割り当てのために残りの空きスペースのエクステントを作成します。また、同じ名前の他のファイルも削除します (使用可能な空きスペースとしてマークします)。これにより、編集後など、既存のファイルを新しいバージョンに置き換えることが容易になります (「CLOSE」はファイル削除呼び出しを兼ねます)。ボリュームごとに一度に開くことができる仮ファイルは 1 つだけです。これは制限があるように見えますが、各パスで一度に生成される出力ファイルは 1 つだけなので、PAL8 アセンブラのようなものには有効です。
PIP には、ファイルシステムを圧縮 (「圧縮」) するオプションが含まれており、割り当てられていないすべてのスペースがディスクの末尾の単一のエクステントに移動されます。これは、MUNG を使用してTECOマクロを実行できるのと同様に、SQuish CCLコマンドによって呼び出すことができます。[引用が必要]
OS/8 ボリュームの最大記憶容量は限られており (256 12 ビット ワードの 4096 ブロック)、RK05 (2.4MB) ムービング ヘッド ディスクはこの容量を超え、「160 万ワードの記憶容量」があります。[10]このため、RK05 カートリッジは 2 つのパーティションに分割されています。たとえば、システム上の最初の RK05 は、RKA0: (SY:) と RKB0: の両方として知られています。この分割は、「外側のシリンダ」と「内側のシリンダ」を指します。
アスキー
ASCIIテキストを処理するためのシステムは2つあります。ASCIIファイルは、12ビットワードのペアごとに3つの8ビット文字として保存されます。最初の2文字(以下、ビットa0〜a7とb0〜b7でマーク)はワード全体に格納されますが、3番目の文字(ビットc0〜c7)は、ビットの半分がワード1に、残りの半分がワード2に格納されます。[7]
- 単語 1: c0 c1 c2 c3 | a0 a1 a2 a3 a4 a5 a6 a7
- WORD 2: c4 c5 c6 c7 | b0 b1 b2 b3 b4 b5 b6 b7
ASCII ファイルは CTRL/Z (ASCII 232) で終わります。
1 文字あたり 6 ビットの大文字のみの ASCII 文字列も使用されます。この場合、各単語に 2 文字が効率的に収まります。これは、ディレクトリ エントリのファイル名に使用されるだけでなく、BASIC の文字列にも使用されます。BASIC では、文字列に 6 ビット文字が使用される場合でも、PRINT 内で PNT() 関数を使用して任意の 8 ビット コードを印刷できます。たとえば、ASCII ESC 文字を印刷するには、PNT(27) を使用します。
OS/8 の日付形式
OS/8 は、日付を保存するために PDP-8 の 12 ビット ワードを次のように割り当てます。
- 今月4ビット
- 日付用の5ビット
- 年を表す3ビット。[e] [11]
COS-310が開発されたとき、3ビットの年フィールドでは8年しか保存できないという不十分さが認識されました。[12]
OS/8 CUSP (ユーティリティ プログラム)
OS/8 に付属する CUSP (よく使用されるシステム プログラム、つまりユーティリティ) には次のものが含まれます。
- BUILD (構成された OS/8 システムを大容量ストレージにインストールするプログラム)
- DIR (ディレクトリ一覧プログラム)
- EDIT(行指向エディタ)[13]
- MACREL (PAL とは異なり、マクロを実装する再配置アセンブラ。DEC の Small Systems Group の Stanley Rabinowitz によって作成されました。Stan のオフィスには「MACREL は魚です」と書かれた魚の ASCII アートワークが飾られていました) [引用が必要]
- FLAP (RALF から派生した絶対アセンブラ)
- FORTRAN -II. [14]
- FOTP (ファイル指向転送プログラム、PIP の代替)
- PAL (アセンブラ)
- PIP (Peripheral Interchange Program、ファイルのコピーに使用される)
- PIP10 (PDP-10 DECtapes からファイルをコピーするために使用される PIP のバージョン)
- RALF (FPP 用の別の再配置アセンブラ)
- TECO (テキスト エディターおよびコレクター、高度なエディター)。MUNG コマンドは TECO マクロを実行します。
- CCL は、ソース形式で提供され、ユーザーが拡張可能なコマンド ライン インタープリターです。
プログラミング言語
ベーシック
オプションとして、シングルユーザーBASICと 2 つのマルチユーザー BASIC バージョンが用意されています。
シングルユーザー BASIC は、言語の完全な機能を提供するために複数のオーバーレイを使用します。OS/8 が DECtape から起動されると、テープからオーバーレイを読み取る必要があるため、BASIC がオーバーレイを切り替える必要があるたびに、顕著な遅延が発生しました。
BASIC のマルチユーザー バージョン (EDU20 と EDU25) の違いは、ブロック交換可能なデバイス (DECtape またはディスク) をサポートするかどうかだけです。コストの制約により、多くの PDP-8 では、パンチ ペーパー テープ リーダーが唯一の大容量ストレージ I/O デバイスとして使用されています。EDU20 は紙テープから読み込み、マシンに紙テープ ライターがある場合はそのライターに出力できますが、EDU25 はファイル システムの構造を理解し、DECtape またはディスクから読み込み、DECtape またはディスクにファイルを作成できます。どちらも、接続された端末間でラウンドロビンを行う基本的なタスク スケジューラを使用して、複数の BASIC プログラムを同時に実行できます。PDP-8 はコア メモリを使用するため、メモリは常に不足しています。コア メモリは RAM テクノロジに比べて非常に高価です。8K の 12 ビット ワードでは、EDU20 は一度に最大 4 台の端末をサポートできますが、より多くのメモリが推奨されています。 EDU25 には、コードにディスク デバイス ドライバーとファイル システム ハンドラーが含まれているため、追加の 4K メモリ バンク (最小 12K) が必要です。実行中、EDU20 と EDU25 は OS/8 システム コールを使用しない自己完結型プログラムです。OS/8 コマンド インタープリターから呼び出されるとすぐに、OS/8 の常駐部分全体 (256 ワードすべて) が上書きされます。起動時に、EDU25 はメモリの内容を DECtape またはディスクに保存し、終了時に復元します。ただし、EDU20 はブロック交換可能なデバイスがないハードウェア構成を対象としているため、これを行うことはできません。
フォートラン
無料で入手できる FORTRAN II コンパイラに加えて、かなり完成度の高いFORTRAN IVコンパイラも利用できます。このコンパイラは、オプションの FPP-8 浮動小数点プロセッサ用のコードを生成します。これは基本的に独立した CPU で、PDP-8 CPU とメモリを共有するだけです。FPP-8 オプションがインストールされている場合、FORTRAN ランタイム コードはそれを検出し、FPP-8 を使用してメイン プログラム コードを実行し、PDP-8 CPU は I/O プロセッサとして実行されます。FPP-8 がない場合、ランタイム コードは代わりに PDP-8 CPU 上で実行される FPP-8 インタープリタを呼び出すため、プログラムは低速で実行されます。
この FORTRAN IV コンパイラのバージョン 1 には、DO ループが誤ってカウントされるという興味深いバグがあります。DO ループは 1、2、3、5、6、7、… (4 をスキップ) とカウントします。これを修正するための簡単なパッチがリリースされました。[引用が必要]
参照
脚注
- ^ はい、疑問符付きです!
- ^ 12ビットワードで測定
- ^ 256K × 12ビットワード
- ^ 他のファイルタイプもデータの保存に使用できます。
- ^ 1970年から1977年。
参考文献
- ^ OS/8 と RTS8 にも関わっていた Richard Lary さんへ。「PDP 8 とは何ですか?」。2004 年 8 月 25 日のオリジナルからアーカイブ。
- ^ 「ディスクモニターシステム」(PDF) . BitSavers .
- ^ COMPUTERWORLD、1984 年 6 月: 「OS/278 は 74 ドルで入手可能です。」「Decmate II 08/278 Digital Equipment Corp. は、OS/8 の新バージョンを発表しました...」Computerworld。1984 年 6 月 11 日。130 ページ。
- ^ ファイル: os8swre.tar.Z 内の/Licenses/os8_license.txt
- ^ コマンドの注釈付きリストは「OS/8 モニター コマンド」で参照できます。
- ^ 「私のPDP8/E」。
- ^ ab ムーア、リック。「OS-8 フィールドサービス支援パンフレット」。
- ^ 「DF32/DS32 ハードディスクドライブ」。DF32
ディスク ファイルおよびコントロールは、総容量 32K 12 ビット ワードの固定ヘッド ハードドライブです。
- ^ 割り当てアルゴリズムの説明については、「OS/8 ソフトウェア サポート マニュアル」(PDF) の第 2 章を参照してください。Bitsavers。Digital Equipment Corporation 。
- ^ PDP 8/e Small Computer Handbookの6~67ページ。Digital Equipment Corporation。1973年。
- ^ 「linctape-images/os8l/ps-8-system-25.linc のディレクトリ」。オンライン PDP-8 ホームページ。
このディレクトリは、OS/8 オペレーティング システムが使用する形式です。OS/8 は 8 年間の日付しか保存できないため、メディアに印刷されたディレクトリまたはその他の情報がなければ、日付は 1970 ~ 1977 と表示されます。正しい日付範囲を見つけてください。
- ^ 「The Digital Equipment Corporation PDP-8: よくある質問」。COS
-310 は MS/8 と OS/8 の派生製品ですが、新しいテキスト ファイル形式を採用しています。ファイル システムは OS/8 とほぼ同じですが、日付の記録方法が異なります[...]。
- ^ OS/8 EDIT のプログラマー向け概要については、「OS/8 EDIT を使用して PDP-8 上のファイルを編集する」を参照してください。2014 年 5 月 24 日。
- ^ 「4K Fortran プログラマー向けリファレンスマニュアル」(PDF)。
外部リンク
- OS/8 イメージを含む SIMH ソフトウェア キット。
- Bitsavers の OS/8 マニュアル。
- DEC の Hobbyist ライセンスとドキュメントへのリンク
