Uruchamianie sprzętu komputerowego przebiega wg następującego shematu:
Hardware → Firmware → Bootloader → Kernel → Sterowniki → Usługi OS → UI → Aplikacje
| Etap / wspólny opis | PC / laptop — Windows / Linux | MacBook — macOS | Telefon — Android |
| 1. Zasilanie — Po naciśnięciu przycisku zasilania urządzenie otrzymuje energię i rozpoczyna inicjalizację podzespołów. Zasilanie musi zostać odpowiednio rozprowadzone do procesora, pamięci, układów sterujących i pamięci masowej. | PSU, ATX, bateria | Apple Power Management, bateria | PMIC, bateria |
| 2. Start procesora — Procesor otrzymuje zasilanie i zaczyna wykonywać pierwsze instrukcje. Na tym etapie nie działa jeszcze system operacyjny — CPU uruchamia kod odpowiedzialny za rozpoczęcie procesu bootowania. | x86-64 CPU | Apple Silicon, ARM64 / Intel x86-64 | ARM64 SoC |
| 3. Firmware — Pierwszy kod uruchamiany przez procesor pochodzi z firmware’u urządzenia. Jego zadaniem jest przygotowanie podstawowego środowiska sprzętowego i rozpoczęcie wyszukiwania systemu operacyjnego. | UEFI, BIOS | Boot ROM, Apple Boot Firmware | Boot ROM, SoC Firmware |
| 4. Inicjalizacja i test sprzętu — Firmware sprawdza, czy najważniejsze komponenty są dostępne i mogą zostać użyte. Następnie inicjalizuje je na tyle, aby możliwe było przejście do kolejnego etapu uruchamiania. | POST, UEFI Hardware Initialization | Apple Hardware Initialization | Bootloader / firmware initialization |
| 5. Wykrycie pamięci masowej — System musi znaleźć urządzenie, na którym znajdują się pliki potrzebne do uruchomienia OS. Firmware identyfikuje odpowiednią pamięć masową i lokalizuje informacje rozruchowe. | NVMe, SATA, EFI System Partition (ESP) | APFS, APFS Volume | UFS, eMMC, A/B Slots |
| 6. Wybór systemu operacyjnego — Komputer może mieć jeden lub kilka systemów operacyjnych. Mechanizm rozruchowy wybiera odpowiedni system zgodnie z konfiguracją urządzenia lub decyzją użytkownika. | Windows Boot Manager, GRUB, UEFI Boot Manager | Startup Manager, boot.efi | Android Bootloader, AVB |
| 7. Uruchomienie bootloadera — Bootloader jest programem pośredniczącym między firmware’em a systemem operacyjnym. Jego głównym zadaniem jest znalezienie i załadowanie kernela oraz niezbędnych danych do pamięci RAM. | Windows Boot Manager, GRUB | boot.efi | Android Bootloader, init_boot |
| 8. Uruchomienie kernela — Kernel, czyli jądro systemu, przejmuje kontrolę nad podstawowymi zasobami komputera. Zarządza m.in. procesorem, pamięcią RAM, procesami oraz komunikacją ze sprzętem. | Windows NT, Linux kernel | XNU | Linux kernel |
| 9. Uruchomienie sterowników — Kernel potrzebuje specjalnego oprogramowania, aby komunikować się z konkretnymi urządzeniami. Sterowniki pozwalają OS-owi korzystać np. z GPU, Wi-Fi, dysku, ekranu czy aparatu. | WDM, KMDF, Linux Kernel Modules | IOKit, DriverKit | Kernel Drivers, HAL |
| 10. Uruchomienie usług systemowych — System uruchamia procesy działające w tle, które zapewniają podstawowe funkcje OS-a. Mogą one odpowiadać m.in. za sieć, bezpieczeństwo, zarządzanie użytkownikami czy komunikację między komponentami systemu. | Windows Services, Service Control Manager, systemd | launchd | init, Zygote, system_server |
| 11. Uruchomienie interfejsu użytkownika — Po uruchomieniu podstawowych komponentów system przygotowuje środowisko graficzne. Pojawia się ekran logowania, pulpit lub ekran główny urządzenia. | Windows Shell, Explorer, GNOME/KDE | WindowServer, Finder | SystemUI, Launcher |
| 12. Gotowość systemu — System operacyjny jest już w pełni uruchomiony i może wykonywać aplikacje użytkownika. Aplikacje korzystają z usług OS-a, zamiast bezpośrednio zarządzać sprzętem. | Win32, .NET, Windows API, Linux userspace | Cocoa, SwiftUI, macOS APIs | Android Runtime (ART), Android Framework |
Zadanie
Na zdjęciach płyt głównych różnych typów urządzeń zaznacz numerami 1-12 gdzie odbywa się dany etap rozruchu. Nie zawsze da się oznaczyć wszystkie elementy. Dla których urządzeń przenośnych o wysokim poziomie integracji zadanie to jest najtrudniejsze?
Twój komentarz