リモート初期プログラムロード

リモート初期プログラムロードRIPLまたはRPL)は、コンピュータを起動し、ネットワーク経由でサーバーからオペレーティングシステムをロードするためのプロトコルです。このようなサーバーは、 LAN ManagerLAN ServerWindows NT Server、Novell NetWareLANtasticSolarisLinuxなどのネットワークオペレーティングシステムを実行します。[ 1 ]

RIPLはPreboot Execution Environment (PXE)に似ていますが、Novell NetWareベースのブート方式を使用します。元々はIBMによって開発されました。

IBM LAN サーバー

IBM LAN Serverは、クライアント(RIPLリクエスター)がLAN(多くの場合トークンリング)から802.2 / DLCプロトコルを介してDOSまたはOS/2オペレーティングシステムをロードすることを可能にします。そのため、サーバーはクライアントのリクエストをRPL.MAPテーブルのエントリと比較します。ブートイメージを介したDOSワークステーションのリモートブートは、1990年にはIBM LAN Server 1.2のPCDOSRPLプロトコルによって既にサポートされていました。IBM LAN Server 2.0は、1992年にOS/2ステーション(OS/2 1.30.1以降)のリモートブートを導入しました。

RPLとDOS

DOS リモート ブートが機能するには、オペレーティング システムが起動する前に、ネットワーク経由で RPL ブート ローダーがクライアントのメモリにロードされます。RPL コードは未割り当てメモリ (通常、使用可能なコンベンショナル メモリの先頭)に存在するため、特別な予防措置を講じないと、オペレーティング システムはブート中に簡単に RPL コードを上書きできます。[ 2 ] [ 3 ] [ 4 ] RPL コードはINT 12h [ 5 ] [ 4 ]をフックし、この BIOS サービスによって報告されるメモリを自身のサイズだけ減らすことで隠れて上書きから保護します。INT 12h は、DOS が自身のリアル モード メモリ割り当てスキームを初期化するときに使用可能なメモリの量を照会するために使用されます。[ 5 ] [ 4 ]これは最近の DOS システムで問題が発生します。空きリアル モード アドレス範囲がオペレーティング システムによって利用され、自身の一部を再配置してドライバを上位にロードし、使用可能なコンベンショナル メモリの量を最大化する場合があるからです。通常、この非常に動的なブートプロセス[ 2 ]を生き残り、ブートがシームレスに完了すると、DOSがRPLによって占有されているメモリの制御を取り戻すために、さまざまなオペレーティングシステムベンダーおよびバージョン固有の「ダーティトリック」をRPLコードで使用する必要がありました。

MS-DOS / PC DOS 5.0およびDR DOS 6.0以降、オペレーティングシステムは、INT 2Fhが指すコードに「」シグネチャがあるかどうかを調べることで、RPLがINT 2Fhをフックしたかどうかを確認します。存在する場合、DOSはINT 2Fh/AX=4A06h [ 3 ] [ 4 ] [ 6 ]を呼び出してRPLからメモリ量を取得し、それを自身のメモリ割り当てに統合することで、RPLコードが他のプログラムによって上書きされるのを防ぎます。[ 3 ] [ 4 ]それでも、可能であれば、ブートフェーズの最後にメモリからRPLを完全に削除するという難しい責任が残っていました。 RPL

RPLOADER と DR-DOS

この「 」インターフェースに加えてRPL、1991 年以降の DR DOS 6.0 およびそれ以降のバージョンでは、「RPLOADER」というより柔軟な拡張機能をサポートしています。[ 7 ] [ 4 ] DR DOS が RPL だけでなく RPLOADER の存在を検出すると、ブート プロセスの特定の重要な段階でINT 2F/AX=12FFh/BX=0005h [ 3 ] [ 7 ] [ 4 ]ブロードキャストを発行し始めます。 [ 3 ] [ 7 ] [ 4 ] RPL コードはそれらを使用してメモリ内で自身を再配置できます (他の常駐ソフトウェアとの競合を回避するため、またはRPL メモリが後で解放されるときにメモリの断片化を回避するため)。または、単なるハックではなく、堅牢でサポートされているバックエンド インターフェースを通じて、明確に定義され調整された方法で最終的なクリーンアップ タスクを実行するために、オペレーティング システムにフックしてより適切に統合できます。[ 3 ] [ 7 ] [ 4 ]これにより、オペレーティングシステムの新しいバージョンごとにRPLコードを変更する必要がなくなり、互換性が向上します。また、不要なメモリの断片化を回避し、DOSプログラムの実行に使用可能なメモリを増やすことができます。このインターフェースは、 Concurrent DOSなどのホストオペレーティングシステム上でDR DOSをタスクとして実行するためにも利用できます。[ 6 ]

2018年以降、RxDOS  7.24は「RPLOADER」ブロードキャストもサポートしています。[ 8 ]

参照

参考文献

  1. ^ McKenzie, James; Lightfoot, Chris (1999). 「RPLD - an RPL/RIPL remote boot server」 . 2017年8月23日時点のオリジナルよりアーカイブ。 2009年6月11日閲覧
  2. ^ a b Paul, Matthias R. (1997-10-02) [1997-09-29]. 「Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM BOOT.TXT - OpenDOS の起動方法に関する簡単な説明」 2003-10-04 にオリジナルからアーカイブ。2009-03-29閲覧[1]
  3. ^ a b c d e f Paul, Matthias R. (2000-07-17). Brown, Ralf D. (ed.). 「2F4A06: INT 2F - DOS 5+ - DOS SUPERVISOR "REBOOT PANEL" - ADJUST MEMORY SIZE」 . Ralf Brown's Interrupt List 61. 2017年8月22日時点のオリジナルよりアーカイブ2017年8月22日閲覧
  4. ^ a b c d e f g h iポール、マティアス R. (2002-08-13)。「Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird」 (ドイツ語)。ニュースグループde.comp.lang.assembler.x862017-09-04 のオリジナルからアーカイブ2017 年 9 月 3 日に取得
  5. ^ a b Brown, Ralf D. (編). 「12: INT 12 - BIOS - GET MEMORY SIZE」 . Ralf Brownの割り込みリスト. 2017年8月22日時点のオリジナルよりアーカイブ。 2017年8月22日閲覧
  6. ^ a b c Chappell, Geoff (1994年1月). Schulman, Andrew; Pedersen, Amorette (編). DOS Internals . The Andrew Schulman Programming Series (第1刷, 第1版). Addison Wesley Publishing Company . pp. 134, 140– 143. ISBN 978-0-201-60835-9. ISBN 0-201-60835-9(xxvi+738+ivページ、3.5インチフロッピーディスク[2] [3])正誤表: [4] [5] [6]
  7. ^ a b c d Paul, Matthias R. (2000-07-17). Brown, Ralf D. (ed.). "2F12FFBX0005: INT 2F - DR DOS 6.0+ - BOOT PHASE BROADCASTS FOR MEMORYMAX/RPLOADER/SECURITY" . Ralf Brown's Interrupt List 61 . 2017年8月22日時点のオリジナルよりアーカイブ。 2017年8月22日閲覧(注: リリース 62 では追加情報が保留中です。)
  8. ^ ecm (2018年10月8日). 「RxDOS 7.24リリース」 . bttr-software.de . DOSは死んでいない。2018年12月15日時点のオリジナルよりアーカイブ。 2020年1月27日閲覧

さらに読む