Servicios de modo protegido de DOS - DOS Protected Mode Services

Los servicios de modo protegido de DOS ( DPMS ) son un conjunto de servicios de administración de memoria de DOS extendidos para permitir que los controladores de DOS habilitados para DPMS se carguen y ejecuten en memoria extendida y en modo protegido .

Al no ser un extensor de DOS en sí mismo, DPMS es un conjunto mínimo de servicios de administración de memoria de DOS extendidos para permitir extensiones de sistema residente de DOS ( RSX ) ligeramente modificadas , como controladores de dispositivo o TSR (como los llamados clientes DPMS ) para reubicarse en la memoria extendida y se ejecuta en modo protegido de 16 o 32 bits y deja solo un pequeño fragmento en la memoria convencional como interfaz para comunicarse con el entorno DOS convencional. Los clientes DPMS lo hacen a través de los servicios DPMS proporcionados por un servidor DPMS previamente cargado . El tamaño necesario del stub restante depende del tipo de controlador, pero a menudo se puede reducir a unos pocos cientos de bytes solo para el encabezado, incluso para controladores complejos.

Al ejecutar el controlador en la memoria extendida y liberar la memoria convencional, DPMS no solo permite que los controladores muy grandes se carguen y aprovechen la memoria disponible, sino que también deja más memoria disponible para que carguen los controladores DOS normales o las aplicaciones DOS no extendidas. ejecutar dentro de las limitaciones de espacio del área de memoria convencional. Esto también ayudará a aumentar la cantidad de recursos del sistema gratuitos en Windows. Proporcionar interfaces unificadas para que el software asigne y use memoria en modo protegido sin tener que tunelizar todas las solicitudes a través de DOS en modo real, DPMS al mismo tiempo puede ayudar a mejorar el rendimiento del sistema también.

DPMS

DPMS fue desarrollado originalmente por Novell 's Digital Research GmbH, Alemania, en 1992. Es compatible con cualquier DOS y puede coexistir con administradores de memoria y extensores DOS como DPMI , VCPI , etc. La API DPMS es reentrante y compatible con multitarea como como el multitarea DR-DOS o  DESQview . Al proporcionar un sistema incorporado en DPMS VxD -Driver, también es compatible con Windows 3.x , y Windows 9x .

El servidor DPMS debe cargarse después de los administradores de memoria (y antes de que los controladores lo utilicen), ya sea como un controlador de dispositivo "DPMSXXX0" por instrucción DEVICE en CONFIG.SYS (método preferido), o más tarde como un TSR. Para fines de depuración (por ejemplo, junto con WDEB386.EXE de Microsoft), las versiones SDK de EMM386.EXE 3.00 pueden proporcionar alternativamente servicios DPMS a través de EMM386 [/] DPMS [= ON] a través de un módulo DPMS.SYS integrado, y luego ejecutar en el anillo 1 en lugar del anillo 0 , como con la versión independiente de DPMS.EXE. La opción DPMS [/] NOCR3 permite la depuración en versiones anteriores de NuMega   SoftICE .

Dependiendo de las circunstancias, el servidor ocupará entre 700 y 1400 bytes de memoria convencional por sí mismo y no se puede cargar en UMB . El servidor DPMS requerirá al menos una máquina 286 para funcionar, pero dado que el software habilitado para DPMS se puede diseñar de manera que continúe ejecutándose en la memoria convencional si los servicios DPMS no están disponibles, el software no necesita renunciar a la compatibilidad. con sistemas que no proporcionan servicios DPMS, ya sea porque DPMS no está cargado o no está disponible (por ejemplo, en procesadores anteriores a 286). En las CPU 386 (y superiores), el servidor DPMS no solo proporcionará un conjunto de servicios de 16 bits, sino también un conjunto de servicios de 32 bits. Incluso en estas máquinas, se puede forzar a DPMS a cargar solo sus servicios de 16 bits utilizando la  opción DPMS [/] 2 [86] .

DPMS asignará memoria a través de VCPI o XMS , según el tipo de memoria disponible. VCPI normalmente también llamará a XMS. Las versiones más recientes de DPMS pueden ser forzadas a usar una de estas interfaces usando la opción DPMS [/] MEM = XMS | VCPI . En algunas versiones, es posible especificar la cantidad máxima de memoria extendida que se asignará con DPMS [/] MB = nnnn .

Los servicios de registro de DPMS pueden desactivarse o reactivarse en cualquier momento después de la carga utilizando el comando DPMS [/] OFF o DPMS [/] ON ; sin embargo, esto solo afectará a los nuevos controladores cargados, no a los que ya se estén ejecutando y utilizando DPMS.

Básicamente, hay tres revisiones de la especificación DPMS, DPMS beta, DPMS 1.0 (envío original de Novell DOS 7) y DPMS 1.1 (desde la actualización de marzo de 1994). La especificación 1.0 continuó siendo compatible con la especificación beta, mientras que la implementación 1.1 (y superior) no lo hace.

