Un extensor de DOS es un programa de software que se ejecuta en DOS y que permite que el software se ejecute en un entorno en modo protegido aunque el sistema operativo host sólo sea capaz de funcionar en modo real .
Los extensores de DOS se desarrollaron inicialmente en la década de 1980 tras la introducción del procesador Intel 80286 (y luego se ampliaron con el Intel 80386 ), para hacer frente a las limitaciones de memoria de DOS .
Operación del extensor de DOS
Un extensor de DOS es un programa que "extiende" DOS para que los programas que se ejecutan en modo protegido puedan interactuar de forma transparente con la API de DOS subyacente . Esto era necesario porque muchas de las funciones proporcionadas por DOS requieren segmentos de 16 bits y direcciones de desplazamiento que apunten a ubicaciones de memoria dentro de los primeros 640 kilobytes de memoria . El modo protegido, sin embargo, utiliza un método de direccionamiento incompatible en el que los registros de segmento (ahora denominados selectores) se utilizan para señalar una entrada en la tabla de descriptores globales que describe las características del segmento. Los dos métodos de direccionamiento son mutuamente excluyentes, y el procesador tiene que realizar costosos cambios al modo real (o V86 ) para atender las solicitudes del modo no protegido.
Además de configurar el entorno y cargar el programa real a ejecutar, el extensor de DOS también proporciona (entre otras cosas) una capa de traducción que mantiene los buffers asignados por debajo de la barrera de memoria en modo real de 1 MB. Estos buffers se utilizan para transferir datos entre el sistema operativo subyacente en modo real y el programa en modo protegido. Dado que cambiar entre el modo real/V86 y el modo protegido es una operación que consume relativamente tiempo, el extensor intenta minimizar la cantidad de cambios duplicando la funcionalidad de muchas operaciones en modo real dentro de su propio entorno de modo protegido. Como DOS utiliza ampliamente las interrupciones para la comunicación entre el sistema operativo y el software de nivel de usuario, los extensores de DOS interceptan muchas de las interrupciones comunes de hardware (por ejemplo, el reloj en tiempo real y el controlador del teclado) y software (por ejemplo, el propio DOS y la API del mouse). Algunos extensores también manejan otras funciones de interrupción comunes, como rutinas de BIOS de video.
Esencialmente, un extensor de DOS es como un sistema operativo en miniatura, que maneja gran parte de la funcionalidad del propio sistema operativo subyacente.
Historia del desarrollo
Logotipo del producto DOS/4G de Tenberry Software
Podría decirse que el extensor de DOS fue inventado por Phar Lap , pero fue el extensor DOS/4GW 386 de Tenberry Software (anteriormente Rational Systems) el que llevó los programas DOS en modo protegido a un mercado masivo. Incluido con los compiladores C, C++ y Fortran de Watcom para procesadores de clase 386, pronto se convirtió en un pilar omnipresente de aplicaciones y juegos de PC como el exitoso Doom de id Software .
Si bien inicialmente fueron las aplicaciones empresariales que consumían mucha memoria las que impulsaron el desarrollo de los extensores de DOS, fueron los juegos de PC los que realmente las llevaron al centro de atención. Como resultado del desarrollo de extensores de DOS, se crearon dos nuevas interfaces de software para solucionar los muchos conflictos potenciales que podrían surgir de los diversos métodos de administración de memoria que ya existían, así como también proporcionar una interfaz uniforme para los programas cliente.
La primera de estas interfaces fue la Interfaz de programa de control virtual (VCPI), pero rápidamente fue eclipsada por la especificación Interfaz de modo protegido de DOS (DPMI), que surgió a partir del desarrollo de Windows 3.0. [1] Proporcionaron una API a través de la cual un programa extendido podía interactuar con el software en modo real, asignar memoria y manejar servicios de interrupción. También proporcionaron un método sencillo para que el extensor configurara el cambio al modo protegido y permitieron que múltiples programas en modo protegido coexistieran pacíficamente.
286|DOS Extender y 386|DOS Extender de Phar Lap . Posteriormente reemplazado por TNT Dos Extender.
PROT de Al Williams, un extensor de DOS de 32 bits publicado en Dr. Dobb's Journal [2] [3] y en dos libros. [4] [5] Este extensor tenía la virtud de ejecutar llamadas de DOS y BIOS en modo emulado en lugar de volver al modo real.
CauseWay era un extensor anteriormente propietario que competía con DOS4G. A partir del año 2000 se lanzó como código abierto. Algunos juegos raros como Daggerfall lo utilizan.
Ergo (anteriormente Eclipse, anteriormente AI Architects) extensores OS/286 y OS/386, y servidores DPM16 y DPM32
386Power DOS Extender de 32 bits es un extensor para aplicaciones de ensamblaje de 32 bits . Incluye código fuente .
Todas las versiones de Microsoft Windows desde 1990, excepto la rama NT , incluyen un servidor DPMI y un extensor DOS. [6]
HX DOS Extender proporciona soporte limitado para Win32 para permitir que la consola de Windows y algunas aplicaciones GUI de Win32 (como Far Manager ) se ejecuten en DOS. Contiene servidores DPMI de 16 y 32 bits (HDPMI16/HDPMI32) para usar con programas DOS en modo protegido [7]
DosWin32 proporciona soporte limitado para Win32
WDosX fue una de las primeras implementaciones de soporte limitado para Win32, utilizada por el compilador TMT Pascal.
Borland Power Pack era un extensor incluido con algunas de sus suites de desarrollo que podía acceder a una parte limitada de la API de Win32.
TASM , nuevamente de Borland, incluyó 32RTM con DPMI32VM y RTM con DPMI16BI, dos hosts DPMI.
GO32, utilizado en versiones anteriores (anteriores a v2) de DJGPP y Free Pascal
D3X es un servidor DPMI escrito íntegramente en ensamblador . Todavía en estado alfa, pero descontinuado antes de su finalización.
DPMIONE es otro servidor DPMI. Desarrollado originalmente para programas de 32 bits generados por Borland C++ y Delphi.
DBOS de Salford Software, un extensor de DOS en modo protegido de 32 bits utilizado principalmente por su compilador Fortran FTN77 [8]
X32 y X32VM de FlashTek y compatibles como objetivo con los compiladores de Digital Mars
BLINKER de Blink Inc Versión 3 y superiores proporcionó un extensor de DOS 286 para varios compiladores de DOS de 16 bits, incluidos CA-Clipper, Microsoft C/C++, PASCAL, FORTRAN y Borland C/C++. Se admiten ejecutables únicos de 'modo dual' capaces de ejecutarse en modo real o protegido según el entorno de tiempo de ejecución.
EMX
PMODE/W, un extensor de DOS protegido de 32 bits para el compilador Watcom C/C++, recientemente hecho de código abierto desde julio de 2023. [9]
Aplicaciones extendidas de DOS notables
ATT Graphics Software Labs 'RIO': software de gráficos de objetos independientes de resolución.
Adobe Acrobat Reader 1.0 (utiliza una versión anterior de DOS/4GW professional)
Grand Theft Auto de DMA Design (ahora Rockstar North) . Las versiones posteriores del juego se trasladaron a Windows para hacerlo más compatible con las computadoras modernas.
^ Duncan, Ray; Petzold, Carlos ; Schulman, Andrés; Panadero, M. Steven; Nelson, Ross P.; Davis, Stephen R.; Moote, Robert (1992). Ampliación de DOS: una guía del programador para DOS en modo protegido (2ª ed.). Addison-Wesley Publishing Company, Inc. págs. 433–462. ISBN 0-201-56798-9.
^ Williams, Al (octubre de 1990). "Enrolle su propio extensor de DOS: Parte I". Diario del Dr. Dobb . 15 (10). Tecnología CMP : 16–18, 20, 24. ISSN 1044-789X.
^ Williams, Al (noviembre de 1990). "Enrolle su propio extensor de DOS: Parte II". Diario del Dr. Dobb . 15 (11). Tecnología CMP : 74, 76, 80, 81–83, 85, 122–128, 130. ISSN 1044-789X.
^ Williams, Al (1991). DOS 5: Guía del desarrollador . Redwood City, California, Estados Unidos: Markt&Technik . ISBN1-55851-177-6.
^ Williams, Al (1993). DOS 6: Guía del desarrollador . Mercado y Technik. ISBN1-55851-309-4.
^ Williams, Al (1993). Modo protegido de DOS y Windows: programación con extensores de DOS en C. Addison-Wesley . pag. 30.ISBN0-201-63218-7.
^ "Extensor HX DOS".
^ Compilador FTN77 Fortran
^ Charles Scheffold, Tomasz Pytel. "PMODO/W" . Consultado el 13 de diciembre de 2023 .
enlaces externos
"DOS Extender en la wiki de FreeDOS". Archivado desde el original el 2 de marzo de 2009 . Consultado el 12 de agosto de 2009 .{{cite web}}: CS1 maint: unfit URL (link)