Ukratko o učitavanju operacijskog sustava

Izvor: HrOpenWiki
Inačica od 12:35, 21. siječnja 2009. koju je unio/unijela Grof (razgovor | doprinosi)

Skoči na: orijentacija, traži
O procesu učitavanja

Ova stranica namijenjena je rasvjetljavanju tabua oko procesa podizanja računala od uključivanja do postavki vašeg omiljenog GUI-a na ekranu. Kako dosta problema sa instalacijom operacijskog sustava i razumijevanjem rada računala leži u ovom, mnogima sivom ili čak crnom području, smatramo potrebnim objasniti što se konkretno dešava prilikom podizanja vašeg Linux operacijskog sustava.

Također smisao je dati uvide u moguće greške pri svakom opisanom koraku.

Uvod

Prije svega moramo razumijeti da računalo prilikom uključivanja prolazi razne faze rada koje uključuju BIOS, kernel, daemone i ostalo. A sve što se dešava, dešava se u koracima i ako dođe do neke greške u koraku, sustav ne može nastaviti dalje. Iz tog razloga dobro je moći ispravno pretpostaviti u kojem je koraku došlo do greške, kako bi je lakše locirali i uklonili.

Kako je GRUB bootloader postao standard na Linux distribucijama, nećemo se osvrtati na LILO bootloader kako ne bi unijeli previše zbrke u ovo područje.

1.BIOS faza
2.GRUB Stage1+1.5 faza
3.GRUB Stage2 faza
4.Kernel faza

S toga, krenimo redom:

BIOS faza

Opis

Prilikom uključivanja, računalo prolazi prvu inicijalizacijsku fazu u kojoj se rade i provjeravaju osnovna stanja računala i prepoznavanje hardvera. Taj proces naziva se još i POST proces, a unutar njega računalo radi samokontrolu svih svojih komponenti na matičnoj ploči i ostalih spojenih uređaja. Iako se gotovo sve izvršava automatski na ovom nivu ipak postoji mogućnost podešavanja određenih opcija unutar BIOS programa. Proces POST-a uobičajeno završava jednim zvučnim beep signalom, što označava da je sa hardverom sve u redu, te da će BIOS u narednim koracima prepustiti kontrolu nad računalom kernelu.

Svi koraci ove faze izvršavaju se prema programu upisanom u čipove BIOS-a na matičnoj ploči.

Na kraju ove faze računalo prepušta kontrolu programu koji se nalazi unutar MBR sektora onog diska (tvrdog diska, CD/DVD diska ili USB sticka-a) koji je naveden u postavkama BIOS-a kao prvi na listi za daljini tijek učitavanja, odnosno na prvi sljedeći ako u prethodnom ne nađe ispravan MBR sektor.

Podešavanje

Ulazak u postavke BIOS-a vrši se pritiskom na neku tipku ili kombinaciju tipki (obično DEL ili neku funkcijsku tipku) prilikom izvršavanja POST procesa, a manifestira se obično plavim tekstualnim izbornikom (neki BIOS-i imaju i jednostavna grafička sučelja, pa se opcije mogu odabirati i mišem).

Postoji nekoliko bitnih postavki koje moramo znati ispravno podesiti unutar BIOS-a. Osim sistemskog sata i datuma, ovdje se mogu podesiti i vrlo specifične opcije oko rada radne memorije ili CPU-a, kao i podešenja kontrole energije sustavom.

No ono što je nama na ovom nivou bitno jest ispravno odabrati prvi uređaj za daljnje učitavanje. Te postavke, obično se nalaze unutar izbornika Integrated peripherals, ili unutar Boot menu-a. Uglavnom, potražite opcije tipa Boot device pririty, te unutar njih podesite po kojem redosljedu da vam BIOS traži uređaj sa operacijskim sustavom. Mudro je za prvi uređaj postaviti CD/DVD čitač, a drugi tvrdi disk na kojemu će se nalaziti operacijski sustav, odnosno Boot loader. Nakon ovih podešenja, potrebno je izmjene snimiti u postavke BIOS-a, te iaći iz istoga.

Greške u ovoj fazi

U koliko POST proces pronađe grešku na uređaju ili ne pronađe neki esencijalni dio hardvera, kao što su CPU, RAM ili grafička kartica označit će to serijom zvučnih beep-ova, popraćenih komentarima na ekranu.

