IO.SYS

IO.SYS ist eine Systemdatei in den Betriebssystemen MS-DOS, DCP und Windows 9x. Unter IBM PC DOS und DR DOS heißt die entsprechende Datei IBMBIO.COM. Bei FreeDOS wird diese Funktionalität durch eine Datei bereitgestellt, die meist den Namen KERNEL.SYS trägt. IO.SYS ist ein Teil des Kernels und wird zum Booten des Betriebssystems benötigt. Es handelt sich um eine Datei, die im Normalfall schreibgeschützt und nicht anzeigt wird, da sie unsichtbar oder „versteckt“ ist. Zusammen mit MSDOS.SYS (MS-DOS) bildet sie die Kernkomponente des Betriebssystems DOS. Bei IBM PC DOS und DR DOS heißen die entsprechenden DOS-Dateien IBMBIO.COM und IBMDOS.SYS. Prinzipiell reichen diese beiden Dateien und ein geladenes Programm, wie COMMAND.COM, um ein funktionstüchtiges DOS zu haben, sofern man auf weitere Treiber wie Maus-, Tastaturlayout- oder CD-ROM-Treiber verzichtet.

Das Setup von Windows 9x extrahiert unter anderem WINBOOT.SYS[1] aus den Cabinet-Archiven auf dem Installationsmedium und benennt diese Datei gegen Ende des Prozesses in IO.SYS um.

Während des Bootvorgangs wird der Bootsektor vom Bootdatenträger in den Speicher eingelesen und ausgeführt. Der DOS-Bootsektor lädt die ersten drei Sektoren der Datei IO.SYS / IBMBIO.COM.

Zu diesem Zeitpunkt ist der FAT-Dateisystem-Treiber noch nicht geladen, weshalb diese Datei erstens ganz am Anfang des Datenbereichs des Datenträgers, zweitens unfragmentiert und drittens die erste Datei im Hauptverzeichnis sein muss. Ab DOS 4.0 darf die Datei bis auf die ersten drei Sektoren fragmentiert sein. Mit DOS 5.0 darf die Datei auf einem beliebigen Ort des Datenträgers gespeichert sein, wobei hier auch die ersten drei Sektoren zusammenhängend (nicht fragmentiert) sein müssen;[2] die entsprechenden Angaben sind im Bootsektor hinterlegt.

Nachdem die ersten drei Sektoren der Datei eingelesen und ausgeführt wurden, wird der Rest der Datei eingelesen und es werden folgende Schritte durchgeführt:

  • es werden Standardgerätetreiber geladen und verfügbar gemacht
  • der DOS-Kernel MSDOS.SYS (bei IBM: IBMDOS.COM) wird geladen und initialisiert (in Windows 9x ist dieser in IO.SYS integriert). Ab diesem Zeitpunkt ist der Dateisystemtreiber geladen und der normale Datenträgerzugriff ist gewährleistet.
  • Bei Windows 9x wird die Konfigurationsdatei (WINBOOT.INI[3] bzw. MSDOS.SYS[4]) des DOS-Kernels verarbeitet. Enthält diese im Options-Abschnitt keinen Eintrag BootMulti=0 und sind die relevanten Systemdateien einer vorherigen DOS-Version (MS-DOS, PC-DOS 5 oder 6) vorhanden, kann auch das alte System gestartet werden („Dualboot“-Option[5]). Bei Auswahl dieser Option werden zuerst die aktuellen relevanten DOS-Dateien umbenannt, indem die Dateiendung durch W40 ersetzt wird. Eine Ausnahme bildet die Datei IO.SYS, die zu WINBOOT.SYS (Windows 95)[6] / JO.SYS (Windows 98/ME)[7] umbenannt wird. Dann erhalten die alten DOS-Systemdateien mit der Dateiendung DOS wieder ihren ursprünglichen Namen, der alte DOS-Kernel wird geladen und die Verarbeitung wird wie oben beschrieben wieder aufgenommen.
  • die CONFIG.SYS-Datei wird verarbeitet (ab DOS 2.0) außer im abgesicherten Modus“. Während des Bootvorgangs, erkennbar an einer Meldung wie „Windows 95 wird gestartet“, kann normalerweise per Drücken der Funktionstaste F5 direkt in diesen Modus gewechselt werden. Oder im Startmenü, welches typischerweise beim Betätigen von F8 erscheint, lässt sich dieser Modus auswählen. Er wird auch gestartet, wenn MSDOS.SYS im Options-Abschnitt den Eintrag BootSafe=1 enthält.
  • Sofern in CONFIG.SYS kein anderer Kommandozeileninterpreter oder ein anderes ausführbares Programm per shell-Direktive[8] definiert worden ist, wird die COMMAND.COM-Datei, die sich im Hauptverzeichnis befindet, gestartet und somit der MS-DOS-Kommandozeileninterpreter geladen. Dieser führt dann normalerweise AUTOEXEC.BAT aus.
  • Normalerweise wird beim Starten von Windows 9x ein Startlogo angezeigt, wenn dies nicht durch den Eintrag Logo=0 in der Konfigurationsdatei unterbunden wird. IO.SYS generiert dieses anhand der Grafikdatei LOGO.SYS. Fehlt diese, so wird das in IO.SYS enthaltene Logo benutzt.

Weblinks

Literatur

  • Harald Milz: Der Interrupt 21h beim DOS-Bootvorgang In: c’t 7/1992, S. 198ff.
  • Peter Siering: Windows 95: altes DOS für neues Windows In: c’t 5/1996, S. 284

Einzelnachweise

  1. Less Conventional Memory in European Versions of Windows 98. (Nicht mehr online verfügbar.) Microsoft, archiviert vom Original am 5. Oktober 2008; (englisch).
  2. SYS.COM Requirements in MS-DOS versions 2.0-6.0. (Nicht mehr online verfügbar.) Microsoft, archiviert vom Original am 4. März 2007; (englisch).
  3. How to Perform Clean-Boot Troubleshooting for Windows 98. (Nicht mehr online verfügbar.) Microsoft, archiviert vom Original am 20. Oktober 2004; (englisch).
  4. Contents of the Windows Msdos.sys File. (Nicht mehr online verfügbar.) Microsoft, archiviert vom Original am 20. Oktober 2004; (englisch).
  5. Requirements to Boot Previous Operating System. (Nicht mehr online verfügbar.) Microsoft, archiviert vom Original am 4. März 2007; (englisch).
  6. Klaus Dembowski: BIOS und Troubleshooting: kompakt, komplett, kompetent. Markt+Technik, München 2004, ISBN 3-8272-6547-9, S. 36.
  7. Err Msg: The Following File Is Missing or Corrupt... (Nicht mehr online verfügbar.) Microsoft, archiviert vom Original am 26. Februar 2007; (englisch).
  8. MS-DOS Config.sys Befehle unter Windows 98. (Nicht mehr online verfügbar.) Microsoft, 27. Dezember 2004, archiviert vom Original am 25. Oktober 2010;.