Allgemeines 22.066 Themen, 149.998 Beiträge

Wie läuft eigentlich ganau der Bootvorgang bei Win9x/ME/2k/Xp ab

Christoph Maus / 5 Antworten / Baumansicht Nickles

s.o.

thx!

cm

bei Antwort benachrichtigen
Andreas42 Christoph Maus „Wie läuft eigentlich ganau der Bootvorgang bei Win9x/ME/2k/Xp ab“
Optionen

Hi!

Wie ganau darf's denn sein?

OK, fangen wir bei Adam und Eva an....

- Druck auf Start-Knopf (Powerschalter)
Dabei wird die CPU und der ganze Rest elektrisch zurückgesetzt. (Was da genau abläuft, weiss ich auch nicht genau).
Irgendwann ist die Hardware-Initialisierung abgeschlossen und die CPU führt ein Festgelegtes Stück Programmcode aus: das ist die Bootroutine im BIOS.

- Bootroutine im BIOS
Die Routine initialisiert den Rechner (wie ganeu, ist hier eigentlich egal). Dabei werden die Einstellungen des BIOS-Setup ausgwertet und verschiedene Routinen für die weiterführende Hardwareinitalisierung ausgeführt (z.B. wird eine Bootroutine im BIOS der Grafikkarte aufgerufen, der Arbeitsspeicher getestet und der IDE-Kontroller nach angeschlossenen Geräten gescannt).
Irgendwann ist dieser Teil abgeschlossen. Die Bootroutine untersucht nun in der im BIOS festgelegten Reihenfolge, von welchem Gerät ein Betriebssystem gebootet werden soll (das kann ja von Diskette, Festplatte oder CD erfolgen). Was beim Booten von CD abläuft, weiss ich nicht genau, deshlab gehts hier mit dem Bootn von Diskette oder Festplatte weiter. ;-)
In diesem fall wird der erste Sektor des Startgerätes geladen und dort eine Bootroutinen gestartet. Bei Disketten ist das dann der Bootsektor des Betriebssystems, bei Platten ist der erste Sektor der MasterBootRecord (MBR). Ich mache mit dem Booten von Platte weiter. Er enthält ebenfalls eine Bootroutine: den Bootloader. (ich mache mit dem Booten von Platte weiter.)

- Bootloader im MBR
Der Bootloader wird gestartet. Er muss dann ersteinmal feststellen, wie die Plattze partitioniert ist. Die Info darüber befindet sich in der Partitionstabelle, die ebenfalls im MBR gespeichert ist (und ja mitgeladen wurde). Der Bootloader sucht nun die aktive Partition in der Partitionstabelle. Von dieser aktiven Partition wird der erste Sektor bestimmt (diese Info steht ebenfalls in der Partitinstabelle) und dann dieser Sektor geladen.
bei diesem Sektor handelt es sich um den Bootsketor des Betriebssystems.

- Der Bootsektor
Im Bootsektor ist dann die Bootroutine des Betriebssystems gespeichert. Diese Routine wird vom Bootloader des MBRs aufgerufen.
Die Betriebssystem-Bootroutine sucht nun die Startdateien des Betriebssystems. Im Fall von Win95/98/ME ist das die Datei IO.SYS. Bei mSDOS gehörte noch die Datei MSDOS.SYS dazu (bei Win9x/ME enthält diese nur Bootoptionen; sie ist dort also eine Konfigurationsdatei).
IO.SYS enthält einen Bootcode, der die Konfigurationsdatei CONFIG.SYS auswertet und die dort enthaltenen Einstellung auswertet und die aufgeführten Treiber startet.
Bei MSDOS wurde danach der Kommandoprozessor COMMAND.COM geladen.
Ich vermute, dass dies bei Win9x/ME noch genauso ist. Nach dem Laden der COMMAND.COM wird die Batchdatei AUTOEXEC.BAT ausgeführt.
Bei MSDOS war damit das Starten des Betriebssystems abgeschlossen. Wollte man Windows 3.x starten, dann musste man das manuell machen. Die Datei, die dann Windows "bootete" ist WIN.COM.

