LAPI DOS és una API que es va originar amb 86-DOS i s'utilitza en MS-DOS/PC DOS i altres sistemes operatius compatibles amb DOS. La majoria de trucades a l'API DOS s'invoquen mitjançant la interrupció de programari 21h (INT 21h). En cridar INT 21h amb un número de subfunció al registre del processador AH i altres paràmetres en altres registres, es poden invocar diversos serveis DOS. Aquests inclouen la gestió de l'entrada del teclat, la sortida de vídeo, l'accés a fitxers de disc, l'execució del programa, l'assignació de memòria i altres activitats. A finals de la dècada de 1980, els extensors de DOS juntament amb la interfície de mode protegit de DOS (DPMI) permeten que els programes s'executin en mode protegit de 16 o 32 bits i encara tinguin accés a l'API de DOS.
Història de l'API DOS L'API original de DOS en 86-DOS i MS-DOS 1.0 va ser dissenyada per ser compatible funcionalment amb CP/M. Es va accedir als fitxers mitjançant blocs de control de fitxers (FCB). L'API de DOS es va estendre molt a MS-DOS 2.0 amb diversos conceptes Unix, inclòs l'accés a fitxers mitjançant identificadors de fitxers, directoris jeràrquics i control d'E/S del dispositiu. A DOS 3.1, es va afegir el suport del redirector de xarxa. A MS-DOS 3.31, les funcions INT 25h/26h es van millorar per suportar discs durs de més de 32 MB. MS-DOS 5 va afegir suport per utilitzar blocs de memòria superiors (UMB). Després de MS-DOS 5, l'API de DOS no va canviar per a les successives versions independents de DOS.
L'API DOS i Windows A Windows 9x, DOS va carregar el sistema en mode protegit i l'intèrpret d'ordres gràfics. Normalment s'accedia a DOS des d'una màquina DOS virtual (VDM), però també era possible arrencar directament amb MS-DOS 7.0 en mode real sense carregar Windows. L'API de DOS es va ampliar amb suport millorat per a la internacionalització i suport de noms de fitxer llargs, tot i que el suport de noms de fitxer llarg només estava disponible en un VDM. Amb Windows 95 OSR2, DOS es va actualitzar a 7.1, que va afegir suport FAT32, i es van afegir funcions a l'API de DOS per donar-hi suport. Windows 98 i Windows ME també implementen l'API MS-DOS 7.1, tot i que Windows ME s'informa com MS-DOS 8.0.
Windows NT i els sistemes basats en ell (per exemple, Windows XP i Windows Vista) no estan basats en MS-DOS, però utilitzen una màquina virtual, NTVDM, per gestionar l'API DOS. NTVDM funciona executant un programa DOS en mode virtual 8086 (una emulació del mode real dins del mode protegit disponible en processadors 80386 i superiors). NTVDM és compatible amb l'API DOS 5.0. DOSEMU per a Linux utilitza un enfocament similar.
Vectors d'interrupció utilitzats per DOS La següent és la llista de vectors d'interrupció utilitzats pels programes per invocar les funcions de l'API de DOS. Vector d'interrupcióDescripcióVersióNotesFinalitzar el programa1.0+Implementat al nucli DOSAPI principal de DOS1.0+Implementat al nucli DOSAdreça de finalització del programa1.0+Adreça de retorn al programa de trucadesAdreça del controlador Control-C1.0+El controlador predeterminat es troba a l'intèrpret d'ordres (normalment COMMAND.COM)Adreça del gestor d'errors crítics1.0+El controlador predeterminat es troba a l'intèrpret d'ordres (normalment COMMAND.COM)Lectura absoluta del disc1.0+Implementat al nucli DOS, millorat a DOS 3.31 per suportar particions de fins a 2 GBEscriptura absoluta en disc1.0+Implementat al nucli DOS, millorat a DOS 3.31 per suportar particions de fins a 2 GBFinalitzar i romandre resident1.0+Implementat a COMMAND. COM a DOS 1.0, nucli DOS a DOS 2.0+Crida inactiva2.0+Cridat pel nucli de DOS quan s'espera l'entradaSortida ràpida de la consola2.0+Implementat pel controlador de dispositiu de la consola integrat o un controlador de substitució com ANSI. SYSNetworking i secció crítica3.0+Cridat pel nucli de DOS per interaccionar amb el programari de xarxaSense utilitzarSense utilitzarSense utilitzarTorna a carregar el transitori2.0+Implementat a COMMAND.COMMultiplex3.0+Implementat al nucli de DOS i diversos programes (PRINT, MSCDEX, DOSKEY, APPEND, etc.) depenent del número de subfunció
Referències
Categoria:Llenguatges de programació