Linux a systém GNU
napsal Richard
Stallman
Mnoho uživatelů počítačů používá modifikovanou verzi systému GNU každý den,
aniž by si to uvědomovali. Díky zvláštnímu zvratu událostí je nyní hojně
používaná verze GNU známější pod názvem „Linux“ a mnoho uživatelů si neuvědomuje, že je to v
základu systém GNU vyvinutý v rámci projektu
GNU.
Linux tu skutečně je a lidé ho používají, ale je to pouze část systému,
který používají. Linux je jádro: program v systému, který alokuje prostředky
počítače ostatním programům, které spouštíte. Jádro (kernel) je základní
součástí operačního systému, ale sám o sobě by byl k ničemu; má smysl pouze
jako součást kompletního operačního systému. Linux se obvykle používá v
kombinaci s operačním systémem GNU: celý systém je v podstatě GNU doplněné o
Linux nebo GNU/Linux. Všechny tzv. „linuxové“ distribuce jsou ve skutečnosti
distribuce GNU/Linuxu.
Mnoho lidí nerozumí rozdílu mezi jádrem, což je Linux, a celým systémem, což
také nazývají „Linux“. Dvojsmyslné používání tohoto názvu nepomáhá lidem v
pochopení. Tito uživatelé si často myslí, že Linus Torvalds vyvinul celý
operační systém v roce 1991 s trochou pomoci.
Programátoři zpravidla vědí, že Linux je jádro. Ale protože slýchali, jak
se obecně také celému systému říká „Linux“ považovali to často za normální,
že se celý systém nazývá podle svého jádra. Mnoho lidí se například domnívá,
že když Linus Torvalds dopsal Linux, jádro, jeho uživatelé se začali
poohlížet po dalším svobodném softwaru, který by s ním pracoval a zjistili,
že valná většina součástí potřebných k vytvoření unixového systému již je (z
nějaké blíže nespecifikované příčiny) hotová.
To, co nalezli, nebyla žádná náhoda – byl to ne-zcela-kompletní systém GNU.
Dostupný svobodný software, jehož
připojením vznikl kompletní systém, protože v projektu GNU se na vytvoření
takového systému pracovalo od roku 1984. V GNU manifestu jsme si vytyčili za cíl vývoj
svobodného systému unixového typu zvaného GNU. Původní oznámení o projektu GNU
také nastiňuje některé z původních záměrů tohoto systému. V době, kdy byl
napsán Linux, byl již tento systém téměř hotov.
Většina projektů spojených se svobodným softwarem si klade za cíl vyvinout
určitý program pro určitou činnost. Například Linus Torvalds se rozhodl
napsat jádro (Linux) podobné unixovému jádru; Donald Knuth napsal textový
formátovač (TeX); Bob Scheifler se rozhodl vyvinout okenní systém (X Window
System). Je přirozené poměřovat příspěvky takovéhoto projektu podle
specifických programů, které z projektu vzešly.
Pokud bychom se pokusili takto poměřovat příspěvky do GNU projektu, k čemu
bychom došli? Jeden prodejce CD-ROM zjistil, že v jejich „linuxové
distribuci“, zabíral GNU
software největší část, přibližně 28 % z celkového zdrojového kódu a to
zahrnovalo některé z větších a velmi důležitých komponent, bez nichž by
systém nemohl existovat. Linux sám o sobě představuje zhruba 3 %. (proporce
v roce 2008 jsou podobné: v „hlavním“ úložišti gNewSense zabírá Linux 1,5 %
a GNU balíčky 15 %) Pokud byste tedy vybírali název systému podle toho, kdo
napsal jeho programy, nejvhodnější volbou by byl název „GNU“.
Nemyslíme si, že to je správný způsob jak o této otázce uvažovat. Projekt
GNU nebyl a není projektem sloužícím k vývoji specifických softwarových
balíků. Nebyl projektem pro vývoj překladače C,
ačkoliv se tak stalo. Nebyl ani projektem pro vývoj textového editoru a
přesto jsme jej vyvinuli. Cílem GNU projektu bylo vyvinout kompletní
svobodný systém podobný Unixu: GNU.
Mnoho lidí významně přispělo svobodnému software v systému a všichni si
zasluhují uznání. Ale důvodem, díky kterému je to integrovaný
systém – a ne jen sbírka užitečných programů – je, že projekt GNU si
jako cíl vytyčil právě toto. Vytvořili jsme seznam programů, které byly
třeba k vytvoření kompletního svobodného systému a systematicky
jsme je psali, nebo nacházeli lidi, kteří je psali. Napsali jsme důležité,
byť nezábavné (1), komponenty, protože bez nich
se systém neobejde. Některé z našich systémových komponent, programátorských
nástrojů, si samy získaly oblibu mezi programátory, ale napsali jsme i řadu
komponent, které nejsou nástroji (2). Vyvinuli jsme
dokonce šachovou hru GNU Chess, protože kompletní systém potřebuje i hry.
Na začátku 90. let jsme již měli celý systém kromě jádra. Začali jsme
pracovat i na jádře, GNU Hurd, které
je postaveno na Machu. Vývoj tohoto jádra byl mnohem těžší, než jsme
očekávali; GNU Hurd začal
spolehlivě pracovat v roce 2001, ale má před sebou ještě dlouhou cestu,
než bude připraven na běžné používání.
Naštěstí nemusíme čekat, až bude Hurd hotový, protože je tu Linux. Když
Torvalds v roce 1992 uvolnil Linux, zaplnil tak poslední velkou mezeru v GNU
systému. Lidé tak mohli
Linux a systém GNU spojit, aby vytvořili kompletní svobodný systém – na
Linuxu postavenou verzi GNU systému; nebo krátce: systém GNU/Linux.
Dát je dohromady zní jednoduše, ale nebylo to tak snadné. Některé součásti
GNU (3) potřebovaly značné úpravy, aby
fungovaly s Linuxem. Integrace kompletního systému jako distribuce, která by
fungovala hned po „vybalení z krabice“ byla také velkým úkolem. Bylo třeba
vyřešit jak instalovat a bootovat systém – problém, do jehož řešení jsme se
nepustili, protože jsme se k tomuto bodu ještě nedostali. Lidé, jenž
vyvinuli různé distribuce tedy udělali významný kus práce. Ale byla to
práce, která, z principu věci, musela být někým udělána.
Projekt GNU podporuje GNU/Linuxové systémy stejně jako systém GNU. FSF financovala přepsání rozšíření GNU C knihovny
týkajících se Linuxu, takže jsou teď dobře integrované a nejnovější
GNU/Linuxové systémy používají aktuální vydání knihovny bez dodatečných
změn. FSF také financovala počáteční fáze vývoje distribuce Debian
GNU/Linux.
Dnes tu máme velké množství variant systému GNU/Linux (často nazývané
„distribuce“). Většina z nich obsahuje i nesvobodný software – jejich
vývojáři následují spíš filosofii spojovanou s Linuxem než filosofii
GNU. Ale jsou tu i kompletně svobodné distribuce
GNU/Linuxu. FSF poskytuje technické zázemí pro gNewSense.
Dělat svobodnou distribuci GNU/Linuxu není jen o odstraňování různých
nesvobodných aplikací. V současnosti i obvyklé verze Linuxu obsahují
nesvobodný kód. Ten slouží k nahrání do I/O zařízení (hardwaru) při startu
systému a je zapsán v podobě dlouhých posloupností čísel (pozn. překl.:
tzv. binární bloby) ve „zdrojovém kódu“ Linuxu. Tudíž udržování svobodné
GNU/Linuxové distribuce zahrnuje i udržování svobodné verze Linuxu.
Ať už používáte GNU/Linux nebo ne, nepleťte prosím veřejnost dvojsmyslným
používáním termínu „Linux“. Linux je jádro, jedna ze základních součástí
systému. Systém jako celkem je víceméně GNU systém s přidaným Linuxem. Když
mluvíte o této kombinaci, nazývejte ji prosím „GNU/Linux“.
Pokud chcete odkazovat na další informace o „GNU/Linuxu“, tato stránka a http://www.gnu.org/gnu/the-gnu-project.html
jsou dobrou volbou. Pokud píšete o Linuxu, jádru, a chcete přidat odkaz, http://foldoc.org/linux je dobrá adresa.
Dodatek: Vedle GNU ještě jeden další projekt vytvořil svobodný unixový
systém. Tento systém je známý jako BSD a byl vyvinut na universitě UC
Berkeley. Tento systém byl nesvobodný v 80. letech, ale začátkem 90. let byl
uvolněn jako svobodný. Téměř všechny svobodné operační systémy, které dnes
existují, (4) jsou variantou systému GNU nebo
odrůdou BSD systému.
Lidé se někdy ptají, jestli je BSD také verzí GNU podobně jako
GNU/Linux. Vývojáři BSD se inspirovali projektem GNU a také svůj systém
učinili svobodným a výzvy příznivců GNU je pomohli přemluvit, ale zdrojový
kód obou systémů se překrývá jen málo. BSD systémy dnes používají některé
programy z GNU, stejně jako GNU systém a jeho varianty používají některé
programy z BSD; ovšem celkově vzato se jedná o dva odlišné systémy, které se
vyvíjely odděleně. Vývojáři BSD nenapsali jádro a nepřidali ho ke GNU
systému, takže označení GNU/BSD tuto situaci nevystihuje. (5)
Poznámky:
-
Tyto nezábavné, ale zásadní, komponenty zahrnují GNU
assembler (GAS) a spojovací program (GLD), které jsou součástí balíčku GNU Binutils, balíček GNU tar a další.
-
Např. Bourne Again SHell (BASH), interpret PostScriptu
Ghostscript a knihovna
GNU C library nejsou programátorské
nástroje. Stejně jako GNUCash, GNOME nebo GNU Chess.
-
Např. knihovna GNU C library.
-
Od dob, co bylo toto napsáno, vznikl
téměř-zcela-svobodný systém windowsového typu, ale technicky je to něco
úplně jiného než GNU nebo Unix, takže to není tento případ. Většina částí
jádra Solarisu je nyní svobodná, ale kdybyste na něm chtěli postavit
svobodný systém, vedle doplnění chybějících částí jádra byste museli toto
jádro začlenit do GNU nebo BSD.
-
Na druhou stranu, od doby vydání tohoto článku byla
knihovna GNU C Library portována na řadu verzí BSD jádra, což umožnilo
přímočaré kombinování systému GNU s tímto jádrem. Stejně jako v případě
GNU/Linuxu se jedná o varianty GNU a také se jim tak říká –
např. GNU/kFreeBSD nebo GNU/kNetBSD podle daného jádra. Běžní uživatelé
typického desktopu sotva poznají, zda pracují na GNU/Linuxu nebo GNU/*BSD.