Die WIN.COM gibt es bei Win95/98 immer noch. Sie muss wohl automatisch gestartet werden. ;-)

Ich vermute, dass der Ablauf bei WinME vergleichbar ist, nur werden hier die Dateien CONFIG.SYS und AUTOEXEC.BAT (AFAIK) ignoriert.

- Starten von Windows
So, hier verlassen mich dann meine Detailkenntnisse. Ich kenne den Ablauf nur sehr grob:
Die WIN.COM muss die notwendigen Betriebssystem-Kerndateien laden (dazu gehört u.a. die Kernel32.dll). Nötig sind auch das Laden des Speichermanagers (AFAIK VMM32.VXD).
In dieser Ecke muss dann bereits die Registry ausgwertet werden, da dort viel Info zur vorhandenen Hardware und zur Treiberinstallation abgelegt ist.
Zwangsweise müssen die jetzt gestartet werden. Die wichtigsten dürften der IDE-Treiber, der Grafikkarten-Treiber sein.
An dieeser Stelle sollte dann beim Booten auch das Umschalten vom 16Bit-Realmode in den 32Bit-Modus erfolgen. (Das BIOS und das unter Win9x/ME liegende "MSDOS7.x" laufen im 16Bit-Realmode.)
Natürlich muss beim laden der Treiber auch die IRQ-Zuweisung und Steuerung von Windows aktiviert werden.
Das geht dann eine ganze Zeit soeiter, bis Windows gebootet wurde. Nun werden die eingebundenen Tools und Anwnedungen gestartet.

- Autostart von Tools und Anwendungen.
Installierte Tools werden nun gestartet. Im Prinzip nichts aufregendes.


Bei WinNT/2k/XP kenne ich mich noch weniger in diesem bereich aus. Deshalb bin ich nicht näher darauf eingegangen. Das Booten muss aber bis zum Laden des Bootsektors identisch ablaufen.
Im Unterschied zu Win9x&Co wird dann natürlich kein MSDOS gebootet. Aber auch hier müssen die Kernel-Dateien und die wichtigsten Treiberim 16Bit-Realmode geladen werden. Bis schlisslich in den 32Bit-Mode umgeschaltet wird. Dann müssen natürlich die Restlichen Treiber und Dienste geladen werden.

Ich hoffe, das hilft dir weiter.

Bis denn
Andreas

Gott2 wird noch richten, ob diese Antwort zielfuehrend ist oder nicht.
bei Antwort benachrichtigen
Kolti Andreas42 „Hi! Wie ganau darf s denn sein? OK, fangen wir bei Adam und Eva an.... - Druck...“
Optionen

Respekt.

bei Antwort benachrichtigen
werner.3 Andreas42 „Hi! Wie ganau darf s denn sein? OK, fangen wir bei Adam und Eva an.... - Druck...“
Optionen

Hi Andreas42
Schließe mich Kolti an, vollen Respekt!
Sehr ausführlich,das kann bestimmt Jeder nachvollziehen!
mfg.Werner

bei Antwort benachrichtigen
Andreas42 werner.3 „Hi Andreas42 Schließe mich Kolti an, vollen Respekt! Sehr ausführlich,das kann...“
Optionen

Hi!

Danke, ich tu was ich kann! :)

Bis denn
Andreas

PS: Ich glaube, ich brauche einen Lektor... ;-)

Gott2 wird noch richten, ob diese Antwort zielfuehrend ist oder nicht.
bei Antwort benachrichtigen
Christoph Maus Andreas42 „Hi! Wie ganau darf s denn sein? OK, fangen wir bei Adam und Eva an.... - Druck...“
Optionen

OK, gut, das meiste wusste ich auch schon so (nur nicht sooo genau). Was mich halt wurmte, dass ich nicht wusse, von was eigentlich der eigentliche Bootvorgang von Widows aufgerufen wurde.
Bis zur ausfürung von autoexec.bat war mir alles klar!

thx! für die ausführliche beschreibung!
cm

bei Antwort benachrichtigen