Microsoft Disk Operating System — Änderungen 9233 → 9234

Zeile 15: Zeile 15:
  
 
Die ursprüngiche Codebasis von [[Windows]] (Windows 1.x bis Windows ME) waren lediglich ein grafischer Betriebssystemaufsatz für MS-DOS, auch wenn MS-DOS seit Windows 95 (MS-DOS 7.0) nicht mehr einzeln verkauft wurde. Beim NT-Kernel, der von allen neueren Windows-Versionen benutzt wird, änderte sich das aber: Der [[NT]]-[[Kernel]] wurde komplett neu entwickelt und konnte DOS-Anwendungen nicht mehr oder nur mit Problemen starten. Ab diesem Zeitpunkt wurden immer häufiger Emulatoren wie z.B. DOS-Box eingesetzt, um diese Programme dennoch starten zu können.
 
Die ursprüngiche Codebasis von [[Windows]] (Windows 1.x bis Windows ME) waren lediglich ein grafischer Betriebssystemaufsatz für MS-DOS, auch wenn MS-DOS seit Windows 95 (MS-DOS 7.0) nicht mehr einzeln verkauft wurde. Beim NT-Kernel, der von allen neueren Windows-Versionen benutzt wird, änderte sich das aber: Der [[NT]]-[[Kernel]] wurde komplett neu entwickelt und konnte DOS-Anwendungen nicht mehr oder nur mit Problemen starten. Ab diesem Zeitpunkt wurden immer häufiger Emulatoren wie z.B. DOS-Box eingesetzt, um diese Programme dennoch starten zu können.
 +
 +
==Treiber und TSR-Programme==
 +
DOS ist zwar ein Single-Tasking-System, aber dennoch muss neben den aktuell laufenden Programm weiterer Code im Speicher liegen - neben dem [[Kernel]] selbst sind das vor allem zusätzliche Treiber. DOS kennt dazu das Konzept TSR, ''Terminate and Stay Resident''. Ein TSR-Programm beendet sich anders als ein normales Programm über einen besonderen [[Systemaufruf]], der einen Teil des Programms auch nach dem Programmende im Speicher belässt.
 +
 +
Der residente Teil des Programms bleibt anschließend solange inaktiv, bis er von anderer Stelle aufgerufen wird. In der Regel geschieht das dadurch, dass das TSR-Programm einen [[IVT]]-Eintrag auf seinen residenten Teil umbiegt, so dass es bei einem bestimmten Interruptaufruf zum Zug kommt. Das kann ein Hardwareinterrupt sein oder aber auch ein Softwareinterrupt, der die API des TSR-Programms anderen Anwendungen zur Verfügung stellt - Hardwaretreiber benötigen oft beides.
 +
 +
Es ist auch nicht unüblich, BIOS- oder DOS-Funktionen zu "überladen", indem der passende IVT-Eintrag auf eine Funktion des TSR-Programms geändert wird. Besonders in diesen Fällen wird das TSR-Programm sich den alten IVT-Eintrag merken und den ursprünglichen Interrupthandler aufrufen, sobald es seine Aufgabe erledigt hat (oder wenn es nur eine Unterfunktion des Interrupts ändert). Auf diese Weise können ganze Ketten von Interrupthandlern zu einem einzigen Interrupt entstehen.
  
 
==Zugriff auf hohen Speicher==
 
==Zugriff auf hohen Speicher==