Sve greške ove faze objašnjene su u knjižici koju ste dobili sa računalom, odnosno matičnom pločom, te se uglavnom odnose na hardver ili loše postavke unutar BIOS-a. Greške na ovoj razini nemaju nikakve veze sa instaliranim operacijskim sustavom, te ih morate rješavati u suradnji sa osobom koja vam je prodala/sklopila računalo.

GRUB Stage 1 (MBR faza)

Opis

Ova faza je već puno bitnija za sve nas koji instaliramo operacijski sustav na računalo. Naime, nakon uspješne BIOS faze podizanja računala, kontrola se predaje malenom programu u MBR sektoru diska koji je označen od strane BIOS-a za daljnje učitavanje operacijskog sustava. Taj prostor je fiksne veličine i velik je točno 512 byteova. Ovom fazom zapravo počinje podizanje operacijskog sustava. Unutar ovog MBR sektora nalazi se GRUB-ov Stage 1 dio. To je prvi dio ovog Linuxovog programa za podizanje ostatka operacijskog sustava. Unutar njega nalazi se sve potrebno da bi se moglo prijeći na ostatak učitavanja GRUB-a (Stage 2 ili Stage 1.5). Sve to je iz razloga što u MBR stane, zapravo malo podataka, no dovoljno da bi GRUB mogao na disku, pronaći ostatak samoga sebe, te ili postaviti svoj izbornik za podizanje ili nastaviti sa daljnjim podizanjem Linuxa ili pak učitati neki drugi bootloader.

Podešavanje

Na ovoj razini nema bitnih podešavanja postavki.

Greške u ovoj fazi

Greške na ovom nivou su rijetke i odnose se uglavnom na nemogućnost čitanja ostatka GRUB-a (Stage 2), njihov popis možete pronaći u dijelu teksta o GRUB-u

GRUB Stage 1.5 (međufaza)

Opis

Ova faza učitavanja GRUB-a izvršava se onda kada se podaci od Stage 2 nalaze na nekom datotečnom sustavu. U tom slučaju prostor MBR-a od 512 byteova nije dovoljan da se računalu objasni struktura datotečnog sustava s kojeg treba učitati ostatak GRUB-a, te se ovo objašnjavanje nastavlja na blok od 30 KB podataka slijedećeg sektora. Nakon što je Stage 1.5 učitao kod za prepoznavanje datotečnog sustava na kojemu se nalazi Stage 2, prelazi na izvršavanje ovog zadnjeg dijela GRUB-a.

Ovo se ne odnosi na MS Windows operacisjki sutav, jer se on učitava kroz GRUB Stage 2 fazu.

Podešavanje

Na ovoj razini nema bitnih podešavanja postavki.

Greške u ovoj fazi

Greške na ovom nivou su identične kao i u Stage 2 dijelu, a njihov popis možete pronaći u dijelu teksta o GRUB-u

GRUB Stage 2 (faza unutar datotečnog sustava)

Opis

Nazvana je fazom unutar datotečnog sustava iz jednostavnog razloga što se ostatak GRUB datoteka nalazi upravo ovdje. Ova faza se manifestira na ekranu tekstualnim izbornikom unutar kojeg možemo odabrati koji operacisjki sustav želimo podići, ili ako je Linux jedini onda kratkim odborjavanjem do početka učitavanja kernela. Smisao je ove faze upravo taj da si korisnik može sam podesiti koje operacijske sustave učitava i pod kojim uvjetima.

Dakle, nakon što smo pomoću izbornika odabrali željeni operacijski sustav ili se on odabrao automatski, završava ova faza podizanja računala i slijedi učitavanje kernela Linux operacijskog sustava sa naredbama navedenima u menu.lst datoteci

Podešavanje

Zapravo upravo ova faza GRUB-a i služi za podešavanja postavki učitavanja ostatka operacisjkog sustava, a sve se radi unutar datoteke /boot/grub/menu.lst. Detalji ovih postavki objašnjeni su unutar poglavlja Podešavanje GRUB menija, pa ih nećemo ovdje detaljno razrađivati.

Greške u ovoj fazi

Postoji cijeli niz grešaka koji se može pojaviti na ovom nivou a, njihov popis možete pronaći u dijelu teksta o GRUB-u

Kernel faza

Opis

Tek sada zapravo započinje pravo učitavanje Linuxa u naše računalo. Učitava se kernel, tj. jezgra operacijskog sustava. Njegov zadatak je da preuzme kontrolu nad računalom, vodi brigu o resursima, te o zauzeću procesora od strane aplikacija. Ostatak operacijskog sustava skupa sa svim aplikacijama koje se pod njim mogu pokrenuti (uredski alatai, igre, uglavnom svi programi) komunicira sa računalom isključivo preko kernela. Ništa se ne može dalje odviti bez kernelove kontrole.

