
Un extensor de DOS es un programa informático que se ejecuta bajo DOS y que permite que el software se ejecute en un entorno de modo protegido, aunque el sistema operativo anfitrión solo sea capaz de operar 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 posteriormente se ampliaron con el Intel 80386 ), para hacer frente a las limitaciones de memoria de DOS .
Operación del extensor 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 subyacente de DOS . Esto era necesario porque muchas de las funciones que proporciona DOS requieren direcciones de segmento y desplazamiento de 16 bits que apuntan 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 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 que se va a ejecutar, el extensor de DOS también proporciona (entre otras cosas) una capa de traducción que mantiene búferes asignados por debajo del límite de memoria de 1 MB en modo real. Estos búferes 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 bastante tiempo, el extensor intenta minimizar el número de cambios duplicando la funcionalidad de muchas operaciones del 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 de software (por ejemplo, el propio DOS y la API del ratón). Algunos extensores también gestionan otras funciones de interrupción comunes, como las rutinas de la BIOS de vídeo.
En esencia, un extensor de DOS es como un sistema operativo en miniatura, que gestiona gran parte de la funcionalidad del propio sistema operativo subyacente.
Historia del desarrollo

Podría decirse que el extensor de DOS fue inventado por Phar Lap , pero fue el extensor DOS/4GW de Tenberry Software (antes Rational Systems) para procesadores 386 el que popularizó los programas de DOS en modo protegido. Incluido con los compiladores de C, C++ y Fortran de Watcom para procesadores de la clase 386, pronto se convirtió en un elemento fundamental de las aplicaciones y juegos para 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 videojuegos para PC los que realmente los catapultaron a la fama. Como resultado del desarrollo de los extensores de DOS, se crearon dos nuevas interfaces de software para solucionar los numerosos conflictos potenciales que podían surgir de los diversos métodos de gestión de memoria ya existentes, además de proporcionar una interfaz uniforme para los programas cliente.
La primera de estas interfaces fue la Interfaz de Programa de Control Virtual (VCPI), pero esta fue rápidamente eclipsada por la especificación de la Interfaz de Modo Protegido de DOS (DPMI), que surgió del desarrollo de Windows 3.0. [ 1 ] Estas interfaces proporcionaban una API a través de la cual un programa extendido podía interactuar con software en modo real, asignar memoria y gestionar servicios de interrupción. También ofrecían un método sencillo para que el programa extendido configurara el cambio al modo protegido y permitían la coexistencia pacífica de múltiples programas en modo protegido.
extensores de DOS
- DOS/4G, DOS/4GW y DOS/16M de Tenberry Software, Inc.
- 286|DOS Extender y 386|DOS Extender de Phar Lap . Posteriormente reemplazados por el 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 que antes era propietario y competía con DOS4G. Desde el año 2000 se ha publicado como código abierto. Algunos juegos poco comunes, como Daggerfall, lo utilizan.
- DOS/32 como alternativa a DOS/4G por Narech K.
- Extensores OS/286 y OS/386 de Ergo (anteriormente Eclipse, anteriormente AI Architects), y servidores DPM16 y DPM32.
- 386Power 32-bit DOS Extender es un extensor para aplicaciones de ensamblador de 32 bits . Incluye código fuente .
- Todas las versiones de Microsoft Windows desde 1990, excepto la rama NT , incluyen tanto un servidor DPMI como un extensor DOS. [ 6 ]
- HX DOS Extender proporciona soporte limitado para Win32 para permitir que la consola de Windows (como Far Manager ) y algunas aplicaciones GUI de Win32 se ejecuten bajo DOS. Contiene servidores DPMI de 16 y 32 bits (HDPMI16/HDPMI32) para su uso con programas DOS en modo protegido [ 7 ].
- DosWin32 ofrece soporte limitado para Win32.
- WDosX fue una implementación temprana de soporte limitado para Win32, utilizada por el compilador TMT Pascal.
- Borland Power Pack era una extensión incluida en algunas de sus suites de desarrollo que podía acceder a una parte limitada de la API de Win32.
- TASM , también de Borland, incluía 32RTM con DPMI32VM y RTM con DPMI16BI, dos hosts DPMI.
- CWSDPMI, de Charles W. Sandmann, es un servidor DPMI para usar con programas DJGPP de DOS en modo protegido de 32 bits .
- QDPMI, de Quarterdeck Office Systems , era un host DPMI incluido con QEMM .
- GO32, utilizado en versiones anteriores (anteriores a la v2) de DJGPP y Free Pascal.
- D3X es un servidor DPMI escrito completamente en lenguaje ensamblador . Aún se encuentra en fase alfa, pero su desarrollo se interrumpió antes de su finalización.
- DPMIONE es otro servidor DPMI. Fue desarrollado originalmente para programas de 32 bits generados con 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, compatibles como plataforma de destino con los compiladores de Digital Mars.
- BLINKER de Blink Inc., versión 3 y posteriores, proporcionaba un extensor DOS 286 para varios compiladores DOS de 16 bits, incluidos CA-Clipper, Microsoft C/C++, PASCAL, FORTRAN y Borland C/C++. Admitía 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 de DOS protegido de 32 bits para el compilador Watcom C/C++, se convirtió en código abierto recientemente desde julio de 2023. [ 9 ]
Aplicaciones extendidas destacadas de DOS
- ATT Graphics Software Labs 'RIO': software gráfico para objetos independientes de la resolución.
- Adobe Acrobat Reader 1.0 (utiliza una versión antigua de DOS/4GW Professional)
- AutoCAD 11 (PharLap 386)
- Lotus 1-2-3 Versión 3 (Rational Systems DOS/16M)
- Profesional de Oracle
- IBM Interleaf
- Major BBS , un paquete de software BBS de la década de 1980 que utilizaba el extensor Phar Lap para DOS.
- Software multitarea Quarterdeck DESQview y DESQview/X
- Compiladores C , C++ y Fortran de Watcom para x86
- Innumerables juegos de DOS de principios y mediados de la década de 1990, que en su mayoría utilizaban DOS/4GW, entre los que se incluyen:
- DOOM de id Software y sus secuelas, así como Quake (creado con DJGPP ).
- Impacto del sistema en Looking Glass Studios
- El descenso de Parallax Software
- Abuso de Crack.com
- Warcraft: Orcs & Humans y Warcraft II: Tides of Darkness de Blizzard Entertainment
- Duke Nukem 3D de 3D Realms
- Mortal Kombat de Midway
- Command & Conquer y Command & Conquer: Red Alert de Westwood Studios
- Grand Theft Auto , de DMA Design (ahora Rockstar North) , fue adaptado a Windows para hacerlo más compatible con los ordenadores modernos.
- Comanche: Maximum Overkill de NovaLogic utilizaba un gestor de memoria personalizado en modo Unreal que requería un procesador 80386 y era incompatible con gestores de memoria y máquinas virtuales DOS , lo que obligaba a configurar un menú de arranque DOS complejoen CONFIG.SYS . Las revisiones posteriores incluyeron un extensor DOS que solucionó el problema.
- Ultima VII y Ultima VII Part Two: Serpent Isle de Origin Systems también usaban un administrador de memoria personalizado del modo Unreal llamado Voodoo Memory Manager, que era incompatible con la memoria EMS y los administradores de memoria como EMM386 .
Referencias
- ↑ 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). "Crea tu propio extensor de DOS: Parte I". Dr. Dobb's Journal . 15 (10). CMP Technology : 16–18 , 20, 24. ISSN 1044-789X .
- ↑ Williams, Al (noviembre de 1990). "Crea tu propio extensor DOS: Parte II". Dr. Dobb's Journal . 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 . ISBN 1-55851-177-6.
- ^ Williams, Al (1993). DOS 6: Guía del desarrollador . Mercado y Technik. ISBN 1-55851-309-4.
- ↑ Williams, Al (1993). DOS and Windows Protected Mode: Programming with DOS Extenders in C . Addison-Wesley . p. 30. ISBN 0-201-63218-7.
- ↑ "HX DOS Extender" .
- ↑ 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 del original el 2 de marzo de 2009. Consultado el 12 de agosto de 2009 .
- HX-DOS
- Lista de extensores de DOS del País Libre
- extensores de DOS