Un extensor DOS es un programa de software de computadora que se ejecuta bajo DOS y que permite que el software se ejecute en un entorno de modo protegido aunque el sistema operativo host solo sea capaz de operar en modo real .
Los extensores 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 .
Funcionamiento del extensor DOS
Un extensor de DOS es un programa que "extiende" DOS de modo 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 direcciones de segmento y desplazamiento de 16 bits que apunten a ubicaciones de memoria dentro de los primeros 640 kilobytes de memoria . Sin embargo, el modo protegido utiliza un método de direccionamiento incompatible donde los registros de segmento (ahora llamados selectores) se utilizan para apuntar a 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 cambios costosos al modo real (o V86 ) para atender las solicitudes del modo no protegido.
Además de configurar el entorno y cargar el programa real que se va a ejecutar, el extensor DOS también proporciona (entre otras cosas) una capa de traducción que mantiene los buffers asignados por debajo de la barrera de memoria de modo real de 1 MB. Estos buffers se utilizan para transferir datos entre el sistema operativo de modo real subyacente y el programa de 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 el número de cambios duplicando la funcionalidad de muchas operaciones de modo real dentro de su propio entorno de modo protegido. Como DOS utiliza interrupciones ampliamente para la comunicación entre el sistema operativo y el software de nivel de usuario, los extensores DOS interceptan muchas de las interrupciones comunes de hardware (por ejemplo, el reloj de tiempo real y el controlador del teclado) y de software (por ejemplo, el propio DOS y la API del mouse). Algunos extensores también manejan otras funciones de interrupción comunes, como las rutinas de BIOS de video.
Básicamente, un extensor DOS es como un sistema operativo en miniatura, que maneja gran parte de la funcionalidad del sistema operativo subyacente.
Historial de desarrollo
Se podría decir que el extensor DOS fue inventado por Phar Lap , pero fue el extensor DOS/4GW de Tenberry Software (anteriormente Rational Systems) el que llevó los programas DOS en modo protegido al 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 las aplicaciones y juegos para PC, como el exitoso Doom de id Software .
Si bien en un principio fueron las aplicaciones empresariales que consumían mucha memoria las que impulsaron el desarrollo de los extensores DOS, fueron los juegos para PC los que realmente los pusieron en el centro de atención. Como resultado del desarrollo de los extensores DOS, se crearon dos nuevas interfaces de software para ocuparse de los numerosos conflictos potenciales que podrían surgir de los diversos métodos de gestión de memoria que ya existían, así como para 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 de Interfaz de Modo Protegido DOS (DPMI), que surgió a partir del desarrollo de Windows 3.0. [1] Proporcionaban una API a través de la cual un programa extendido podía interactuar con software de modo real, asignar memoria y manejar servicios de interrupción. También proporcionaban un método fácil para que el extensor configurara el interruptor al modo protegido y permitían que varios programas en modo protegido coexistieran pacíficamente.
286|DOS Extender y 386|DOS Extender de Phar Lap . Más tarde reemplazado por el TNT Dos Extender.
PROT de Al Williams, un extensor DOS de 32 bits publicado en el Dr. Dobb's Journal [2] [3] y en dos libros. [4] [5] Este extensor tenía la virtud de ejecutar llamadas DOS y BIOS en modo emulado en lugar de volver al modo real.
CauseWay era un extensor propietario que competía con DOS4G. A partir de 2000 se lanzó como código abierto. Algunos juegos poco comunes, como Daggerfall, lo utilizan.
GO32, utilizado en versiones anteriores (pre-v2) de DJGPP y Free Pascal
D3X es un servidor DPMI escrito íntegramente en lenguaje ensamblador . Aún se encuentra en fase alfa, pero se discontinuó antes de su finalización.
DPMIONE es otro servidor DPMI. Originalmente desarrollado para programas de 32 bits generados por Borland C++ y Delphi.
DBOS de Salford Software, un extensor DOS de 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. La versión 3 y posteriores ofrecían un extensor DOS 286 para varios compiladores DOS de 16 bits, incluidos CA-Clipper, Microsoft C/C++, PASCAL, FORTRAN y Borland C/C++. Se admitían ejecutables únicos de "modo dual" capaces de ejecutarse en modo real o protegido según el entorno de ejecución.
EMX
PMODE/W, un extensor DOS protegido de 32 bits para el compilador C/C++ de Watcom, recientemente convertido en código abierto desde julio de 2023. [9]
Aplicaciones extendidas de DOS notables
'RIO' de ATT Graphics Software Labs: software de gráficos para objetos independientes de la resolución.
Adobe Acrobat Reader 1.0 (utiliza una versión anterior de DOS/4GW profesional)
Grand Theft Auto de DMA Design (ahora Rockstar North) . Las versiones posteriores del juego se trasladaron a Windows para que fuera más compatible con las computadoras modernas.
^ Duncan, Ray; Petzold, Charles ; Schulman, Andrew; Baker, M. Steven; Nelson, Ross P.; Davis, Stephen R.; Moote, Robert (1992). Extending DOS: A Programmer's Guide to Protected-Mode DOS (2.ª ed.). Addison-Wesley Publishing Company, Inc., págs. 433–462. ISBN 0-201-56798-9.
^ Williams, Al (octubre de 1990). "Desarrolle su propio extensor DOS: Parte I". Revista del Dr. Dobb . 15 (10). CMP Technology : 16–18, 20, 24. ISSN 1044-789X.
^ Williams, Al (noviembre de 1990). "Desarrolle su propio extensor DOS: Parte II". Revista del Dr. Dobb . 15 (11). CMP Technology : 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 . pág. 30. ISBN.0-201-63218-7.
^ "Extensor HX DOS".
^ Compilador Fortran FTN77
^ Charles Scheffold, Tomasz Pytel. "PMODE/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)