Linuxové jadro je ako most, ktorý umožňuje výpočtovú komunikáciu medzi aplikáciami a hardvérom a spravuje zdroje systému. Linus Torvalds vyvinul linuxové jadro s C a Assembly, a tak sa mu podarilo vytvoriť ľahké a prenosné jadro, ktoré bolo vydané pre verejnosť ako open source.

Linuxové jadro môžete vidieť v mnohých rôznych sektoroch, ako je vesmír, počítače, inteligentné hodinky, mobilné telefóny, robotika a zdravie. Zamysleli ste sa však niekedy nad tým, ako funguje jadro Linuxu pod kapotou?

Využitie hardvéru v systéme Linux

Linuxové jadro v prvom rade riadi, ktorý hardvér a akým spôsobom sa spustí pri zapnutí počítača. Ovládanie špičkového softvéru je navyše možné vďaka programovaciemu rozhraniu. Ako príklad týchto ovládacích prvkov je možné vidieť informácie o hardvéri nainštalovanom v slotoch na vašej základnej doske a využiť tieto podrobné informácie.

Toto programovacie rozhranie tiež poskytuje abstrakciu. Ak chcete napríklad viesť videokonverzáciu s priateľmi, budete potrebovať webovú kameru. Vrstva abstrakcie umožňuje softvéru, ktorý používate, používať túto webovú kameru bez ohľadu na jej značku a model. Softvér tu môže používať iba rozhranie, ktoré existuje pre Linux. Linuxové jadro prekladá volania funkcií tohto rozhrania na skutočné hardvérové ​​príkazy, ktoré webová kamera potrebuje.

instagram viewer

Pomocou /proc a /sys virtuálne súborové systémy, jadro Linuxu môže exportovať podrobné informácie o hardvéri zisťuje. Nižšie vidíte niekoľko nástrojov používaných na tento účel a ktoré zariadenia a karty exportujú:

  • lspci: Pre zariadenia PCI
  • lsusb: Pre USB zariadenia
  • lspcmcia: Pre karty PCMCIA

Ako vidíte, distribúcia Linuxu na obrázku vyššie beží na VirtualBoxe. Máte však možnosť vidieť množstvo informácií, ako sú VGA, USB radič, mosty a SATA radič.

Môžete tiež použiť -v parameter, aby ste získali oveľa podrobnejšie informácie.

