Tento překlad nemusí obsahovat změny, které byly v článku provedeny po 2021-08-30 v anglickém originálu.

Podívejte se na tyto změny. Přečtěte si prosím Příručku překladatele, kde se dozvíte, jak se zapojit do překladu tohoto článku.

Linux a systém GNU


Pro více informací se podívejte také na GNU/Linux FAQ a Proč GNU/Linux?


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 – verzi systému GNU, která obsahuje i Linux; nebo jinými slovy: 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 „open source“ spojovanou s Linuxem než filosofii „svobodného softwaru“ GNU. Ale jsou tu i kompletně svobodné distribuce GNU/Linuxu. FSF poskytuje technické zázemí pro některé z nich.

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.

Dodatky

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

  1. 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ší.
  2. 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.
  3. Např. knihovna GNU C library.
  4. 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.
  5. 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.