Linuxi tuum on nagu sild, mis võimaldab arvutisuhtlust rakenduste ja riistvara vahel ning haldab süsteemi ressursse. Linus Torvalds arendas Linuxi tuuma koos C ja Assemblyga ning seega õnnestus tal luua kerge ja kaasaskantav tuum, mis avaldati avalikkusele avatud lähtekoodiga.
Näete Linuxi tuuma paljudes erinevates sektorites, nagu kosmos, arvutid, nutikellad, mobiiltelefonid, robootika ja tervishoid. Kuid kas olete kunagi mõelnud, kuidas Linuxi kernel kapoti all töötab?
Riistvara kasutamine Linuxis
Eelkõige juhib Linuxi tuum, milline riistvara arvuti sisselülitamisel töötab ja mil viisil. Lisaks on tänu programmeerimisliidesele võimalik juhtida tipptarkvara. Nende juhtelementide näitena saate vaadata teavet emaplaadi pesadesse installitud riistvara kohta ja sellest üksikasjalikust teabest kasu saada.
Samuti pakub see programmeerimisliides abstraktsioonikihti. Näiteks kui soovite oma sõpradega videovestlust pidada, vajate veebikaamerat. Abstraktsioonikiht võimaldab teie kasutataval tarkvaral seda veebikaamerat kasutada olenemata selle margist ja mudelist. Siinne tarkvara saab kasutada ainult Linuxi jaoks olemasolevat liidest. Linuxi kernel tõlgib selle liidese funktsioonikutsed tegelikeks riistvarakäskudeks, mida veebikaamera vajab.
Kasutades /proc ja /sys virtuaalsed failisüsteemid, saab Linuxi kernel eksportida üksikasjalikku teavet riistvara kohta see tuvastab. Allpool näete mõnda selleks kasutatud tööriista ning milliseid seadmeid ja kaarte need ekspordivad.
- lspci: PCI-seadmete jaoks
- lsusb: USB-seadmete jaoks
- lspcmcia: PCMCIA kaartide jaoks
Nagu näete, töötab ülaltoodud ekraanipildil olev Linuxi distributsioon VirtualBoxis. Siiski on teil võimalus näha palju teavet, nagu VGA, USB-kontroller, sillad ja SATA-kontroller.
Võite kasutada ka -v parameetrit, et saada palju üksikasjalikumat teavet.
Linuxi tuumas pääsevad rakendused seadmetele tavaliselt ligi spetsiaalsete failide kaudu, mis on olemas /dev kataloog. Need erifailid esindavad kettaseadmeid ja muid füüsilisi seadmeid. Failid nagu /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 ja dev/snd/* on nende erifailide näited.
Linuxi failisüsteemi haldamine
Failisüsteemid on Linuxi kerneli üks tähelepanuväärsemaid komponente. Linuxi failisüsteem on üks selle suurimaid eeliseid. Kõik Linuxi süsteemi failid koondatakse ühte haru. Kasutajad võivad seega kasutada seda hierarhiat soovitud kohtadesse jõudmiseks.
Selle hierarhia lähtepunkt on juurkataloog (/). Teised alamkataloogid asuvad juurkataloogi all. Enimkasutatav alamkataloog all / on /home kataloog. See alamkataloog sisaldab teisi alamkatalooge ja igas kataloogis on failid, mis salvestavad tegelikke andmeid.
Näiteks võite mõelda tekstifailile oma töölaual. Kui loote tekstifaili nimega helloworld.txt oma töölaual, võite sellele viidata kui /home/muo/Desktop/helloworld.txt. Näide sellest /muo siin muidugi varieerub. Kuna see alamkataloogi nimi sõltub teie praegusest kasutajanimest. Selle nimesüsteemiga tõlgib Linuxi tuum ketta tegeliku ja füüsilise salvestusruumi vahel.
Samuti saab Linuxi kernel integreerida andmeid mitmelt kettalt. Siin tuleb mängu paigaldussüsteem. See kasutab üht juursüsteemi kettast ja ühendab teised hierarhias olemasolevatesse kataloogidesse. Teised kettad asetatakse seejärel kinnituspunktide alla. See võimaldab kasutajatel salvestada /home kataloogi teisel kõvakettal, mis sisaldab ka muid alamkatalooge.
Kui ühendate ketta seadmele /home kataloogi, pääsete neile kataloogidele juurde tavalistest asukohtadest. Seega rajad nagu /home/muo/Desktop/helloworld.txt tööd jätkata.
Näete oma süsteemis olevate failide vahel olevaid ühenduspunkte leid -A käsk.
Paljude failisüsteemivormingutega saate andmeid füüsiliselt ketastele salvestada. Kõige tuntumad Linuxis on ext2, ext3ja ext4 failisüsteemi vormingud. Siiski on palju muid failisüsteemi vorminguid. Igal juhul peate failisüsteemi enne ühendamist vormindama. Võite kasutada selliseid käske nagu mkfs.ext3 (mkfs tähistab make failisüsteemi ja ext3 on failisüsteem).
Need käsud aktsepteerivad parameetrina seadme failitee, mida soovite vormindada. See on hävitav toiming ja peaksite seda kasutama ettevaatlikult, kui te ei soovi failisüsteemi kustutada või lähtestada.
Peale nende on ka võrgu failisüsteemid, näiteks NFS mida Linuxi kernel kasutab. NFS on võrgu failisüsteem, kus andmeid ei salvestata kohalikule kettale. NFS-i abil lähevad andmed üle võrgu serverisse, mis andmeid salvestab. Kuna andmed asuvad serveris, ei pea kasutajad nendega pidevalt tegelema. Nad saavad tavapäraselt kasutada ka Linuxi traditsioonilist hierarhilist failisüsteemi.
Jagatud funktsioonide toimingud
Kogu Linuxi süsteemi tarkvaral on ühised funktsioonid. Seetõttu on need funktsioonid Linuxi tuumas kesksel kohal. Näiteks faili avamisel saate selle avada ainult failinimega, teadmata, kuhu fail füüsiliselt salvestatakse ning milliseid funktsioone ja toiminguid see kasutab. Kõik need funktsioonid on juba tuumas olemas.
Saate salvestada oma faili kõvakettale, jagada selle mitme kõvaketta vahel või isegi hoida seda kaugserveris. Jagatud failisidefunktsioonid on sellistel juhtudel olulised. Rakendused vahetavad andmeid olenemata sellest, kuidas andmeid teisaldatakse. Nende andmevahetuste tegemiseks on olemas jagatud sidefunktsioonid. See liikumine võib toimuda traadita võrkude või isegi tavatelefoniliini kaudu.
Protsessihaldus Linuxis
Programmi aktiivset eksemplari, mis töötab mälus olevatel andmetel või teabel, nimetatakse protsessiks. Linuxi kerneli ülesanne on neid mälupiirkondi genereerida ja jälgida. Kernel eraldab mälu töötava programmi jaoks ja laadib käivitatava koodi failisüsteemist mällu. Vahetult pärast seda käivitab kernel koodi.
Linuxi kernel toetab multitegumtöötlust. See on võimeline käivitama mitut protsessi korraga. Siiski on igal ajaperioodil ainult üks tehing. Kuid Linuxi kernel jagab aja väikesteks tükkideks ja selle tulemusena toimub iga protseduur järjestikku.
Kuna need väikesed ajalõigud on millisekundite kaupa, on need aktiivsed ainult teatud kellaaegadel ja jäävad ülejäänud aja jõude. Linuxi kerneli ülesanne on jõudlust maksimeerida, käivitades korraga mitu protsessi.
Kui ajapilud on liiga pikad, ei pruugi töötav rakendus olla nii tundlik, kui soovite. Kui ajaraamid on liiga lühikesed, võib ülesannete muutmisel tekkida probleeme. Sõltuvalt protsessi prioriteedist erineb siin nõutav ajavahemik. Võib-olla olete varem kuulnud kõrge prioriteediga ja madala prioriteediga protsessidest. See on üks funktsioone, mida Linuxi kernel juhib.
See seletus ei ole alati õige. Tõeline piirang on see, et protsessori tuuma kohta saab korraga olla ainult üks töötaja protsess. Mitmeprotsessorilised süsteemid võimaldavad mitmel protsessil paralleelselt töötada. Põhisüsteemis on peaaegu alati kümneid töötavaid protsesse.
Juurdepääsuõigused Linuxis
Nagu ka teiste operatsioonisüsteemide puhul, saate ka Linuxi süsteemis luua palju kasutajaid. Sellistel juhtudel on olemas õiguste haldussüsteem, mis toetab üksikuid kasutajaid ja gruppe. See on koht faili ja kasutaja õigused mängu tulla.
Linuxi kernel haldab andmeid ja kontrollib iga protsessi jaoks vajalikke õigusi. Näiteks kui proovite faili avada, peab kernel kontrollima protsessi ID-d juurdepääsuõiguste suhtes. Kui kernel kontrollib ja näeb, et teil on õigused, avab see faili.
Linuxi kernel juhib kõike
Nagu näete, jälgib Linuxi kernel kõike alates teie failiturvalisusest kuni kasutajate loomise ja failide Internetist allalaadimiseni. Kõik on kindlas järjekorras. Igal kasutajal on õigused. Linuxi tuum haldab protsesse ja ajapilusid, et saavutada maksimaalne jõudlus.
Veelgi enam, failisüsteem, mis on üks suurimaid funktsioone, mis eristab Linuxi tuuma teistest operatsioonisüsteemidest, on väga oluline. Linux ei ole peidetud kast. Vastupidi, kõik failid ja lähtekoodid on juurdepääsetavad. Linuxi tuuma praktilise ja võimsa olemuse paremaks mõistmiseks võite uurida Linuxi kataloogisüsteemi hierarhiat.