🚀 Sekwencja Uruchamiania Windows
Poznaj krok po kroku, jak Windows przechodzi od naciśnięcia przycisku zasilania do gotowego pulpitu
Power-On Self Test (POST)
Firmware systematycznie testuje kluczowe komponenty: sprawdza czy pamięć RAM odpowiada na wzorce testowe, weryfikuje czy procesor może wykonywać podstawowe instrukcje, oraz potwierdza dostępność urządzeń storage.
Inicjalizacja kontrolerów sprzętowych
Konfiguracja podstawowych kontrolerów: pamięci, portów USB, kontrolerów SATA/NVMe, i karty graficznej w trybie podstawowym.
Secure Boot i weryfikacja TPM
Na systemach UEFI sprawdzane są podpisy cyfrowe komponentów startowych. TPM (Trusted Platform Module) przygotowuje kryptograficzne podstawy bezpiecznego uruchamiania.
Wybór urządzenia bootowego
System określa z którego urządzenia uruchomić system operacyjny, bazując na kolejności boot order ustawionej w UEFI/BIOS.
🔧 Różnica między UEFI a BIOS
UEFI to nowoczesny następca BIOS-u, który oferuje bezpieczniejsze uruchamianie, obsługę dysków większych niż 2TB, oraz graficzny interfejs. Podczas gdy BIOS operuje w trybie 16-bitowym, UEFI działa natywnie w trybie 32/64-bitowym, co pozwala na bardziej zaawansowane funkcje bezpieczeństwa.
Po pomyślnym zakończeniu POST, firmware przekazuje kontrolę do Boot Managera Windows
Ładowanie bootmgfw.efi / bootmgr.exe
Na systemach UEFI firmware ładuje plik bootmgfw.efi z partycji EFI System Partition. Na starszych systemach BIOS ładowany jest bootmgr.exe z aktywnej partycji.
Odczyt Boot Configuration Data (BCD)
Boot Manager odczytuje BCD Store - bazę danych zawierającą informacje o wszystkich dostępnych systemach operacyjnych i ich konfiguracji uruchamiania.
Prezentacja menu wyboru (jeśli potrzebne)
Jeśli wykryto wiele systemów operacyjnych, wyświetlane jest menu wyboru. W przypadku pojedynczego systemu, proces przechodzi automatycznie dalej.
Lokalizacja i uruchomienie OS Loadera
Boot Manager lokalizuje plik winload.exe wybranego systemu Windows i przekazuje mu kontrolę wraz z parametrami uruchamiania.
💾 Boot Configuration Data (BCD)
BCD to nowoczesny zamiennik starych plików boot.ini z Windows XP. To struktura przypominająca rejestr, która przechowuje wszystkie informacje o konfiguracji bootowania. Zawiera ścieżki do systemów operacyjnych, parametry uruchamiania, oraz ustawienia recovery. Można ją edytować narzędziem bcdedit.exe.
Boot Manager przekazuje kontrolę do OS Loadera określonego systemu Windows
ntoskrnl.exe - Jądro Windows
Rdzeń systemu operacyjnego, który zarządza pamięcią, procesami, wywołaniami systemowymi i podstawowymi funkcjami OS.
hal.dll - Hardware Abstraction Layer
Warstwa abstrakcji sprzętowej, która umożliwia jądru komunikację ze sprzętem niezależnie od konkretnego typu platformy.
Boot-critical drivers
Sterowniki niezbędne do uruchomienia: kontroler dysku, system plików (NTFS), oraz podstawowe sterowniki graficzne.
Registry hives
Ładowanie kluczowych części rejestru systemowego: SYSTEM (konfiguracja sprzętu), SOFTWARE (aplikacje), SECURITY, SAM (konta użytkowników).
⚡ Strategia ładowania sterowników
OS Loader nie ładuje wszystkich sterowników od razu. Początkowo ładuje tylko te oznaczone jako "boot-critical" - bez nich system nie mógłby się uruchomić. Te sterowniki muszą być podpisane cyfrowo i przejść weryfikację. Pozostałe sterowniki będą ładowane później przez Plug and Play Manager w kolejnych fazach uruchamiania.
Po załadowaniu wszystkich komponentów, OS Loader przekazuje kontrolę do jądra ntoskrnl.exe
Kernel Initialization Phase
ntoskrnl.exe inicjalizuje swoje podstawowe menedżery: Memory Manager (zarządzanie pamięcią), Process Manager (procesy i wątki), Object Manager (obiekty systemowe), I/O Manager (wejście/wyjście).
Session Manager (smss.exe)
Jądro uruchamia pierwszy proces w przestrzeni użytkownika - Session Manager. Smss.exe tworzy sesje systemowe, inicjalizuje zmienne środowiskowe, tworzy linki symboliczne, i przygotowuje infrastrukturę dla Win32 subsystem.
Client/Server Runtime Subsystem (csrss.exe)
Uruchamiany jest csrss.exe, który implementuje API Win32 w przestrzeni użytkownika, zarządza procesami i wątkami Windows, oraz obsługuje console i niektóre części GUI.
Windows Initialization Process (wininit.exe)
Wininit.exe odpowiada za uruchomienie kluczowych usług systemowych i Service Control Manager. To punkt, w którym system przygotowuje się do uruchamiania usług Windows.
Service Control Manager (services.exe)
Services.exe ładuje i zarządza wszystkimi usługami Windows. Analizuje zależności między usługami i uruchamia je w odpowiedniej kolejności, respektując ich wzajemne relacje.
🔗 Zależności między usługami
Usługi Windows tworzą skomplikowaną sieć zależności. Na przykład, usługa DHCP Client musi wystartować przed Network Location Awareness, która z kolei jest wymagana przez wiele usług sieciowych. Service Control Manager musi rozwiązać te zależności i uruchomić usługi w logicznej kolejności, co może być źródłem opóźnień podczas uruchamiania.
System jest gotowy do obsługi sesji użytkowników i prezentacji ekranu logowania
Uwierzytelnianie użytkownika
Local Security Authority (lsass.exe) weryfikuje dane logowania przeciwko Security Account Manager (SAM) dla kont lokalnych lub przeciwko Active Directory dla kont domenowych.
Ładowanie profilu użytkownika
System lokalizuje i ładuje profil użytkownika. Odczytuje plik ntuser.dat (osobisty rejestr użytkownika) i tworzy spersonalizowane środowisko z ustawieniami, preferencjami i danymi aplikacji.
Przetwarzanie Group Policy
System stosuje zasady grupowe (Group Policy), które mogą kontrolować zabezpieczenia, ograniczenia interfejsu, mapowanie dysków sieciowych, oraz inne aspekty środowiska użytkownika.
Uruchomienie powłoki użytkownika
System uruchamia explorer.exe jako proces powłoki użytkownika, który będzie odpowiedzialny za pulpit, pasek zadań, menu Start i ogólny interfejs graficzny.
👤 Typy profili użytkowników
Windows obsługuje różne typy profili: profil lokalny (przechowywany lokalnie na komputerze), profil wędrujący (roaming profile - synchronizowany między komputerami w domenie), oraz profil obowiązkowy (mandatory profile - tylko do odczytu). Każdy typ ma różne implikacje dla wydajności ładowania i zarządzania danymi użytkownika.
Sesja użytkownika jest gotowa, explorer.exe przejmuje kontrolę nad interfejsem graficznym
Inicjalizacja Explorer.exe
Explorer.exe ładuje wszystkie komponenty powłoki Windows: pulpit z ikonkami, pasek zadań z menu Start, obszar powiadomień (system tray), oraz usługę Windows Explorer do przeglądania plików.
Ładowanie elementów pulpitu
System wyświetla tapetę, ładuje ikony pulpitu, konfiguruje wielomonitorowe środowiska, oraz inicjalizuje theme i efekty wizualne zgodnie z ustawieniami użytkownika.
Uruchamianie aplikacji systemowych
Ładowanie aplikacji w obszarze powiadomień: antywirus, sterowniki audio/wideo, aplikacje producenta sprzętu, narzędzia systemowe, oraz inne aplikacje oznaczone do automatycznego uruchamiania.
Wykonanie programów startowych
System uruchamia programy z autostartu zdefiniowane w rejestrze, folderze Startup, zaplanowanych zadaniach, oraz aplikacje konfigurowane przez użytkownika do automatycznego uruchamiania.
Finalizacja usług tła
Dokończenie inicjalizacji usług niekrytycznych: indeksowanie plików, optymalizacje systemu, aktualizacje automatyczne, synchronizacja czasu, oraz inne procesy działające w tle.
⚡ Windows Fast Startup
Od Windows 8 Microsoft wprowadził Fast Startup, który podczas "wyłączania" zapisuje stan jądra systemu do pliku hiberfil.sys. Podczas następnego uruchomienia, zamiast pełnej inicjalizacji jądra, system przywraca jego stan z pliku. To sprawia, że "zimny" start przypomina bardziej wybudzenie z hibernacji, znacznie przyspieszając proces uruchamiania.
✅ Proces uruchamiania zakończony!
System Windows jest w pełni załadowany i gotowy do pracy. Wszystkie komponenty od firmware przez jądro do środowiska użytkownika działają w harmonii, umożliwiając Ci korzystanie z komputera.