Dizajn

Startovanje FreeBSD-a

Startovanje kompjutera se naziva bootstrap, ili skraćeno boot.

Na x86 platformi Basic Input/Output System (BIOS) je odgovoran za pokretanje kompjutera. Na hard disku koji se boot-uje, BIOS pronalazi Master Boot Record (MBR). Ukoliko na računaru postoji samo jedan operativni sistem, onda je standardni MBR sasvim dovoljan za pokretanje sistema. Takav MBR će pronaći prvi boot slice (butabilnu particiju) na disku i pokrenuće kod koji učitava ostale delove operativnog sistema. Ukoliko je na računaru instalirano više sistema, onda će MBR morati da pita korisnika koji sistem da startuje. Ovakav MBR se naziva boot-manager. BootEasy je zvanični boot-manager FreeBSD-a. Nalazi se u MBR-u, ali i u /boot/boot0 fajlu. Za razliku od većine drugih boot-manager-a, njemu nije neophodno podesiti šta sve može da boot-uje, već će pri startovanju sam pronaći sve sisteme koji mogu da se startuju.

Dalje učitavanje FreeBSD-a je zbog ograničenja koje postavlja PC hardver, podeljen u tri faze: boot1, boot2 i loader.

boot1
/boot/boot1 je jednostavan program, velik samo 512 bajtova. On može da pročita informacije o particijama FreeBSD-a i može da pokrene boot2.
boot2
/boot/boot2 može da pristupi FreeBSD-ovom fajl sistemu i startuje loader (ili kernel direktno).
loader
/boot/loader - vrši učitavanje modula kernela zajedno sa kernelom. Pre startovanja kernela korisnik može da pokrene komandni interpreter kojim bi podesio koje module treba da učita i koji kernel da startuje.

Posle ove tri faze kernel se startuje i počinje sa ispitivanjem i inicijalizovanjem hardvera. Kada završi sa tim, pokreće se prvi korisnički proces /sbin/init. Ako je prilikom boot-ovanja prosledjen odredjeni parametar, ili ukoliko init otkrije neispravnost fajl sistema, FreeBSD se startuje u Single-User modu radi otklanjanja grešaka. Ukoliko nije, FreeBSD se startuje u Multi-User modu. Prvo se startuje shell, zatim se čita konfiguracioni fajl /etc/rc.conf, montiraju se fajl sistemi koji su podešeni u /etc/fstab fajlu, startuju se mrežni servisi, sistemski daemoni. Posle toga init startuje po jedan /usr/libexec/getty program za svaki terminal sistema. On čita sa terminala korisničko ime, a zatim pokreće /usr/bin/login program koji proverava ispravnost šifre i ako je ispravna pokreće korisnikov shell.

2000 - 2018, Autor - Marko Uskoković. Izrada i web prostor - Goran Aleksić.