Kas yra įkrovos programa (bootloader)?

Kompiuteriui paleisti naudojamas įkrovos įrenginys ir kartu — įkrovos programa (angl. bootloader). Terminas „bootstrap“ kilęs iš angliškos frazės "pull yourself up by your own bootstraps" („pakelti save už savo batų diržų“) ir per analogiją reiškia, kad paprastas pradinis kodas paleidžia sudėtingesnę sistemą. Tai paaiškina ir etimologinę nuorodą į batą, kuris užsirišamas ant kojos: simboliškai kalbant, sistema „pasiima už savo batų diržų“ ir įsijungia.

Veikimo principas

Įkrovos programa yra mažas specializuotas kodas, kurį paprastai pirmiausia paleidžia kompiuterio aparatinė įranga (firmware, pvz., BIOS arba UEFI). Šis kodas atlieka šiuos pagrindinius veiksmus:

  • inicijuoja ir patikrina pagrindinius aparatūros komponentus (procesorių, atmintį, diskus);
  • nustato, iš kur bandyti įkelti operacinę sistemą pagal nustatytą įkrovos tvarką (boot order);
  • įkelia į atmintį ir perduoda valdymą platesnei įkrovos programos daliai arba tiesiogiai operacinės sistemos branduoliui;
  • kai kuriais atvejais atlieka saugumo patikrinimus (pvz., tikrina skaitmeninius parašus — „Secure Boot“ kontekste).

Įkrovos procesas dažniausiai vyksta etapais: pirmasis — firmware ir mažas pradinis įkrovos sektorius (pavyzdžiui, MBR arba UEFI bootloader), antrasis — pilnesnė įkrovos programa (pvz., GRUB, Windows Boot Manager), kuri paleidžia operacinės sistemos branduolį ir perima sistemos konfigūracijas.

Įkrovos šaltiniai (įrenginiai)

Įrenginiai, iš kurių galima įkrauti sistemą, paprastai yra įkrovos diskai arba įkrovos įrenginiai. Pavyzdžiai:

Kai kuriuose tinklo kompiuteriuose ar įmonių aplinkose įkrovos kodas perduodamas per tinklą (naudoja DHCP/TFTP/HTTP protokolus), o tai leidžia centrinį valdymą ir atnaujinimą. Todėl ir sakoma, kad įkrovos lustai ar tinklo įkrovos mechanizmai gali perduoti operacinę sistemą per tinklą.

Specialūs įkrovos sprendimai ir privatumas

Yra specialios įkrovimo kortelės ir įrenginiai, kurie leidžia vienam naudotojui paleisti kioskinius ar viešus kompiuterius be likučių sistemoje — taip užtikrinant didesnį privatumą ir prieigą prie taikomosios programinės įrangos. Taip pat naudojamos įkrovos plokštės arba įkrovos priedų kortelės, kurios dažnai būna patvaresnės arba labiau integruotos į sistemą nei laikinos įkrovos kortelės ar USB.

Įkrovos tvarka, identifikacija ir mobilieji įrenginiai

Firmware nustatyta įkrovos tvarka lemia, kuris įrenginys bus bandomas pirmiau. Vartotojas gali pakeisti tvarką BIOS/UEFI nustatymuose arba per laikinas „Boot Menu“ parinktis. Kai kurie žmonės atskiria sąvokas ir vadina vienus įrenginius tik įkrovos įrenginiais, o kitus — duomenų įrenginiais; šis skirtumas daugiau rūpi operacinei sistemai ir administravimui nei pačiam kompiuteriui.

Mobilūs įrenginiai (telefonai, planšetės) taip pat turi savo įkrovos programas (pvz., U-Boot, Android bootloader ar gamintojo firmware). SIM kortelė ar mobiliojo ryšio tapatybės elementai dažniausiai naudojami vartotojo identifikacijai tinkle, bet pati įkrova vyksta per įrenginio firmware ir įkrovos grandinę; saugumo mechanizmai čia dažnai apima užkoduotus arba pasirašytus įkrovos komponentus.

Saugumas ir atstatymas

Šiuolaikinėse sistemose svarbi įkrovos sauga — tai apima skaitmeninius parašus, Secure Boot mechanizmus, bei grandies pasitikėjimą (chain of trust). Jei įkrovos failai sugadinti arba pamesti, galima naudoti įkrovos atkūrimo priemones:

  • BIOS/UEFI nustatymų atstatymas arba aparatinio lygio atnaujinimas;
  • naudojant įkrovos laikmeną (Live USB, atkūrimo CD) perrašyti arba ištaisyti įkrovos sektorių (MBR/GPT) ir įkrovos įrašus;
  • naudoti gamintojo ar bendruomenės įrankius (pvz., GRUB atstatymui, Windows Boot Repair).

Dažniausiai sutinkami pavadinimai

Įkrovos programos pavyzdžiai: GRUB, systemd-boot, LILO (seni), Windows Boot Manager, U-Boot (embeddeds), gamintojų pateikti bootloaders mobiliesiems įrenginiams. Kiekviena iš jų atlieka tą pačią pagrindinę funkciją — paruošti aparatūrą ir perleisti valdymą operacinei sistemai.

Santrauka

Įkrovos programa (bootloader) yra tarpinis ryšys tarp aparatūros (firmware) ir operacinės sistemos. Ji inicijuoja aparatūrą, nustato, iš kur įkrauti sistemą, atlieka saugumo patikras ir perduoda valdymą OS branduoliui. Įkrovos šaltiniai gali būti vietiniai (diskai, USB, optiniai diskai) arba tinklo pagrindu perduodami, o mobilieji įrenginiai turi savo specializuotas įkrovos grandines bei saugumo mechanizmus.