DPMS vio su debut en las versiones beta de DR DOS "Pantera" en octubre de 1992, que, además de otros, se incluye con versiones compatibles con DPMS del Súper PC-Kwik caché de disco, AddStor 's SuperStor de compresión de disco, y de depuración como 'stealth' depurador del sistema en modo protegido. Si bien DPMS ya se llamaba "Servicios en modo protegido de DOS" en este momento, el controlador DPMS.EXE / DPMS.SYS 0.10 aún mostraría mensajes de inicio de "Servidor de modo protegido de DOS". Los servicios de tarjeta PCMCIA CS en PalmDOS también estaban habilitados para DPMS. Los productos minoristas posteriores como Novell DOS  7 y Personal NetWare  1.0 en diciembre de 1993 también incluían muchos controladores habilitados para DPMS, como el componente de seguimiento de eliminación de archivos DELWATCH  2.00, el caché de disco adaptable NWCACHE  1.00, NWCDEX  1.00, una extensión de redirección de CD-ROM , el servidor de red punto a punto SERVER 1.20 y STACKER  3.12, el componente de compresión de disco. DPMS también fue proporcionado por Caldera OpenDOS  7.01, DR-DOS  7.02 y 7.03, que, al menos en algunas versiones, agregaron problemas habilitados para DPMS de DRFAT32 (una extensión de redirector FAT32 ), LONGNAME ( soporte de nombre de archivo largo VFAT ) y VDISK ( RAM virtual disco ). DR-DOS 7.03 contiene la última versión de DPMS 1.44.

DPMS también fue proporcionado por IBM 's PC DOS  7.0 y PC DOS 2000, que vino con una versión anterior del servidor de Novell DPMS y una versión compatible con DPMS de Stacker  4.02 incluido.

Stac Electronics también produjo una versión independiente habilitada para DPMS de Stacker 4.

Super PC-Kwik 6.xx de PC-Kwik Corporation para DOS y su Power Pak 4.0 para Windows también incluyeron el caché de disco habilitado para DPMS SUPERPCK en 1994.

Se  sabe que algunos conjuntos de controladores DOS de terceros, como los controladores Eicon Diva o High Soft Tech GmbH (HST) Saphir CAPI ISDN o las pilas de controladores PCMCIA / PCCard, como Award 's CardWare 2.5 (o superior), también son compatibles con DPMS. Después de la adquisición de Award por parte de Phoenix , sus controladores PCMCIA 6.0 (y superiores) se vendieron a  UniCore . CardWare 6.0 y 7.0 estaban disponibles a través de APSoft , Socket Services (SSxxxxxx.EXE), Card Services (PCCS.EXE), PC Enable (PCENABLE.EXE) y controladores de tarjetas (PCDISK.EXE, PCSRAM.EXE, PCATA.EXE y PCFLASH.EXE) podría utilizar DPMS. A través de la integración de LXE de la pila en sus robustas PC DOS, DPMS también se abrió camino en la suite Datalight ROM-DOS .

En 1999, Funk Software introdujo una versión habilitada para DPMS de su software de control remoto Proxy Host, permitiendo que PHOST ocupe solo 9 KB de memoria convencional. El remota telefónica de software de cliente para el servidor de acceso remoto 833 por Remoto Perle Systems podría aprovechar DPMS para el mismo propósito, al menos desde 2002. El SciTech Software 's Kendall Bennett investigó la posibilidad de añadir soporte DPMS a su conductor DOS alrededor de baño 1999 también, pero esto nunca se publicó.

Bret Johnson desarrolló Print Screen to file (PRTSCR) habilitado para DPMS y controladores USB para DOS.

ENCUBIERTO

En 1993, el administrador de memoria NETROOM  3 de Helix Software Company introdujo una función muy similar al DPMS de Novell: CLOAKING se utilizó para reubicar los controladores de Helix y de terceros en la memoria extendida y ejecutarlos en el anillo 0. Proporcionando sus funciones como una extensión del interfaz EMS y XMS en modo real , sus servicios en modo protegido están disponibles en INT 2Ch . Estaba disponible un kit de desarrollador de CLOAKING que incluía un depurador de NuMega SoftICE . El controlador encubierto o las interrupciones de enganche del software TSR tenían que dejar un pequeño apéndice de 11 bytes en la memoria convencional que invocaría al servidor CLOAKING para pasar la ejecución a la parte del modo protegido del software del controlador.

CLOAKING incluye soporte para un funcionamiento perfecto en Windows 3.xy Windows 95, proporcionando servicios INT 2Ch compatibles a controladores en modo protegido a través de un VxD de Windows, así como una depuración perfecta a través del inicio de Windows utilizando SoftICE. Esta capacidad de transición entre entornos de host en modo protegido también es objeto de una patente.

CLOAKING se integra y funciona con los programas de control de memoria virtual existentes, sin cambiar las tablas de descriptores ni restablecer los registros de control. Esto permite un procesamiento de interrupciones más rápido, según la documentación de Helix.

