Linuxové jádro je jako most, který umožňuje výpočetní komunikaci mezi aplikacemi a hardwarem a spravuje systémové prostředky. Linus Torvalds vyvinul linuxové jádro s C a Assembly, a tak se mu podařilo vytvořit lehké a přenosné jádro, které bylo uvolněno pro veřejnost jako open source.
Linuxové jádro můžete vidět v mnoha různých sektorech, jako je vesmír, počítače, chytré hodinky, mobilní telefony, robotika a zdraví. Ale přemýšleli jste někdy, jak funguje linuxové jádro pod kapotou?
Využití hardwaru na Linuxu
Linuxové jádro v první řadě řídí, jaký hardware poběží a jakým způsobem po zapnutí počítače. Díky programovacímu rozhraní je navíc možné ovládat špičkový software. Jako příklad těchto ovládacích prvků je možné zobrazit informace o hardwaru nainstalovaném ve slotech na vaší základní desce a využít tyto podrobné informace.
Toto programovací rozhraní také poskytuje vrstvu abstrakce. Pokud chcete například vést videokonverzaci s přáteli, budete potřebovat webovou kameru. Vrstva abstrakce umožňuje softwaru, který používáte, používat tuto webovou kameru bez ohledu na její značku a model. Software zde může používat pouze rozhraní, které existuje pro Linux. Linuxové jádro převádí volání funkcí tohoto rozhraní do skutečných hardwarových příkazů, které webová kamera potřebuje.
Za použití /proc a /sys virtuální souborové systémy, linuxové jádro umí exportovat podrobné informace o hardwaru zjistí. Níže vidíte několik nástrojů používaných k tomu a která zařízení a karty exportují:
- lspci: Pro zařízení PCI
- lsusb: Pro USB zařízení
- lspcmcia: Pro karty PCMCIA
Jak můžete vidět, distribuce Linuxu na výše uvedeném snímku běží na VirtualBoxu. Máte však možnost vidět spoustu informací, jako je VGA, USB řadič, mosty a SATA řadič.
Můžete také použít -proti parametr, abyste získali mnohem podrobnější informace.
V linuxovém jádře aplikace obvykle přistupují k zařízením prostřednictvím speciálních souborů, které existují v /dev adresář. Tyto speciální soubory představují diskové jednotky a další fyzická zařízení. Soubory jako např /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 a dev/snd/* jsou příklady těchto speciálních souborů.
Správa systému souborů Linux
Souborové systémy jsou jednou z nejpozoruhodnějších součástí linuxového jádra. Souborový systém Linuxu je jednou z jeho největších výhod. Všechny soubory v systému Linux se shromažďují do jediné větve. Uživatelé tak mohou využít tuto hierarchii k dosažení svých požadovaných míst.
Počátečním bodem této hierarchie je kořenový adresář (/). Ostatní podadresáře jsou v kořenovém adresáři. Nejpoužívanější podadresář pod / je /home adresář. Tento podadresář obsahuje další podadresáře a každý adresář má soubory, které ukládají aktuální data.
Můžete si například představit textový soubor na ploše. Pokud vytvoříte textový soubor tzv helloworld.txt na ploše, můžete jej označit jako /home/muo/Desktop/helloworld.txt. Příkladem /muo tady se to bude samozřejmě lišit. Protože tento název podadresáře závisí na jménu vašeho aktuálního uživatele. S tímto systémem pojmenování linuxové jádro překládá mezi skutečným a fyzickým úložištěm, které existuje na disku.
Linuxové jádro může také integrovat data z několika disků. Zde přichází na řadu montážní systém. Použije jeden z disků v kořenovém systému a ostatní připojí k existujícím adresářům v hierarchii. Další disky jsou pak umístěny pod upevňovací body. To umožňuje uživatelům ukládat /home adresář na druhém pevném disku, který také obsahuje další podadresáře.
Když připojíte disk k /home adresář, můžete k těmto adresářům přistupovat z normálních umístění. Tedy cesty jako např /home/muo/Desktop/helloworld.txt pokračovat v práci.
Přípojné body mezi soubory ve vašem systému můžete vidět pomocí nález -A příkaz.
S mnoha formáty systému souborů můžete data fyzicky ukládat na disky. Nejznámější na Linuxu jsou ext2, ext3, a ext4 formáty souborového systému. Existuje však mnoho dalších formátů souborového systému. V každém případě musíte souborový systém před připojením naformátovat. Můžete použít příkazy jako mkfs.ext3 (mkfs znamená make file system a ext3 je souborový systém).
Tyto příkazy přijímají jako parametr cestu k souboru zařízení, který chcete formátovat. Je to destruktivní operace a měli byste ji používat opatrně, pokud nechcete vymazat nebo resetovat souborový systém.
Kromě těchto existují také síťové systémy souborů, jako je NFS které používá linuxové jádro. NFS je síťový souborový systém, kde nejsou data uložena na lokálním disku. S NFS jdou data přes síť na server, který data ukládá. Vzhledem k tomu, že data budou na serveru, uživatelé se jimi nemusí neustále zabývat. Mohou také používat tradiční hierarchický souborový systém Linuxu jako obvykle.
Operace se sdílenými funkcemi
Veškerý software v systému Linux má společné funkce. To je důvod, proč jsou tyto funkce v jádře Linuxu ústřední. Například při otevírání souboru jej můžete otevřít pouze s názvem souboru, aniž byste věděli, kde je soubor fyzicky uložen a jaké funkce a operace bude používat. Všechny tyto funkce jsou již v jádře přítomny.
Soubor můžete uložit na pevný disk, rozdělit jej na několik pevných disků nebo jej dokonce ponechat na vzdáleném serveru. V takových případech jsou důležité komunikační funkce sdílených souborů. Aplikace si vyměňují data bez ohledu na to, jak se data přesouvají. K této výměně dat slouží funkce sdílené komunikace. Tento pohyb může být přes bezdrátové sítě nebo dokonce pevnou telefonní linku.
Správa procesů v Linuxu
Aktivní instance programu pracující s daty nebo informacemi v paměti se nazývá proces. Úkolem linuxového jádra je generovat a sledovat tyto paměťové oblasti. Jádro alokuje paměť pro běžící program a načte spustitelný kód do paměti ze systému souborů. Ihned poté jádro spustí kód.
Linuxové jádro podporuje multitasking. Je schopen spouštět mnoho procesů současně. V daném časovém rámci však probíhá pouze jedna transakce. Linuxové jádro však rozděluje čas na malé kousky a v důsledku toho se každý postup odehrává postupně.
Protože tyto malé časové úseky jsou v milisekundových přírůstcích, jsou aktivní pouze v určitých časech a po zbytek času zůstávají nečinné. Úkolem linuxového jádra je maximalizovat výkon spuštěním více procesů najednou.
Pokud jsou časové úseky příliš dlouhé, spuštěná aplikace nemusí reagovat tak, jak byste chtěli. Pokud jsou časové rámce příliš krátké, mohou nastat problémy se změnami úkolů. V závislosti na prioritě procesu se zde požadovaný časový interval liší. Možná jste již slyšeli o procesech s vysokou prioritou a procesech s nízkou prioritou. Toto je jedna z funkcí, které jádro Linuxu ovládá.
Toto vysvětlení není vždy správné. Skutečným omezením je, že na jedno procesorové jádro může být v jednu chvíli pouze jeden pracovní proces. Víceprocesorové systémy umožňují paralelní běh několika procesů. Základní systém má téměř vždy desítky běžících procesů.
Přístupová práva v Linuxu
Stejně jako u jiných operačních systémů můžete v systému Linux vytvořit mnoho uživatelů. V takových případech existuje systém správy práv, který podporuje jednotlivé uživatele a skupiny. To je kde souborová a uživatelská oprávnění Pojď do hry.
Linuxové jádro spravuje data a kontroluje potřebná oprávnění pro každý proces. Pokud se například pokusíte otevřít soubor, jádro musí zkontrolovat ID procesu oproti přístupovým oprávněním. Pokud jádro zkontroluje a uvidí, že máte oprávnění, otevře soubor.
Linuxové jádro řídí vše
Jak můžete vidět, linuxové jádro dohlíží na vše od zabezpečení souborů až po vytváření uživatelů a stahování souborů z internetu. Všechno je v určitém pořadí. Každý uživatel má práva. Linuxové jádro spravuje procesy a časové úseky pro špičkový výkon.
Navíc je velmi důležitý souborový systém, který je jednou z největších vlastností, které odlišují linuxové jádro od jiných operačních systémů. Linux není skrytá krabice. Naopak všechny soubory a zdrojové kódy jsou přístupné. Chcete-li lépe porozumět praktické a výkonné povaze linuxového jádra, můžete prozkoumat hierarchii adresářového systému Linux.