Jedro Linuxa je kot most, ki omogoča računalniško komunikacijo med aplikacijami in strojno opremo ter upravlja vire sistema. Linus Torvalds je razvil jedro Linuxa s C in Assembly in tako mu je uspelo ustvariti lahko in prenosljivo jedro, ki je bilo javno objavljeno kot odprtokodno.
Jedro Linuxa lahko vidite v številnih različnih sektorjih, kot so vesolje, računalniki, pametne ure, mobilni telefoni, robotika in zdravje. Toda ali ste se kdaj vprašali, kako jedro Linuxa deluje pod pokrovom?
Uporaba strojne opreme v sistemu Linux
Jedro Linuxa najprej nadzira, katera strojna oprema bo delovala in na kakšen način, ko vklopite računalnik. Poleg tega je zahvaljujoč programskemu vmesniku mogoč nadzor nad vrhunsko programsko opremo. Če navedem primer teh kontrolnikov, si lahko ogledate informacije o strojni opremi, nameščeni v režah na vaši matični plošči, in izkoristite te podrobne informacije.
Poleg tega ta programski vmesnik zagotavlja plast abstrakcije. Na primer, če želite imeti video pogovor s prijatelji, boste potrebovali spletno kamero. Abstraktna plast omogoča programski opremi, ki jo uporabljate, uporabo te spletne kamere ne glede na njeno znamko in model. Programska oprema tukaj lahko uporablja samo vmesnik, ki obstaja za Linux. Jedro Linuxa prevede klice funkcij tega vmesnika v dejanske ukaze strojne opreme, ki jih potrebuje spletna kamera.
Uporabljati /proc in /sys navideznih datotečnih sistemov lahko jedro Linuxa izvozite podrobne informacije o strojni opremi zazna. Spodaj si lahko ogledate nekaj orodij, ki se uporabljajo za to, ter katere naprave in kartice izvozijo:
- lspci: Za naprave PCI
- lsusb: Za naprave USB
- lspcmcia: Za kartice PCMCIA
Kot lahko vidite, distribucija Linuxa na zgornjem posnetku zaslona deluje na VirtualBoxu. Vendar pa imate možnost videti veliko informacij, kot so VGA, krmilnik USB, mostovi in krmilnik SATA.
Uporabite lahko tudi -v parameter za pridobitev veliko bolj podrobnih informacij.
V jedru Linuxa aplikacije običajno dostopajo do naprav prek posebnih datotek, ki obstajajo v /dev imenik. Te posebne datoteke predstavljajo diskovne pogone in druge fizične naprave. Datoteke, kot je npr /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 in dev/snd/* so primeri teh posebnih datotek.
Upravljanje datotečnega sistema Linux
Datotečni sistemi so ena najbolj opaznih komponent jedra Linuxa. Datotečni sistem Linuxa je ena njegovih največjih prednosti. Vse datoteke v sistemu Linux so zbrane v eno vejo. Uporabniki lahko tako uporabijo to hierarhijo, da dosežejo želena mesta.
Začetna točka te hierarhije je korenski imenik (/). Drugi podimeniki so pod korenskim imenikom. Najpogosteje uporabljen podimenik pod / ali je /home imenik. Ta podimenik vsebuje druge podimenike in vsak imenik ima datoteke, ki shranjujejo dejanske podatke.
Omislite si lahko na primer besedilno datoteko na namizju. Če ustvarite besedilno datoteko, imenovano helloworld.txt na namizju, ga lahko imenujete /home/muo/Desktop/helloworld.txt. Primer za /muo tukaj se bo seveda razlikovalo. Ker je ime tega podimenika odvisno od imena vašega trenutnega uporabnika. S tem sistemom poimenovanja jedro Linuxa prevaja med dejanskim in fizičnim pomnilnikom, ki obstaja na disku.
Prav tako lahko jedro Linuxa integrira podatke z več diskov. Tu pride v poštev sistem pritrditve. Uporablja enega od diskov v korenskem sistemu, druge pa pripne v obstoječe imenike v hierarhiji. Drugi diski so nato postavljeni pod točke namestitve. To uporabnikom omogoča shranjevanje /home imenik na drugem trdem disku, ki vsebuje tudi druge podimenike.
Ko priklopite disk na /home imenik, lahko do teh imenikov dostopate z običajnih lokacij. Tako so poti kot npr /home/muo/Desktop/helloworld.txt nadaljujte z delom.
Točke priklopa med datotekami v vašem sistemu lahko vidite z najdba -A ukaz.
S številnimi formati datotečnega sistema lahko podatke fizično shranite na diske. Najbolj znani v Linuxu so ext2, ext3, in ext4 formati datotečnega sistema. Vendar pa obstaja veliko drugih formatov datotečnih sistemov. V vsakem primeru morate formatirati datotečni sistem, preden ga namestite. Uporabite lahko ukaze, kot je mkfs.ext3 (mkfs pomeni make file system in ext3 je datotečni sistem) za to.
Ti ukazi sprejmejo pot datoteke naprave, ki jo želite formatirati, kot parameter. To je destruktivna operacija in jo morate uporabljati previdno, če ne želite izbrisati ali ponastaviti datotečnega sistema.
Poleg teh obstajajo tudi omrežni datotečni sistemi, kot je NFS ki jih uporablja jedro Linuxa. NFS je omrežni datotečni sistem, kjer podatki niso shranjeni na lokalnem disku. Z NFS gredo podatki po omrežju do strežnika, ki jih shrani. Ker bodo podatki na strežniku, se uporabnikom ni treba nenehno ukvarjati z njimi. Kot običajno lahko uporabljajo tudi tradicionalni hierarhični datotečni sistem Linuxa.
Operacije skupnih funkcij
Vsa programska oprema v sistemu Linux ima skupne funkcije. Zato so te funkcije osrednjega pomena v jedru Linuxa. Na primer, ko odprete datoteko, jo lahko odprete le z imenom datoteke, ne da bi vedeli, kje je datoteka fizično shranjena in katere funkcije in operacije bo uporabljala. Vse te funkcije so že prisotne v jedru.
Datoteko lahko shranite na trdi disk, jo razdelite na več trdih diskov ali jo celo hranite na oddaljenem strežniku. Komunikacijske funkcije skupne datoteke so v takih primerih pomembne. Aplikacije izmenjujejo podatke ne glede na to, kako se podatki premikajo. Skupne komunikacijske funkcije so namenjene izmenjavi teh podatkov. Ta poteza je lahko prek brezžičnih omrežij ali celo fiksne telefonske linije.
Upravljanje procesov v Linuxu
Aktivni primerek programa, ki deluje na podatkih ali informacijah v pomnilniku, je znan kot proces. Naloga jedra Linuxa je ustvariti in spremljati te pomnilniške regije. Jedro dodeli pomnilnik za delujoč program in naloži izvršljivo kodo v pomnilnik iz datotečnega sistema. Takoj zatem jedro zažene kodo.
Jedro Linuxa podpira večopravilnost. Sposoben je izvajati številne procese hkrati. Vendar obstaja samo ena transakcija v danem časovnem okviru. Vendar pa jedro Linuxa razdeli čas na majhne koščke in posledično vsak postopek poteka zaporedno.
Ker so ti majhni časovni segmenti v korakih po milisekundah, so aktivni samo ob določenih časih, preostali čas pa ne delujejo. Naloga jedra Linuxa je povečati zmogljivost z izvajanjem več procesov hkrati.
Če so časovni reži predolgi, aplikacija, ki se izvaja, morda ne bo tako odzivna, kot bi želeli. Če so časovni okviri prekratki, lahko pride do težav s spremembami nalog. Odvisno od prioritete postopka se tukaj zahtevani časovni okvir razlikuje. Morda ste že slišali za procese z visoko prioriteto in procese z nizko prioriteto. To je ena od funkcij, ki jih nadzoruje jedro Linuxa.
Ta razlaga ni vedno pravilna. Resnična omejitev je, da lahko naenkrat obstaja samo en delovni proces na procesorsko jedro. Večprocesorski sistemi omogočajo vzporedno izvajanje več procesov. Osnovni sistem ima skoraj vedno na desetine tekočih procesov.
Pravice dostopa v Linuxu
Kot pri drugih operacijskih sistemih lahko tudi v sistemu Linux ustvarite veliko uporabnikov. V takih primerih obstaja sistem za upravljanje pravic, ki podpira posamezne uporabnike in skupine. Tukaj je dovoljenja za datoteke in uporabnike pridejo v poštev.
Jedro Linuxa upravlja podatke in preverja potrebna dovoljenja za vsak proces. Na primer, če poskušate odpreti datoteko, mora jedro preveriti ID procesa glede na dovoljenja za dostop. Če jedro preveri in vidi, da imate dovoljenja, bo odprlo datoteko.
Jedro Linuxa nadzoruje vse
Kot lahko vidite, jedro Linuxa nadzira vse, od varnosti datotek do ustvarjanja uporabnikov in prenosa datotek iz interneta. Vse je v določenem vrstnem redu. Vsak uporabnik ima pravice. Jedro Linuxa upravlja procese in časovne reže za vrhunsko zmogljivost.
Poleg tega je zelo pomemben datotečni sistem, ki je ena največjih lastnosti, ki razlikujejo jedro Linuxa od drugih operacijskih sistemov. Linux ni skrita škatla. Nasprotno, vse datoteke in izvorne kode so dostopne. Če želite bolje razumeti praktično in zmogljivo naravo jedra Linuxa, lahko preučite hierarhijo sistema imenikov Linux.