リモート初期プログラムロード(RIPLまたはRPL )は、ネットワーク経由でサーバーからコンピュータを起動し、オペレーティングシステムをロードするためのプロトコルです。このようなサーバーは、 LAN Manager、LAN Server、Windows NT Server、Novell NetWare、LANtastic、Solaris、Linuxなどのネットワークオペレーティングシステムを実行します。[ 1 ]
RIPLはプレブート実行環境(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 システムで問題を引き起こします。通常、RPLコードは、この非常に動的なブートプロセス[ 2 ]を生き延び、ブートが完了したらDOSが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 ]
{{cite newsgroup}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク){{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク){{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)