Linuxové jádro

Z Wikipedie, otevřené encyklopedie

Skočit na: Navigace, Hledání
Linux
vývojář Linus Torvalds (tvůrce) a další
aktuální verze 2.6.29 (23. března 2009)
OS -
typ softwaru Jádro operačního systému
licence GPL
web http://www.kernel.org/
logo produktu Linuxový maskot Tux (vytvořil Larry Ewing)

Linuxové jádro nebo též kernel Linuxu je jádro svobodného operačního systému unixového typu. V roce 1991 jej začal vyvíjet Linus Torvalds, ale následně se přidaly tisíce programátorů z celého světa.

Původně bylo napsáno pro procesory architektury i386, ale postupně bylo portováno na mnoho dalších platforem. Skoro celé je napsáno v jazyce C s některými rozšířeními GCC, ale obsahuje i některé kousky assembleru (v AT&T syntaxi).

Je vyvíjeno pod licencí GNU General Public License (GPL), takže zdrojový kód je svobodným softwarem.

Linuxové jádro je známo jako základ systému GNU/Linux. Kromě jádra tvoří systém i další knihovny, nástroje a programy a celek se nazývá GNU/Linuxová distribuce, kterých existuje velké množství.

Do linuxového jádra přispívá téměř 1000 vývojářů ze 100 různých firem z celého světa. Od roku 2005 se počet vývojářů ztrojnásobil. 70-95% vývojářů je za svoji práci placeno, čili neplatí mýtus, že je jádro vyvíjeno jen dobrovolníky. Největšími přispěvateli do jádra jsou společnosti Red Hat (11,2 % změn) Novell (8,9 % změn), IBM (8,3 % změn) a následují Oracle, MontaVista a Cisco. Do jádra se denně připíše 3621 řádka kódu a nová verze vychází jednou za 2,7 měsíce.[1]

Obsah

[editovat] Historie

Historicky první Linuxové jádro bylo označeno verzí 0.01 [1], Linus Torvalds k němu napsal v roce 1991 do usenetové skupiny comp.os.minix se slovy:

Pracuji na (svobodném) operačním systému (jako koníček, nebude to velké a profesionální jako gnu) pro klony 386(486) AT.
— Linus Torvalds

Linus Torvalds chtěl svůj systém pojmenovat Freax, slovo vzniklé zkombinovaním anglického slova freak (případně free) a písmene x jako odkazu na Unix, protože Linux se mu zdálo příliš sebestředné. Když později své soubory nahrál na ftp server (ftp.funet.fi), administrátor serveru Ari Lemmke adresář se soubory nazval Linux, jelikož se mu jméno Freax nelíbilo.[2]

[editovat] Časová osa

  • duben 1991 – Tehdy 21letý Linus Torvalds začíná pracovat na jednoduchých funkcích operačního systému.
  • 0.11 – prosinec 1991 – První verze, pod kterou lze zkompilovat Linux 0.11.
  • 0.95 – březen 1992 – První verze schopná spuštění X Window System.

[editovat] Verze

[editovat] Číslování verzí

Verze jádra jsou (až na níže uvedenou výjimku) značeny trojicí číslic oddělenými tečkami např. 2.0.10, 2.2.23, 2.4.31 a z poslední řady 2.6.1. První dvě čísla označují tzv. vývojovou řadu neboli větev (2.0.x, 2.5.x, 2.6.x). Řady se sudým druhým číslem jsou stabilní, ostatní jsou nestabilní. Nestabilní řady přecházejí ve stabilní, které se vyvíjí paralelně. Například řada 2.3 přešla v 2.4, řada 2.5 přešla v 2.6 (ale 2.4 se stále vyvíjí). Některé vlastnosti z novějších řad se přenášejí i do starších - tomu se říká backport.

Mezi každou změnou číslice za druhou tečkou ve verzi přichází na řadu kandidáti novější verze.

Vezmeme-li v úvahu jádro 2.6.16, následníkem je 2.6.17. Jeho finálnímu uvolnění předchází vystavení balíků v kandidátské verzi 2.6.17-rc1, -rc2 atd. většinou v týdenních intervalech. Až poté, co se vývoj dostatečně ustabilní (v posledních -rc je změn méně a vetšinou jen záplatového typu), uvolní se finální verze, ve zmíněném případě to bude 2.6.17.

V nedávné době doznalo číslování drobných změn. Řada 2.6 je nyní vydávána s dalším (čtvrtým) podčíslem. Po uvolnění finální verze (2.6.17) se začne vyvíjet 2.6.18-rc1, -rc2 atd. Pokud se během vývoje objeví opravy kritických nebo bezpečnostních chyb, jsou zařazeny do podverze poslední stabilní verze (2.6.17.1, 2.6.17.2 atd.). Vývojové -rc verze totiž obsahují nové neotestované vlastnosti a proto většina uživatelů používá stabilní verze. Tyto opravné verze umožní uživateli mít stabilní jádro s posledními bezpečnostními bugfixy (opravami bugů).

Nemůžeme opomenout jádra vydávaná různými osobami. Přípona tvořená ze znaků jména, přezdívky či zkratky účelu je obvykle připojovaná na konec verze. Chceme-li použít real-time jádro, získáme aplikovatelný kód, který přidá do názvu -rt. Vývojáři nezřídka kdy používají jádro Andrew Mortona s příponou -mm, svého času bylo populární i -ac Alana Coxe.

