Udział programu BIOS podczas rozruchu komputera.
Po włączeniu komputera elektronika "myśląca" znajduje się w stanie totalnego chaosu. Na szczęście procesor trafia pod adres FOOOh:FFFOh gdzie "zamieszkuje" BIOS płyty głównej. Zaczyna przetwarzać zapisany tu kod, którego większość jest skompresowana i potrzebuje więcej przestrzeni życiowej w postaci RAM-u. W tym celu podstawowy system wejścia/wyjścia musi wykryć podłączony sprzęt, uruchamiając procedury diagnostyczne POST (Power On Self Test). Procesor w nagrodę jest analizowany jako pierwszy a po nim następuje inicjowanie chipsetu płyty głównej. Najwyższy priorytet otrzymuje kontroler pamięci potrzebny do rozpakowania BIOS-u.
Inicjacja podzespołów płyty głównej jest wykonywana podobnie jak kontrolera pamięci. Aby przygotować do działania wymieniony kontroler procedura Post pobiera ustawienia SETUP-u z pamięci CMOS i zapisuje je w rejestrze kontrolera. Czyli jeżeli wybraliśmy ustawienie SPD w opcji Configure SDRAM TIMING By to konfiguracja podzespołu będzie zgodna z pobranymi z pamięci SPD informacjami i od tej pory kontroler wie jak zarządzać modułami pamięci.
Procedury POST dodatkowo oprócz konfiguracji sprzętu wykorzystują instrukcje warunkowe do optymalizacji działania np: procesu przeszukiwania napędów z zainstalowanym systemem operacyjnym. Ponieważ w pamięci roboczej kod Biosu jest już rozpakowany to kolejno testuje i inicjuje pozostałe podzespoły płyty głównej. BIOS rządzi twoim komputerem a Ty, co teraz robisz? A właśnie w tej chwili od Ciebie zależy dalsze działanie procedur POST.
Jeżeli opcję Plug&Play OS ustawiłeś na Disabled to BIOS musi wszystkim urządzeniom przydzielić zasoby (przerwanie itd), ponieważ uważa że system nie obsługuje standardu Plug&Play. Myślę jednak,że masz ustawienie Eneblad lub Yes co spowoduje przydzielenie zasobów tylko urządzeniom biorącym udział w uruchamianiu systemu (kontroler EIDE, karta sieciowa, kontroler dyskietek). POST wykonuje jeszcze ostatnie zadanie .
Znajduje MBR (Master Boot Record), a procesor wykonuje zawarty w nim kod i rozpoczyna się uruchamianie systemu operacyjnego.
W Windows XP uruchomieniem systemu zajmuje się NTLdr (NT Loader).
- Jako pierwszy uruchamia program NTDETECT.COM analizujący komputer i po pobraniu informacji z Bios-u zapisuje je w rejestrze w kluczu "HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION".
- Następnie wczytuje tak zwany HAL czyli Hordware Abstraction Layer. Jest to warstwa oddzielająca system operacyjny od płaszczyzny sprzętowej. Wersja HAL zapisana zostaje w Rejestrze w kluczu "HKEY_LOCAL_MACHINE\HARDWARE\RESOURCEMAP\Hardware Abstraction Layer"
oraz w Mendżerze urządzeń.
Rodzaj warstwy HAL zależy od ilości procesorów , kontrolera przerwań (PIC czy APIC) oraz ACPI i jeżeli wpis wygląda następująco ACPI 1.0-APIC platform UP to znaczy, że komputer obsługuje ACPI oraz APIC z jednym procesorem - UP(uniprocesor).
- Teraz NTLdr wczytuje sterowniki urządzeń potrzebnych do uruchomienia systemu pobierając z Rejestru z klucza "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services" tylko te które mają przyporządkowaną dla
Start wartość (0)"
- NT Loader może teraz uruchomic jądro systemu czyli plik NTOSKRNL.EXE , który dla odmiany wczytuje sterowniki z wartością dla
Start wynoszącą (1) z wyżej wymienionego klucza rejestru.
W trybie awaryjnym wczytywane są sterowniki wyszczególnione w kluczu "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal"
Natomiast dla Ostatnia znana dobra konfiguracja klucz "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet"
zostanie zamieniony na "HKEY_LOCAL_MACHINE\SYSTEM\Select\LastKnownGood".
- Windows uaktywnia procedury PLUG&PLAY zależne od warstwy HAL i przydziela zasoby urządzeniom komputera nie uwzględniając ustawień w Biosie, przydzielając przerwania konkretnym slotom. Dlatego w razie problemów najłatwiej jest pozamieniać karty PCI miejscami.