リモート初期プログラムロード(RIPLまたはRPL)は、コンピュータを起動し、ネットワーク経由でサーバーからオペレーティングシステムをロードするためのプロトコルです。このようなサーバーは、 LAN Manager、LAN Server、Windows NT Server、Novell NetWare、LANtastic、Solaris、Linuxなどのネットワークオペレーティングシステムを実行します。[ 1 ]
RIPLはPreboot Execution Environment (PXE)に似ていますが、Novell NetWareベースのブート方式を使用します。元々はIBMによって開発されました。
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以降)のリモートブートを導入しました。
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
この「 」インターフェースに加えて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 ]