[editovat] Údržba

Linus Torvalds dohlíží pouze na změny týkající se poslední verze jádra. Správu starších verzí svěřil do rukou jiným programátorům:

Stabilní řada jádra Správce
2.0 David Weinehall
2.2 Marc-Christian Petersen (původně Alan Cox)
2.4 Willy Tarreau (původně Marcelo Tosatti)
2.6 Andrew Morton / Linus Torvalds

[editovat] Historie stabilních verzí

[editovat] Architektura

Linuxové jádro je koncipováno jako jednolitá část kódu s podporou načítání externích modulů. Toho se používá kvůli zvýšení stability, urychlení běhu jádra, zmenšení velikosti samotného jádra a zmenšení paměťových nároků.

Linuxové jádro obsahuje podporu opravdového multitaskingu (umožňuje provozovat více úloh/aplikací zároveň), virtuální paměti, správy paměti (správa paměti řízená jádrem, nikoli aplikacemi), sdílených knihoven, modulů, sdílených copy-on-write spustitelných souborů a nezávislých síťových vrstev podporujících mimo jiné síťové protokoly IPv4 a IPv6.

V současné době je Linux modulárním monolitickým jádrem. Ovladače zařízení typicky běží v ring 0 s plným přístupem k hardwaru, avšak některé se nacházejí v uživatelském prostoru. Na rozdíl od standardních monolitických jader lze ovladače zařízení jednoduše konfigurovat jako moduly a za běhu je zavádět či odstraňovat. Rovněž na rozdíl od typických monolitických jader lze na moduly za určitých podmínek uplatňovat preemptivní multitasking. Tato vlastnost byla přidána za účelem lepšího řízení hardwarových přerušení a pro zlepšení podpory symetrického multiprocessingu. Preemptivnost navíc snižuje latenci, a tak zvyšuje citlivost, což je důležité v real-time aplikacích a desktopových nasazeních.

Fakt, že Linux není mikrojádro byl známým tématem flame waru mezi Linusem Torvaldsem a Andy Tanenbaumem v diskusní skupině comp.os.minix v roce 1992. [2] [3]

[editovat] Programovací jazyky

V současné době je z těch vyšších podporován pouze jazyk C. Existují však rozšíření umožňující programování součástí v jazyce C++. Tato skutečnost byla mnohokrát diskutována, nicméně s výsledkem takovým, že nelze podporu C++ v nativním jádře Linuxu očekávat ani v budoucnu.

Platformně závislé úseky vyžadovaly komunikaci s hardware na nižší úrovni, proto v podstromu architektur lehce narazíme na kód psaný základním strojovým jazykem – assemblerem.

[editovat] Přenositelnost

Linux momentálně dokáže běžet na následujících počítačových platformách:

Kompletní seznam portů naleznete na Linux Ports.

[editovat] Licencování

Jádro samotné je poskytování pod licencí GPL verze 2. Některé části mohou být pod licencí GPL v2 a novější (označováno jen jako "GPL"), případně i pod dalšími svobodnými licencemi.

Moduly (ovladače) mohou být tvořeny pod záštitou jedné z hned několika licencí: GPL, GPL v2, GPL s dalšími právy, duální BSD/GPL, duální MPL/GPL a konečně proprietární. Moduly s proprietární licencí jsou ale problematické - nelze je šířit v jednom celku s jádrem, vývojáři jádra se k nim většinou staví odmítavě a v některých případech mohou být nelegální (záleží na způsobu implementace).[3]

[editovat] Maskot

Maskotem Linuxu je tučňák jménem Tux vytvořený Larry Ewingem v roce 1996.

Existuje mnoho variant Tuxe, některé ve 3D.

Maskotem je právě tučňák, protože Linus Torvalds podle svých slov „má rád tučňáky, toť vše.“ Jméno Tux prý znamená Torvaldsův UniX a už mu to zůstalo. [4]


[editovat] Kernel panic

V prostředí OS Linux je „panic“ systémová chyba vyvolaná jádrem, která na rozdíl od chyb vyvolaných uživatelskými programy nevyhnutelně vede k zastavení práce počítače. Tento stav je možné vyvolat zavoláním funkce panic z hlavičkového souboru sys/system.h. Většinou je však vyvolán neošetřenou procesorovou výjimkou, jako například odkazováním se do neplatné části paměti. Tyto neošetřené výjimky jsou často důsledkem chyby v kódu jádra, případně ale také mohou indikovat hardwarové selhání, například paměti RAM nebo chyb v aritmetických funkcích procesoru.

[editovat] Odkazy

  1. EISCHMANN, Jiří. Ze světa tučňáků a open source: Kdo tvoří Linux? [online]. živě.cz, 2008-04-16, [cit. 2008-04-30]. Dostupné online. (český)
  2. MOODY, Glyn. Rebel Code: Linux and the Open Source Revolution. [s.l.] : Perseus Books Group, 2001. ISBN 0738203331. (anglicky)
  3. JELÍNEK, Lukáš. Jádro systému Linux - Kompletní průvodce programátora. [s.l.] : Computer Press, 2008. ISBN 9788025120842. (česky)

[editovat] Literatura

  • JELÍNEK, Lukáš. Jádro systému Linux, Kompletní průvodce programátora. [s.l.] : Computer Press, 2008. ISBN 978-80-251-2084-2. s. 688.

[editovat] Externí odkazy

[editovat] Stránky týkající se jádra