Taj proces uglavnom teče ovako:

  • Vrši se dekompresija slike kernela u memoriju
  • Detektira se grafička kartica, te se, ovisno o kernel parametrima mijenja režim tekstualnog ekrana
  • Detektira se hardver i konfiguriraju se driveri za uređaje
  • Aktivira se root datotečnog sustava u modu čitanja. Tip root datotečnog sustava se automatski detektira.
  • Sistem prelazi u jenokorisnički režim rada, root datotečni sustav je u stanju čitanja, a ljuska prima naredbe isključivo od superuser-a.
  • Kernel pokreće program init i novokreiranom procesu dodjeljuje PID=1, čime završava svoj dio boot procesa.

Upravo iz razloga što kernel predstavlja centralni dio operacijskog sustava iznimno je bitno da ga u tome ništa ne može omesti, a stabilnost ostatka sustava direktno je povezana sa radom kernela. Zbog toga kernel radi u specijalnom virtualnom memorijskom prostoru radne memorije koji se zove kernel space. Osim kernela i njegovih modula ništa drugo ne može raditi u tom prostoru. Na taj način povećava se i sigurnost cjelokupnog sustava.

Podešavanje

Sva podešavanja opcija kernela vrše se preko datoteke /boot/grub/menu.lst na ovoj liniji

kernel		/boot/vmlinuz-2.6.27-9-generic root=UUID=7ec00807-738b-44d4-bbc1-a384f7f2e9a6 ro quiet splash

U gornjem primjeru su ro, quiet i splash kernel opcije.

Greške u ovoj fazi

Greške na nivou kernela mogu se manifestirati u obliku da se kernel ne može niti startati, te one završavaju porukom Kernel panic, a moguće je da dođe do zastoja ili usporavanja računala koje je teško na prvi pogled pripisati kernelu. Dva BIOS podsustava mogu smetati izvođenju kernela, a to su APIC i ACPI. Za njihovo isključivanje preko kernel opcija pogledajte ovdje

U slučaju da kernel ne može prepoznati root datotečni sustav podizanje se zaustavlja porukom Kernel panic Također, sva smrzavanja računala u toku rada mogu se sa priličnom sigurnošću pripisati hardverskim problemima ili problemima na nivou kernela. Takva smrzavanja lako se prepoznaju potpunom neodazivu tastature i miša na ekranu.

Init faza

Opis

Nakon što je kernel preuzeo kontrolu nad računalom on starta prvi proces u tzv. user space-u. Proces se zove init() te je on ujedno i roditelj svim drugim procesima. Njegov primarni zadatak jest da kreira sve druge procese prema skripti /etc/inittab. U ovoj skripti je definiran i zadani runlevel operacijskog sustava

Koje će konkretno skripte init pokrenuti ovisi o tome koji je zadani runlevel, te se u odnosu na to izvršava daljnje učitavanje operacijskog sustava prema skriptama čije se poveznice nalaze u /etc/rcx.d direktorijima (gdje je x oznaka runlevel-a, a same skripte se nalaze unutar /etc/init.d direktorija.

Završetak ove faze zapravo je i konačnica podizanja operacijskog sustava. Danas se sve distribucije podižu u runlevelu koji podrazumijeva podizanje grafičkog sustava.

Upstart

Na distribucijama Linuxa od Ubuntu 6.10+ i Fedore 9+, ne koristi se više /etc/inittab nego event-based init daemon pod nazivom Upstart. On drži sve skripte za daljnje podizanje sistema unutar /etc/event.d direktorija. Tamo se nalazi i skripta zadanog runlevel-a operacijskog sustava.

Upstart je kompatibilan sa standardnim SysVinit daemonom

Podešavanja

Na ovom nivou mogu se definirati podizanja željenih daemona, servera i ostalih programa. Sve se vrši putem skripti u /etc/init.d direktoriju, te njihovim poveznicama u željene runlevel direktorije /etc/rcx.d

Važno je npomenuti da neke distribucije ne koriste ovakav sustav podešavanja runlevel-a nego se služe drugačijim metodama.

Greške u ovoj fazi

Greške u ovoj fazi teško možemo definirati, jer ih može biti od nijedne do više. Uglavnom, rijetko se radi o greškama koje potpuno onemogućavaju rad operacijskog sustava, te ne moraju spadati u greške operacijskog sustava, nego i samih aplikacija