Extensor de DOS - DOS extender

Banner de inicio DOS / 4GW de Tenberry Software

Un extensor de 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 funcionar en modo real .

Los extensores de DOS se desarrollaron inicialmente en la década de 1980 después de la introducción del procesador Intel 80286 (y luego se expandieron con 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 manera 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 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 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 que se ejecutará, el extensor de DOS también proporciona (entre otras cosas) una capa de traducción que mantiene los búferes asignados por debajo de la barrera de memoria de modo real de 1 MB. Estos búferes se utilizan para transferir datos entre el sistema operativo en modo real subyacente 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 el número de conmutadores duplicando la funcionalidad de muchas operaciones en modo real dentro de su propio entorno de modo protegido. Dado que DOS utiliza interrupciones extensivamente para la comunicación entre el sistema operativo y el software de nivel de usuario, los extensores de DOS interceptan muchas de las interrupciones del hardware común (por ejemplo, el reloj en tiempo real y el controlador del teclado) y del software (por ejemplo, el propio DOS y la API del ratón). Algunos extensores también manejan otras funciones de interrupción comunes, como rutinas de BIOS de video.

Básicamente, un extensor de DOS es como un sistema operativo en miniatura, que maneja gran parte de la funcionalidad del propio sistema operativo subyacente.

Historia de desarrollo

Logotipo del producto DOS / 4G de Tenberry Software

Podría decirse que el extensor 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 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 aplicaciones y juegos para PC, como el exitoso Doom de id Software .

Si bien inicialmente fueron las aplicaciones comerciales ávidas de memoria las que impulsaron el desarrollo de los extensores de DOS, serían los juegos de PC los que realmente las pusieron en el centro de atención. Como resultado del desarrollo de los extensores de DOS, se crearon dos nuevas interfaces de software para atender los muchos conflictos potenciales que podrían surgir de los variados métodos de administración de memoria que ya existían, así como proporcionar una interfaz uniforme para los programas cliente.

La primera de estas interfaces fue la Interfaz de programa de control virtual (VCPI), pero se vio rápidamente eclipsada por la especificación de Interfaz de modo protegido de DOS (DPMI), que surgió del desarrollo de Windows 3.0. Proporcionaron una API a través de la cual un programa extendido podía interactuar con software en modo real, asignar memoria y manejar servicios de interrupción. También proporcionaron un método fácil para que el extensor configurara el conmutador en modo protegido y permitieron que varios programas de modo protegido coexistieran pacíficamente.

Extensores de DOS

  • DOS / 4G y DOS / 4GW y DOS / 16M de Tenberry Software, Inc.
  • 286 | Extensor de DOS y 386 | Extensor de DOS de Phar Lap . Posteriormente reemplazado por TNT Dos Extender.
  • PROT de Al Williams, un extensor DOS de 32 bits publicado en Dr. Dobb's Journal y en dos libros. Este extensor tenía la virtud de ejecutar llamadas DOS y BIOS en modo emulado en lugar de volver al modo real.
  • PMODE y PMODE / W por Thomas Pytel y Charles Sheffold . Este último fue para Watcom C como una alternativa a DOS / 4GW, y fue bastante popular entre los programadores de demoscene.
  • CauseWay era un extensor anteriormente patentado que competía con DOS4G. A partir de 2000 se lanzó como código abierto. Algunos juegos raros como DaggerFall lo usan.
  • DOS / 32 como alternativa a DOS / 4G de Narech K.
  • Extensores Ergo (antes Eclipse, antes AI Architects) OS / 286 y OS / 386, y servidores DPM16 y DPM32
  • 386Power 32-bit DOS Extender 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.
  • HX DOS Extender proporciona compatibilidad limitada con Win32 para permitir que la consola de Windows y algunas aplicaciones GUI de Win32 se ejecuten en DOS. Contiene servidores DPMI de 16 y 32 bits (HDPMI16 / HDPMI32) para usar con programas DOS en modo protegido
  • DosWin32 proporciona compatibilidad limitada con Win32
  • WDosX fue una implementación temprana del soporte limitado de Win32, utilizado 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.
  • CWSDPMI de Charles W. Sandmann, un servidor DPMI para usar con programas DOS DJGPP en modo protegido de 32 bits .
  • QDPMI de Quarterdeck Office Systems , fue 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 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 FTN77 Fortran
  • X32 y X32VM de FlashTek y respaldados como objetivo por los compiladores de Digital Mars
  • BLINKER de Blink Inc versión 3 y superior 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 ++. Ejecutables exclusivos de 'Modo dual' admitidos capaces de ejecutarse en modo real o protegido según el entorno de tiempo de ejecución.
  • EMX

Aplicaciones extendidas de DOS notables

Referencias

enlaces externos