La carga inicial remota de programas ( RIPL o RPL ) es un protocolo para iniciar un ordenador y cargar su sistema operativo desde un servidor a través de una red . Un servidor de este tipo ejecuta un sistema operativo de red como LAN Manager , LAN Server , Windows NT Server, Novell NetWare , LANtastic , Solaris o Linux . [1]
RIPL es similar a Preboot Execution Environment (PXE), pero utiliza el método de arranque basado en Novell NetWare . Fue desarrollado originalmente por IBM .
IBM LAN Server permite a los clientes (solicitantes de RIPL) cargar los sistemas operativos DOS u OS/2 a través del protocolo 802.2 / DLC desde la LAN (a menudo Token Ring ). Por lo tanto, el servidor compara las solicitudes de los clientes con las entradas de su tabla RPL.MAP. El arranque remoto de estaciones de trabajo DOS a través de imágenes de arranque fue admitido ya en 1990 por IBM LAN Server 1.2 a través de su protocolo PCDOSRPL. IBM LAN Server 2.0 introdujo el arranque remoto de estaciones OS/2 (desde OS/2 1.30.1) en 1992.
Para que funcione el arranque remoto DOS, el cargador de arranque RPL se carga en la memoria del cliente a través de la red antes de que se inicie el sistema operativo. Sin precauciones especiales, el sistema operativo podría sobrescribir fácilmente el código RPL durante el arranque, ya que el código RPL reside en memoria no asignada (normalmente en la parte superior de la memoria convencional disponible ). [2] [3] [4] El código RPL se oculta y, por lo tanto, se protege a sí mismo de ser sobrescrito al enganchar INT 12h [5] [4] y reducir la memoria informada por este servicio BIOS por su propio tamaño. INT 12h es utilizado por DOS para consultar la cantidad de memoria disponible al inicializar su propio esquema de asignación de memoria en modo real. [5] [4] Esto causa problemas en sistemas DOS más modernos, donde los rangos de direcciones libres en modo real pueden ser utilizados por el sistema operativo para reubicar partes de sí mismo y cargar controladores en alto , de modo que se maximice la cantidad de memoria convencional disponible. Por lo general, el código RPL tenía que utilizar varios "trucos sucios" específicos de la versión y el proveedor del sistema operativo para sobrevivir a este proceso de arranque muy dinámico [2] y permitir que DOS recuperara el control sobre la memoria ocupada por RPL una vez que el arranque se completaba de manera fluida.
Desde MS-DOS / PC DOS 5.0 y DR DOS 6.0 , el sistema operativo verifica si el RPL ha interceptado INT 2Fh buscando una RPL
firma " " en el código al que apunta INT 2Fh. Si está presente, DOS llama a INT 2Fh/AX=4A06h [3] [4] [6] para recuperar la cantidad de memoria del RPL e integrarla en su propia asignación de memoria, protegiendo así el código RPL de ser sobrescrito por otros programas. [3] [4] Aún así, seguía siendo la difícil responsabilidad del RPL eliminarse limpiamente de la memoria al final de la fase de arranque, si era posible.
Además de esta RPL
interfaz " ", DR DOS 6.0 y superiores desde 1991 admiten una extensión más flexible denominada " RPLOADER
". [7] [4] Si DR DOS detecta la presencia de RPLOADER en lugar de solo RPL, comienza a emitir transmisiones INT 2F/AX=12FFh/BX=0005h [3] [7] [4] en ciertas etapas críticas del proceso de arranque. [3] [7] [4] El código RPL puede usarlos para reubicarse en la memoria (para evitar conflictos con otro software residente o para evitar la fragmentación de la memoria cuando la memoria RPL se libera más adelante), o para conectarse e integrarse mejor con el sistema operativo para realizar sus tareas de limpieza final de una manera bien definida y coordinada a través de una interfaz de backend robusta y compatible en lugar de simples hacks. [3] [7] [4] Esto ayuda a mejorar la compatibilidad sin tener que adaptar el código RPL con cada nueva versión del sistema operativo, y evita la fragmentación innecesaria de la memoria y, por lo tanto, aumenta la memoria disponible para que se ejecuten los programas DOS. La interfaz también se puede utilizar para ejecutar DR DOS como una tarea en un sistema operativo host como Concurrent DOS . [6]
Desde 2018, RxDOSRPLOADER
7.24 también admite las transmisiones " ". [8]