API de DOS


La API de DOS es una API que se originó con 86-DOS y se utiliza en MS-DOS / PC DOS y otros sistemas operativos compatibles con DOS . La mayoría de las llamadas a la API de DOS se invocan mediante la interrupción de software 21h ( INT 21h). Al llamar a INT 21h con un número de subfunción en el registro del procesador AH y otros parámetros en otros registros, se pueden invocar varios servicios de DOS. Estos incluyen el manejo de entrada de teclado, salida de video, acceso a archivos de disco, ejecución de programas, asignación de memoria y varias otras actividades. A finales de la década de 1980, los extensores de DOS junto con la interfaz de modo protegido de DOS(DPMI) permite que los programas se ejecuten en modo protegido de 16 o 32 bits y aún así tengan acceso a la API de DOS.

El API original de DOS en 86-DOS y MS-DOS 1.0 fue diseñado para ser funcionalmente compatible con CP / M . Se accedió a los archivos mediante bloques de control de archivos (FCB). La API de DOS se amplió enormemente en MS-DOS 2.0 con varios conceptos de Unix, incluido el acceso a archivos mediante identificadores de archivos , directorios jerárquicos y control de E / S de dispositivos. [1] En DOS 3.1, se agregó compatibilidad con redireccionador de red . En MS-DOS 3.31, las funciones INT 25h / 26h se mejoraron para admitir discos duros de más de 32 MB. MS-DOS 5 agregó soporte para el uso de bloques de memoria superiores (UMB). Después de MS-DOS 5, la API de DOS no se modificó para las sucesivas versiones independientes de DOS.

En Windows 9x , DOS cargó el sistema en modo protegido y el shell gráfico. Por lo general, se accedía a DOS desde una máquina virtual de DOS (VDM), pero también era posible arrancar directamente en modo real MS-DOS 7.0 sin cargar Windows. La API de DOS se amplió con soporte de internacionalización mejorado y soporte de nombre de archivo largo , aunque el soporte de nombre de archivo largo solo estaba disponible en un VDM. Con Windows 95 OSR2, DOS se actualizó a 7.1, lo que agregó compatibilidad con FAT32 , y se agregaron funciones a la API de DOS para admitir esto. Windows 98 y Windows ME también implementan la API de MS-DOS 7.1, aunque Windows ME se informa como MS-DOS 8.0.

Windows NT y los sistemas basados ​​en él (por ejemplo, Windows XP y Windows Vista ) no están basados ​​en MS-DOS, pero utilizan una máquina virtual , NTVDM , para manejar la API de DOS. NTVDM funciona ejecutando un programa DOS en modo virtual 8086 (una emulación del modo real dentro del modo protegido disponible en 80386 y procesadores superiores). NTVDM es compatible con la API de DOS 5.0. DOSEMU para Linux utiliza un enfoque similar.