En informática, la Interfaz de Programa de Control Virtual ( VCPI ) es una especificación publicada en 1989 por Phar Lap Software que permite que un programa DOS se ejecute en modo protegido , otorgando acceso a muchas características del procesador que no están disponibles en modo real . Fue suplantada por la Interfaz de Modo Protegido DOS (DPMI) poco después de su introducción, debido en gran parte a la incapacidad de VCPI para funcionar en el modo protegido de Windows 3.0 .
Desarrollado desde 1987 en cooperación con Quarterdeck Office Systems y con el apoyo de AI Architects, Lotus Development Corp. , Quadram , Qualitas y Rational Systems , VCPI es proporcionado por un administrador de memoria expandida en DOS (por ejemplo, CEMM , QEMM , más tarde EMM386 ) y permite que los extensores DOS de modo protegido 80386 coexistan con los emuladores de memoria expandida 80386 EMS. Fue eclipsado por DPMI, sobre todo porque no era compatible con los programas DOS ejecutados en el modo protegido nativo de Windows 3.0 (llamado modo mejorado 386 ) y porque VCPI ejecuta programas en Ring 0, lo que anuló el propósito de la protección x86. Tampoco funcionó con OS/2 2.0 y posteriores. VCPI solo era compatible con el modo real de Windows 3.0, [1] algunos programas podían ejecutarse en el modo estándar de Windows 3.x. [2] [3] [4] El modo estándar (modo 286) Windows 3.1 (pero no 3.0) era compatible con VCPI (era un cliente VCPI). [5] La versión anterior de Windows/386 2.1 no era compatible con los extensores DOS en absoluto. El sistema DOS de Windows NT tampoco era compatible con VCPI. [6]
VCPI también tenía un alcance comparativamente limitado, ya que permitía que un programa DOS en modo protegido se ejecutara solo cuando el programa se iniciaba desde un DOS que ya se estaba ejecutando dentro de una tarea de modo 8086 virtual . (Esto se lograba normalmente a través de un administrador de memoria que funcionaba como un programa de control [de modo] virtual para el procesador). Debido a que el modo 8086 virtual aísla los programas del hardware, no es posible que un programa cambie al modo protegido sin algún soporte del programa de control.
Entre 1989 y febrero de 1990 [7] se propuso una especificación alternativa bajo el nombre de Extended VCPI [8] [9] [10] ( XVCPI [8] [9] [11] ) por varias empresas, incluyendo Software Focus Group de Intel , [7] [9] [10] Lotus , [7] Digital Research , [7] Interactive Systems , Viewport International y otras para abordar algunas de las deficiencias de VCPI y explotar mejor la gestión de memoria y las capacidades multitarea del procesador 386. [10] Fue utilizado por un pequeño número de productos, incluyendo sistemas operativos como Interactive Unix y Concurrent DOS 386. [ nb 1] Desde febrero de 1990 [7] estos esfuerzos finalmente sucumbieron al desarrollo (paralelo) y publicación de la especificación DPMI en mayo de 1990, que abordaba problemas similares, pero era compatible con la implementación de Microsoft Windows 3.0 que se lanzaría el mismo año. En febrero de 1991, la Multiuser DOS Federation (MDOS), una iniciativa formada en julio de 1990, [12] emitió una declaración respecto de su apoyo a DPMI. [7]
INT 67h, AH=DEh
AX=DE40h; INT 67h;
AX=DE43h; INT 67h;
Muchas aplicaciones basadas en MS-DOS utilizan la especificación de Interfaz de programa de control virtual (VCPI) […] Estos programas no funcionan con Microsoft Windows versión 3.0 en modo mejorado 386. Funcionan en Windows en modo real y pueden funcionar en modo estándar.[ enlace muerto ]
Estos programas utilizan VCPI […] para acceder a la memoria extendida que entra en conflicto con Windows en modo protegido (estándar y mejorado).
[…] una aplicación basada en MS-DOS que utiliza memoria extendida probablemente no se ejecutará en el modo estándar de MS-DOS.
Es posible ejecutar algunas aplicaciones VCPI en modo estándar.
El modo estándar de Windows 3.1 es compatible con VCPI; el modo estándar de Windows 3.0 no lo es.
VCPI […] no es compatible con Windows NT.
[…] Los creadores de VCPI eran muy conscientes de sus limitaciones y ya estaban trabajando arduamente en una especificación de segunda generación llamada
Extended VCPI
(XVCPI), cuando
Microsoft
irrumpió en la escena con las versiones de prueba beta de
Windows 3.0
y su
DPMI
. Durante unos meses pareció que el incipiente mercado
de extensores de DOS
se fragmentaría en dos direcciones mutuamente excluyentes […] Microsoft entregó el control de la especificación DPMI a un comité de la industria con membresía abierta, y los patrocinadores del esfuerzo XVCPI decidieron unir fuerzas detrás de DPMI. […] Microsoft acordó eliminar las partes de DPMI que cruzaron al territorio de los extensores de DOS, específicamente, el soporte directo de las interrupciones de DOS y
ROM BIOS
en
modo protegido
. En consecuencia, DPMI, versión 0.9, la primera versión pública, publicada por el Comité DPMI en mayo de 1990, define únicamente las funciones de bajo nivel o de bloques de construcción […] Naturalmente, la interfaz de nivel superior o de extensión DOS de Windows 3.0 todavía existe, pero ha retrocedido a la zona de penumbra de la funcionalidad no documentada. No documentada, pero difícilmente inutilizable […]
El prototipo inicial de DPMI fue desarrollado por Microsoft para la versión 3.0 de Windows, con aportes de Lotus Corporation y Rational Systems, como parte de un esfuerzo general para mejorar el rendimiento de Windows al permitir que el núcleo de Windows se ejecute en memoria extendida. En paralelo, Intel estaba trabajando con fabricantes de entornos multitarea, emuladores EMS y extensores de DOS para garantizar que una especificación VCPI extendida pudiera utilizar por completo las características de virtualización y protección del 80386. En febrero de 1990, las partes implicadas en las actividades antes mencionadas acordaron formar el Comité DPMI y formular un estándar para toda la industria para aplicaciones DOS en modo protegido. El Comité publicó la primera Especificación DPMI pública, Versión 0.9, en mayo de 1990.
[…] Para 1990, el estándar VCPI había sido adoptado por prácticamente todos los programas basados en DOS que eran específicos para CPU 386 y 486, excepto los programas de
Microsoft
. El comité VCPI estaba trabajando en una actualización a VCPI que se habría llamado XVCPI (X para Extended) cuando Microsoft lanzó copias beta de
Windows 3.0
[…] Incluido en Windows 3 está el DPMI, o
DOS Protected Mode Interface
, una solución más general para ejecutar aplicaciones en modo protegido, DOS-extendido y modo real simultáneamente. Al principio, DPMI parecía un competidor de XVCPI y hubo amenazas de demandas judiciales y caos en el campo de los extensores DOS. Cuando Microsoft entregó el control de DPMI a un comité de la industria con membresía abierta, los partidarios de XVCPI se unieron al comité, convirtiendo a DPMI en un estándar de la industria de facto. […] La versión 0.9 de DPMI apareció en Windows 3.0 […]