Operacijski sistem Linux
Za avtorja operacijskega sistema Linux velja finski študent Linus Torvalds. Leta 1991 je spisal prvo jedro operacijskega sistema, ki se zgleduje po operacijskem sistemu Unix, vendar deluje na PC-združljivih 32-bitnih procesorjih. Že od začetka je kodo operacijskega sistema Linux objavil v internetu, zaradi česar se je projektu izgradnje Linux-a pridruževalo vedno večje število programerjev. Rezultat tega razvoja, ki je skoraj izključno potekal preko omrežja Internet, je današnje jedro operacijskega sistema Linux. Današnje Linux distribucije poleg jedra vključujejo še obilo druge programske opreme, namenjene upravljanju s sistemom, lažjo namestitev in nadgradnjo in kopico uporabniške programske opreme.
Mejniki v razvoju jedra se označujejo z števili. Stabilne različice jedra se končujejo s sodim številom (npr. verzija 2.4), razvojne različice pa z lihim številom (verzija 2.5).
Linux je večuporabniški in večopravilni operacijski sistem. Teče na številni, zelo različni strojni opremi. Jedro je enovito, podobno kot jedro operacijskega sistema Unix. Razlog za enovito jedro so boljše performanse. Ker so celotno jedro in podatkovne strukture v enem naslovnem prostoru je število preklapljanj konteksta precej manjše.
Pri načrtovanju jedra se veliko pozornosti posveča združljivosti s POSIX specifikacijami. POSIX standard opisuje obnašanje operacijskega sistema.
sistemski programi za upravljanje sistema | uporabniški procesi | prevajalniki |
sistemske deljene knjižnjice | ||
Linux jedro | ||
naložljivi moduli jedra |
Slika 4: Deli Linux sistema
Linux sistem sestoji iz jedra, sistemskih knjižnjic in sistemskih orodij. Naloga jedra je abstrakcija sistema v najširšem smislu. Sistemske knjižnjice opredeljujejo standarden nabor funkcij s pomočjo katerih lahko programi vzpostavi stik z jedrom. Izvršitev sistemskega klica pomeni prenos kontrole iz nepriviligiranega uporabniškega načina dela v priviligiran sistemski način delovanja. Način prenosa je na različnih sistemih lahko izvršen različno. Hkrati knjižnjice implementirajo funkcionalnosti operacijskega sistema, ki za svoje izvrševanje ne potrebujejo polnih pooblasti.
Sistemska orodja so programi, ki opravljajo določeno opravilo. Lahko se izvršijo samo enkrat, na primer ob zagonu, ali pa tečejo v ozadju kot servisi (daemons). Sem prištevamo vse programe, ki poskrbijo za inicializacijo sistema (nalaganje modulov, konfiguracija omrežja), programe, ki tečejo celoten čas delovanja sistema in čakajo na zahteve za prijavo v sistem, vzpostavitev povezav in čakalnih vrst za tiskanje, kakor tudi enostavne programe za delo z mapami in datotekami.
Linux jedro lahko dele svoje kode po potrebi naloži ali umakne iz pomnilnika. Ti deli imenovani moduli (kernel modules) tečejo v priviligiranem načinu delovanja in imajo polen dostop do vseh virov sistema. Moduli lahko v bistvu predstavljajo karkoli, lahko je to gonilnik naprave, datotečni sistem ali omrežni protokol.
Uporaba modulov ima vsaj dve prednosti. Linux jedro je prosto dostopno, tako lahko vsak napiše npr. gonilnik za neko novo napravo, ga prevede in vključi v jedro. Prevajanje celotnega jedra ni potrebno. Prav tako omogočajo moduli zaganjanje Linux sistema z minimalno velikostjo jedra. Vsak modul se naloži po potrebi.