Kas vyksta įjungus kompiuterį? Linux

Ar niekada nepasidarė įdomu, kas vyksta kompiuteryje, kai paspaudžiate įjungimo mygtuką? Iš tokių “pasidarymų” gimsta tokie įrašai, kaip šis. Šiuo atveju konkrečiai apie Linux sistemą.

Kai kompiuteris įjungiamas, BIOS išsiaiškina iš kur įkelti sistemą, cd įrenginio, usb prijungto disko ar kietojo disko. Kai nustatoma, iš kur vykdyti komandas, skaitomas 512 bitų pirmasis įrenginio blokas (MBR). MBR esanti informacija pasako, iš kurio disko skirsnio įkelti sistemą (boot loader). Tuomet bandoma išsiaiškinti, kaip užkrauti ir paleisti branduolį (kernel). Kernelis nuskenuoja sistemos techninę įrangą, o tuomet įjungia sistemos init procesą, kuris visada turi proceso numerį 1.

Kad sistema būtų užkrauta, turi būtų patikrintos ir prijungtos (mount) failų sistemos, paleisti sistemos procesai (daemons). Tai atlieka procesas init, tam tikra tvarka vykdydamas shell skriptus. Tačiau prieš vykdant šiuos skriptus gali įsiterpti sistemos administratorius – startuojant kerneliui pateikiami tam tikri argumentai, tuomet sistema užsikrauna tik tiek, kad galėtų vykdyti shell komandas komandinėje eilutėje. Toks paleidimas vadinamas vieno vartotojo arba atkūrimo režimu (single user, recovery mode).

Apibendrinant, unix sistemos paleidimą galima išskirstyti į šešias skirtingas fazes:

  • Skaitomas boot įkrovėjas MBR (master boot record) sektoriuje (bootloader)
  • Užkraunamas ir paleidžiamas branduolys (kernel)
  • Aptinkami visi įrenginiai ir jų konfigūracija (hardware)
  • Sukuriami branduolio procesai
  • Administratoriaus įsiterpimas (recovery mode, nebūtinas)
  • Vykdomi sistemos paleidimo skriptai

Branduolio inicijavimas

Patį kernelį kaip objektą galima vadinti programa, o paleidžiant kompiuterį pirma užduotis yra perkelti branduolį į atmintį tam, kad jis būtų pradėtas vykdyti. Linux sistemos branduolys paprastai laikomas /boot/vmlinuz direktorijoje. Pasileisdamas kernelis sužino, kiek RAM yra kompiuterį, tuomet rezervuoja tam tikrą atminties kiekį savo procesams, o vėliau ta atmintis negali būti panaudota vartotojo procesams.

Techninės įrangos konfigūracija[

Viena pagrindinių branduolio užduočių yra sužinoti, kokia geležis kompiuteryje. Jis ištiria sistemos magistrales ir techninę įrangą, tuomet užkrauna tų įrenginių tvarkykles kaip savarankiškus branduolio modulius.

Kernelio procesų sukūrimas

Kai pagrindinė iniciacija baigiasi, kernelis sukuria keletą sistemai reikalingų procesų. Jų PID (proceso id) būna mažas skaičius, tačiau lengviausia juos atskirti tuo, jog ps komandos rezultate jie apskliaudžiami laužtiniais skliaustais, pavyzdžiui [kthreadd]. Jei po proceso pavadinimo yra pasvirasis brūkšnys ir skaičius po jo, pavyzdžiui [watchdog/4], tai skaičius nurodo procesorių arba jo branduolį.

Ateityje sulauksite dažnesnių įrašų apie Linux 😉

Leave a Reply

Your email address will not be published. Required fields are marked *