Linuxové jádro
Z Wikipedie, otevřené encyklopedie
Linux | |
vyvíjí | Linus Torvalds (tvůrce) a další |
aktuální verze | 2.6.19.2 (10. leden 2007) |
OS | - |
typ softwaru | Jádro operačního systému |
licence | GPL |
web | http://www.kernel.org/ |
logo produktu | ![]() |
Linuxové jádro 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í.
Obsah |
[editovat] Historie
Historicky první Linuxové jádro bylo označeno verzí 0.01 [1], Linus Torvalds jej napsal v roce 1991 se slovy:
Ahoj všichni, kdo používáte Minix - Makám na (volném) operačním systému (mám to jako koníček, nic velkého a profesionálního jako gnu) pro klony 386(486) AT.
Od té doby se Linux změnil, stal se velkým a profesionálním pro nejen x86 mašiny, do dnešní podoby.
Je několik verzí vzniku samotného jména Linux. Při pátrání se může připlést do rukou kniha (ISBN 0-7382-0333-5), v níž lze nalistovat přibližně toto:
„Linux bylo moje pracovní jméno,“ říká Linus, „ale jestli je to doopravdy používáno jako oficiální, budou si lidi myslet, že jsem egomaniak a nebudou to brát ani trochu vážně. A tak jsem vybral tohle velmi praštěné jméno: Freax“ - free + freak + x. „Divné, já vím.“ Ari Lemmke, který provozoval FTP síť (pozn. překl.: myslí se funet.fi), se rozhodl nedát tomu nálepku podobnou Freax a tak místo toho použil pracovní jméno.
[editovat] Časová osa
- Duben 1991 - Tehdy 21-letý Linus Torvalds začíná pracovat na jednoduchých funkcích operačního systému.
- 0.0.1 - září 1991 (10 239 řádek kódu)
- 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.
- 1.0.0 – 14.3. 1994 (176 250 řádek kódu)
- 1.2.0 – 7.3. 1995 (310 950 řádek kódu)
- 2.0.0 – 9.6. 1996 (777 956 řádek kódu)
- 2.2.0 – 25.1. 1999 (1 800 847 řádek kódu)
- 2.4.0 – 4.1. 2001 (3 377 902 řádek kódu)
- 2.6.0 – 17.12. 2003 (5 929 913 řádek kódu)
- 2.6.16.11 - 24.4. 2006 (6 981 110 řádek kódu)
[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říchá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 proprietární 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řídá do názvu -rt. Vývojáři nezřídkakdy 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. Narozdí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ěž narozdí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:
- ARM
- Acorn: Archimedes, A5000 a série RiscPC
- StrongARM, Intel XScale apod.
- Hewlett Packard iPAQ
- Nintendo DS (projekt DS Linux)
- Apple iPod (IPodLinux projekt iPodLinux)
- Axis Communications CRIS
- FujitsuFR-V
- Hewlett Packard Alpha
- Hewlett Packard PA-RISC
- Hitachi: SuperH (SEGA Dreamcast), H8/300
- IBM S/390 (31bitové)
- IBM zSeries a System z9 mainframe (64bitové)
- Intel 80386 a vyšší (i386): IBM PC a kompatibilní s procesory:
- 80386, 80486, a variantami od AMD, Cyrix, Texas Instruments a IBM
- celá série Pentium
- AMD 5x86, K5, K6, Athlon (všechny 32bitové verze), Duron
- AMD64: AMD 64bitové procesory (dříve známe jako x86-64)
- Cyrix 5x86, 6x86 (M1), 6x86MX a série MediaGX (National/AMD Geode)
- VIA Technologies VIA C3 a novější
- podprora pro procesory Intel 8086, 8088, 80186, 80188 a 80286 je ve vývoji (viz projekt ELKS)
- Microsoft Xbox (procesor Pentium III) (viz Xbox Linux)
- SGI Visual Workstation (procesor Pentium II/III s čipsetem SGI)
- Intel IA-64
- MIPS
- Silicon Graphics, Inc.
- Cobalt Qube, Cobalt Raq
- Sony PlayStation 2 (viz PS2 Linux)
- DECstation
- některé další
- Motorola 68020 a vyšší:
- novější Amigy: A1200, A2500, A3000, A4000
- Apple Macintosh II, LC, Quadra, Centris a raná série Performa
- stanice Sun Microsystems série 3 (experimentální, používá Sun-3 MMU)
- stroje nezaložené na Sun 68020 vyžadují PMMU Motorola 68851
- NEC v850e
- Renesas M32R
- PowerPC a IBM POWER:
- většina novějších počítačů Apple (všechny Power Macintoshe používající PCI, omezená podpora pro starší NuBus Power Mac)
- klony PCI Power Mac pod značkami Power Computing, UMAX a Motorola
- Amigas upgradované „Power-UP“ kartou (jako Blizzard nebo CyberStorm)
- systémy IBM RS/6000, iSeries a pSeries
- deskyPegasos I a II
- některé embedded PowerPC platformy
- SPARC a UltraSparc: Sun série 4, pracovní stanice a servery SPARCstation/SPARCserver, Ultra, Blade a Fire, stejně jako kolny od výrobce Tatung a další
Kompletní seznam portů naleznete na Linux Ports.
[editovat] Licencování
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í.
[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, případně ale také mohou indikovat hardwarové selhání, například paměti RAM nebo chyb v aritmetických funkcích procesoru.
[editovat] Odkazy
[editovat] Externí odkazy
[editovat] Linux 2.6
[editovat] Stránky týkající se jádra
- Jaderné noviny na abclinuxu.cz
- Srozumitelný changelog na kernelnewbies.org (anglicky)
- Kerneltrap.org (anglicky) - přehled dění nejen okolo linuxového jádra
- Česká wiki o Linuxu