API de DOS


La API de DOS es una API que se originó con 86-DOS y se usa 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 fines de la década de 1980, los extensores de DOS junto con la interfaz de modo protegido de DOS(DPMI) permiten que los programas se ejecuten en modo protegido de 16 bits o 32 bits y aún tengan acceso a la API de DOS.

La API de DOS original en 86-DOS y MS-DOS 1.0 fue diseñada 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ó en gran medida 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 el redirector 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 usar 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 DOS virtual (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, 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 a sí mismo 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, sino que 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.