Startvorgang von WinXP
Start des BIOS hier läuft der Prozessor noch im Real-Mode
und startet den NTLDR das Ladeprogramm für eigentliche Betriebssystem.
Dieser schaltet in den 32 Bit-Modus und lädt von der
Start-Partition grundlegende Funktionen zum Zugriff
auf das Dateisystem (z. B. Treiber, Controller und
die Unterstützung für NTFS). Im Anschluss wird
die BOOT.INI ausgelesen und falls erforderlich das Bootmenü angezeigt.
Startet man hier Win9x/ME/Dos wird
die Datei BOOTSECT.DOS ausgewertet.
(Enthält den Code des 9x/ME/Dos Bootsectors.
Die Datei kann auch einen beliebigen anderen
Namen haben z. B. Boot.w98).
Startet man hier WinXP/NT/W2k
startet NTDETECT.COM die Hardwareerkennung. Hier werden Erkenntnisse
über wichtigen Informationen zum Systemfirmenware,
Bustypen Grafikkarte, Tastatur, Schnittstellen, Maus,
Disklaufwerke, Festplatten und die aktuelle Systemzeit
gesammelt. Weiterhin werden hier die vorhandenen
ISA-Plug&Play Karten erkannt. Bei ACPI fähigen System
spielt ntdetect.com nicht so große Rolle.
Die Ressourcen (IRQ, Adressen) werden von WinXP
verwaltet.
Beim System ohne ACPI werden von ntdetect.com
die Ressourcen (IRQ, Adressen) von BIOS übernommen
und an NTLDR übermittelt.
Anschließend startet NTLDR
den Betriebssystem-Kernel NTOSKRNL.EXE und
Hardware Abstraction Layer HALL.DLL
Diese bilden die Windows-Ausführungsschicht, die Konfigurationsinformationen
verarbeitet, Treiber und Dienste lädt. Beim Start wir der Zweig
HKEY_LOCAL_MACHINE\SYSTEM ausgelesen.
Hier werden Sätze von Hardwarekonfigurationen verwaltet (ControlSet001,
ControlSet002 etc.). Der Eintrag CurrentControlSet ist eine Kopie des aktuell
verwendeten Konfigurationsdatensatzes. Welcher Konfigurationsdatensatz
im welchen Fall verwendet werden soll, wird im Registry im Schlüssel
HKEY_LOCAL_MACHINE\SYSTEM\Select festgelegt. Die Nummer
steht für die Nummer des zu verwendenden ControlSet im jeweiligen Fall.
Select-Wert Beschreibung
Current Konfigurationsdatensatz, der für einen Systemstart
verwendet und nach CurrentControlSet kopiert wird.
Default Konfigurationsdatensatz, der für nächsten Systemstart
verwendet werden soll, wenn kein Fehler auftritt und
der Benutzer nicht manuell auf die letzte als
funktionierend bekannte Konfiguration
zurückschaltet.
Failed Konfigurationsdatensatz, mit dem WinXP nicht gestartet
werden konnte.
Solange WinXP problemlos läuft, steht hier 0.
LastKnownGood Der letzte als funktionierend bekannte
Konfigurationsdatensatz.
Der ntldr lädt den über Default festgelegten Konfigurationsdatensatz.
Wenn man hier im erweiterten Startmenü die Option die letzte als funktionierend
bekannte Konfiguration auswählt wird der LastKnownGood Konfigurationsdatensatz
verwendet. Dieses Menü erreicht man mit der Taste F8, während das Bootmenü angezeigt
wird. Auf diese weise hat man die Möglichkeit, wenn das normale Booten fehlschlägt, den
Rechner in der letzten als funktionierend bekanten Konfiguration zu starten.
Diese wird nach dem nächsten Start automatisch aktualisiert, wenn WinXP problemlos
gestartet und beendet werden konnte. Daher sollte man manuelle Änderungen nur unter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet vornehmen, um eine gesicherte
funktionierende Konfiguration zu haben.
Zu diesen Konfigurationsdaten werden noch die von ntdetect.com
übergegebenen Hardwareinformationen verwendet und
der HKEY_LOCAL_MACHINE\Hardware angelegt.
Ntoskrnl.exe sucht jetzt Treiber und Dienste die gestartet werden müssen.
Anhand HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Jetzt startet der Sitzungs-Manager SMSS:EXE Dieser erstellt die Systemumgebungsvariablen
und startet den Kernel-Modusabschnitt des Win-Subsystems
%systemroot%\system32\win32k.sys
(Die benutzerspezifischen Umgebungsvariablen werden erst nach
Benutzeranmeldung gesetzt). Win32k.sys initialisiert den Grafik-
Modus von XP (ab hier Grafische-Oberfläche ).
Benutzermodusabschnitt des Win-Subsystems wird geladen %systemroot%\system32\csrss.exe
Ausgewertet wird die Liste aus:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
Weiterhin wird die Auslagerungsdatei angelegt und eventuell Daten umbenannt falls vor dem Neustart Treiber
installiert wurden. Diese Liste findet man unter:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\ FileRenameOperations
(Nach umbenennen werden diese gelöscht).
Das Win-Subsystems csrss.exe und alle davon gestarteten Komponenten der Benutzeroberfläche laufen in User
Mode (Prozesse können nicht direkt auf Hardware zugreifen).
Nachdem die Treiber und Dienste gestartet sind, startet das Windows-Subsystem
den Anmeldedienst WINLOGON:EXE.
Dieser Prozess startet SERVICES.EXE (Dinststeuerungs-Manager)
und LSASS.EXE (die lokale Sicherheitsautorität)
und wartet bei Verwendung der Klassischen NT/w2k
Anmeldung darauf, dass man die Tastenkombination
STRG+ALT+ ENTF drückt.
Bei der schnellen Benutzeranmeldung werden sofort die Sicherheits- und Authentifizierungskomponenten
installiert, sodass der Benutzer beim Anklicken seines Namens sofort identifiziert werden kann. Dieses
Verfahren ist neu und erst in WinXP erhalten. Nach der Benutzeranmeldung wird die letzte als funktionierend
bekannte Konfiguration mit der aktuell funktionierenden Konfiguration überschrieben, dann liest das System
die Gruppenrichtlinien, die für den angemeldeten Benutzer gelten, und konfiguriert damit Zugriffsrechte und
Einstellungen der Benutzeroberfläche.
Jetzt startet WinXP alle automatisch ausführenden Programme, bevor man den vollen zugriff erhält.
Mauszeiger erscheint als Sanduhr und das Menü reagiert nicht.
Zuerst werden Programme aus der Registry geladen:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\ Explorer\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\ Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
Jetzt werden die Programme aus Autostart-Gruppen
des Startmenüs für alle Benutzer und des persönlichen
Benutzers geladen. Diese Pfade werden gespeichert in
der Registry unter:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\
User Shell Folders\Common Startup
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\
Shell Folders\Startup
Aus Kompatibilitätsgründen werden noch folgende Verzeichnisse
durchsucht (enthalten Autostartgruppen, die von WinNT4 upgedatet
wurden.
%windir%\Profiles\All Users\Startmenü\Programme Autostart
%windir%\Profiles\Benutzername\Startmenü\Programme\Autostart
Parallel dazu wird noch die Plug & Play-Erkennung für neu installierte
Hardwarekomponenten durchgeführt.
Quellen:
- Buch - "Windows XP intern" von Ch. Immler & M. Fordermaier
- C't Zeitschriften
- Internet
- Eigene Erfahrung
Zurück zur
Windows - Shutdown/Start - Probleme und ihr Lösung
|