A diferencia del DPMS de Novell, el controlador CLOAKING de Helix se puede cargar alto, pero no se ejecuta en 286 máquinas, aunque admite servicios de 16 bits y estructura de programa en un 386. Además, se ha descubierto que CLOAKING 2.01 es incompatible con el Multitarea DR-DOS ( EMM386 / MULTI [= ON] + TASKMGR ).

Si no hay un servidor DPMS presente cuando se carga CLOAKING.EXE, CLOAKING, por defecto, también proporcionará un servidor DPMS enmascarado con un aumento de solo 100 bytes de su huella de memoria DOS. Sin embargo, también puede coexistir con un servidor DPMS cargado antes de CLOAKING. La carga de su servidor DPMS integrado se puede suprimir mediante el parámetro CLOAKING / NODPMS . Los controladores habilitados para DPMS funcionarán tanto con DPMS como con CLOAKING, pero no al revés.

En NETROOM v3.04, distribución de disco suplementario con fecha "2-10-95", el archivo de recursos protegido por contraseña NR.ZIP (679,271 KB) tiene un archivo sin documentar; DPMSCLK.EXE (13.904 KB), "Servidor DPMS encubierto v3.03". El archivo no revela soporte para ninguna opción o parámetro cuando se consulta usando la opción de ayuda estándar, DPMSCLK /? . El programa NETROOM 3 SETUP.EXE no descomprime este archivo y no se instala. No hay indicios de la existencia del archivo en el manual del software NETROOM 3 o en la documentación del programa en el disco y en los archivos legibles por humanos. Esta versión final de NETROOM tal como se publicó básicamente ignoró DPMS.

Helix licencia una versión del Software Award 's BIOS y desarrollado envuelta sistema y vídeo BIOS que ejecutó en su totalidad en modo protegido, reduciendo su modo real huella de memoria hasta 8 KB (en lugar de 96 KB) y utilizan estos como BIOS en tiempo de ejecución en junto con su administrador de memoria NETROOM .

Como parte de su Multimedia encubrimiento del producto, Helix proporcionó versiones de envuelta Logitech RATÓN 6,33 controlador 's, de Microsoft MSCDEX , y una caché de disco de cosecha para reemplazar de Microsoft SmartDrive  conductores.

También había un producto llamado Multimedia Stacker que consistía en Stac's DPMS-enabled Stacker 4.01 con el conjunto anterior de utilidades de DOS encubiertas de Helix.

El controlador del mouse Logitech DOS desde MouseWare 6.50 también se habilitó para aprovechar el CLOAKING, reduciendo así la huella de memoria del controlador del mouse visible para las aplicaciones DOS de 27 KB a 1 KB.

CLOAKING también se otorgó a Symantec para su suite de utilidades, a Corel para sus productos CD Creator y Corel SCSI , ya SMC Networks para sus controladores Ethernet.

La utilidad DPMS de Novell no se puede usar para deshabilitar temporalmente DPMS con un comando DPMS [/] OFF si esos servicios DPMS son proporcionados por CLOAKING en lugar de DPMS mismo, porque la implementación de Helix no solo no permitirá que los nuevos controladores se registren con DPMS, sino que cambiarán completamente desactiva los servicios DPMS incluso para los controladores ya cargados, lo que provoca un bloqueo del sistema.

NIOS

En 1993, Novell había anunciado planes para convertir sus utilidades de administración de estaciones de trabajo residentes, así como sus pilas de controladores de red DOS (shells, redirectores y solicitantes) para usar DPMS, sin embargo, solo se modificó el componente del servidor Personal NetWare para aprovecharlo.

Anunciado en 1993, Novell introdujo un nuevo cliente NetWare para DOS / Windows de 32 bits ( Cliente 32 ) basado en ODI32 / NIOS en 1996, reemplazando al antiguo cliente de 16 bits basado en ODI / VLM . El cliente NIOS ( NetWare I / O Subsystem ) para DOS y Windows utilizó técnicas muy similares a DPMS o Cloaking para reubicar y ejecutar el código de los NLM ( módulos cargables NetWare ) cargados en modo protegido y memoria extendida para reducir la memoria convencional. tamaño de la pila de red hasta aproximadamente 2 a 5 KB.

NIOS no requirió ni usó DPMS o Cloaking directamente, y no proporcionó una interfaz genérica que pudiera ser utilizada por módulos que no sean NLM, sin embargo, ciertamente se inspiró en la tecnología DPMS y puede coexistir con ambos.

Mientras que Personal NetWare de Novell se publicó sin modificaciones como parte de la suite DR-DOS por sus nuevos propietarios Caldera , Lineo y DeviceLogics hasta 2018, Personal NetWare se había abandonado desde 1995 dentro de Novell. Esto llevó a la situación de que Novell nunca publicó un controlador PNW.NLM para admitir el protocolo Personal NetWare bajo la nueva pila ODI32 / NIOS de 32 bits, de modo que los usuarios de Personal NetWare, que ya podían aprovechar las capacidades DPMS del módulo de servidor PNW , estaban obligados a seguir utilizando el cliente de 16 bits ODI / VLM que consume memoria con su controlador de protocolo PNW.VLM .

Ver también

Notas

Referencias

Otras lecturas

enlaces externos