V jadre Linuxu aplikácie zvyčajne pristupujú k zariadeniam prostredníctvom špeciálnych súborov, ktoré existujú v /dev adresár. Tieto špeciálne súbory predstavujú diskové jednotky a iné fyzické zariadenia. Súbory ako napr /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 a dev/snd/* sú príklady týchto špeciálnych súborov.

Správa systému súborov Linux

Súborové systémy sú jednou z najvýznamnejších súčastí linuxového jadra. Súborový systém Linuxu je jednou z jeho najväčších výhod. Všetky súbory v systéme Linux sa zhromažďujú do jednej vetvy. Používatelia tak môžu využiť túto hierarchiu na dosiahnutie požadovaných miest.

Počiatočným bodom tejto hierarchie je koreňový adresár (/). Ostatné podadresáre sú v koreňovom adresári. Najpoužívanejší podadresár pod / je /home adresár. Tento podadresár obsahuje ďalšie podadresáre a každý adresár má súbory, v ktorých sú uložené skutočné údaje.

Môžete si napríklad predstaviť textový súbor na pracovnej ploche. Ak vytvoríte textový súbor tzv helloworld.txt na pracovnej ploche ho môžete označiť ako /home/muo/Desktop/helloworld.txt. Príkladom /muo tu sa to bude samozrejme líšiť. Pretože tento názov podadresára závisí od mena vášho aktuálneho používateľa. S týmto systémom pomenovania jadro Linuxu prekladá medzi skutočným a fyzickým úložiskom, ktoré existuje na disku.

Linuxové jadro môže tiež integrovať údaje z niekoľkých diskov. Tu prichádza na rad montážny systém. Používa jeden z diskov v koreňovom systéme a ostatné pripája do existujúcich adresárov v hierarchii. Ostatné disky sa potom umiestnia pod body pripojenia. To umožňuje používateľom ukladať /home adresár na druhom pevnom disku, ktorý obsahuje aj ďalšie podadresáre.

Keď pripojíte disk k /home k týmto adresárom máte prístup z normálnych umiestnení. Teda cesty ako napr /home/muo/Desktop/helloworld.txt pokračovať v práci.

Body pripojenia medzi súbormi vo vašom systéme môžete vidieť pomocou nález -A príkaz.

S mnohými formátmi súborových systémov môžete fyzicky ukladať údaje na disky. Najznámejšie na Linuxe sú ext2, ext3, a ext4 formáty súborových systémov. Existuje však mnoho ďalších formátov súborových systémov. V každom prípade musíte súborový systém pred jeho pripojením naformátovať. Môžete použiť príkazy ako mkfs.ext3 (mkfs znamená make file system a ext3 je súborový systém).

Tieto príkazy akceptujú cestu k súboru zariadenia, ktorý chcete formátovať, ako parameter. Je to deštruktívna operácia a mali by ste ju používať opatrne, ak nechcete vymazať alebo resetovať súborový systém.

Okrem týchto existujú aj sieťové súborové systémy, ako napríklad NFS ktoré používa jadro Linuxu. NFS je sieťový súborový systém, kde dáta nie sú uložené na lokálnom disku. Pomocou NFS prechádzajú údaje cez sieť na server, ktorý ich ukladá. Keďže dáta budú na serveri, používatelia sa nimi nemusia neustále zaoberať. Môžu tiež používať tradičný hierarchický súborový systém Linuxu ako obvykle.

Operácie so zdieľanými funkciami

Všetok softvér v systéme Linux má spoločné funkcie. To je dôvod, prečo sú tieto funkcie ústredným prvkom jadra Linuxu. Napríklad pri otváraní súboru ho môžete otvoriť iba s názvom súboru bez toho, aby ste vedeli, kde je súbor fyzicky uložený a aké funkcie a operácie bude používať. Všetky tieto funkcie sú už prítomné v jadre.

Súbor môžete uložiť na pevný disk, rozdeliť ho na niekoľko pevných diskov alebo ho dokonca ponechať na vzdialenom serveri. V takýchto prípadoch sú dôležité komunikačné funkcie zdieľaných súborov. Aplikácie si vymieňajú údaje bez ohľadu na to, ako sa údaje presúvajú. Na tieto výmeny údajov slúžia funkcie zdieľanej komunikácie. Tento presun môže byť cez bezdrôtové siete alebo dokonca pevnú telefónnu linku.

Riadenie procesov v Linuxe

Aktívna inštancia programu pracujúca s údajmi alebo informáciami v pamäti je známa ako proces. Úlohou linuxového jadra je generovať a sledovať tieto pamäťové oblasti. Jadro alokuje pamäť pre spustený program a načíta spustiteľný kód do pamäte zo súborového systému. Ihneď potom jadro spustí kód.

Linuxové jadro podporuje multitasking. Je schopný spustiť viacero procesov súčasne. V danom časovom rámci však existuje iba jedna transakcia. Avšak jadro Linuxu rozdeľuje čas na malé kúsky a výsledkom je, že každý postup prebieha postupne.

Pretože tieto malé časové segmenty sú v milisekundových prírastkoch, sú aktívne iba v určitých časoch a zostávajú nečinné po zvyšok času. Úlohou linuxového jadra je maximalizovať výkon spustením viacerých procesov naraz.

Ak sú časové úseky príliš dlhé, spustená aplikácia nemusí reagovať tak, ako by ste chceli. Ak sú časové rámce príliš krátke, môžu sa vyskytnúť problémy so zmenami úloh. V závislosti od priority procesu sa interval požadovaného časového rámca bude líšiť. Možno ste už počuli o procesoch s vysokou prioritou a procesoch s nízkou prioritou. Toto je jedna z funkcií, ktoré riadi jadro Linuxu.

Toto vysvetlenie nie je vždy správne. Skutočným obmedzením je, že na jedno jadro procesora môže naraz existovať iba jeden pracovný proces. Viacprocesorové systémy umožňujú paralelný chod niekoľkých procesov. Základný systém má takmer vždy desiatky spustených procesov.

Prístupové práva v systéme Linux

Rovnako ako pri iných operačných systémoch, aj v systéme Linux môžete vytvoriť veľa používateľov. V takýchto prípadoch existuje systém správy práv, ktorý podporuje jednotlivých používateľov a skupiny. Toto je kde oprávnenia súborov a používateľov vstúpiť do hry.

Linuxové jadro spravuje údaje a kontroluje potrebné povolenia pre každý proces. Napríklad, ak sa pokúsite otvoriť súbor, jadro musí porovnať ID procesu s prístupovými povoleniami. Ak jadro skontroluje a uvidí, že máte povolenia, otvorí súbor.

Linuxové jadro riadi všetko

Ako vidíte, linuxové jadro dohliada na všetko od zabezpečenia súborov až po vytváranie používateľov a sťahovanie súborov z internetu. Všetko je v určitom poradí. Každý užívateľ má práva. Linuxové jadro spravuje procesy a časové úseky pre špičkový výkon.

Okrem toho je veľmi dôležitý súborový systém, ktorý je jednou z najväčších vlastností, ktoré odlišujú jadro Linuxu od iných operačných systémov. Linux nie je skrytá schránka. Naopak, všetky súbory a zdrojové kódy sú prístupné. Ak chcete lepšie pochopiť praktickú a výkonnú povahu linuxového jadra, môžete preskúmať hierarchiu adresárového systému Linux.