JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH PEDAGOGICKÁ FAKULTA Katedra informatiky

Open source a

Mgr. Jiří Pech, Ph.D.

České Budějovice 2008 Tato publikace neprošla redakční ani jazykovou úpravou.

Grafická úprava: Jiří Pech

2 Obsah

1 Úvod 6

2 Vymezení pojmů 7 2.1 Přehled kategorií software ...... 7 2.2 Freesoftware(FS) ...... 9 2.3 OpenSourceSoftware(OSS)...... 11 2.3.1 VztahGNUaOSS ...... 13 2.4 PříkladyOSSaFSprogramů ...... 13

3 se představuje 15 3.1 Historie UNIXu ...... 15 3.2 Vlastnosti OS UNIX ...... 17 3.2.1 Systém souborů a adresářový strom ...... 18 3.2.2 Bezpečnost uživatelů UNIXu ...... 19 3.3 ZákladnípříkazyUNIXu ...... 20 3.4 Grafickýrežim...... 27 3.5 Přehled UNIXů ...... 28 3.5.1 GNU/ ...... 28 3.5.2 BSD ...... 28 3.5.3 MINIX...... 32 3.5.4 IRIX...... 32 3.5.5 AIX ...... 32 3.5.6 HP-UX ...... 33 3.5.7 MacOSX...... 33 3.5.8 GNU/Hurd ...... 33

4 Linux – UNIX pro masy 34 4.1 CojeLinux ...... 34 4.2 HistorieLinuxu ...... 35 4.2.1 Vývojverzí ...... 36 4.3 DistribuceLinuxu...... 37

3 4.4 Slackware ...... 38 4.5 Red Hat a jeho odvozeniny ...... 39 4.5.1 SUSELinuxaOpenSUSE ...... 39 4.5.2 Mandriva ...... 40 4.5.3 Dalšírpmdistribuce ...... 40 4.5.4 Ukázkaprácesprogramemrpm ...... 40 4.6 Debianajehoodvozeniny ...... 40 4.6.1 Ukázka práce s programem APT ...... 41 4.6.2 Ubuntuajehoodvozeniny ...... 41 4.6.3 Jiné distribuce založené na Debianu ...... 42 4.7 Překládanédistribuce...... 42 4.7.1 GentooLinux ...... 42 4.7.2 Ukázka práce s programem emerge ...... 42 4.7.3 Jinépřekládanédistribuce ...... 43 4.8 ArchLinux ...... 43 4.8.1 Ukázka práce s programem pacman ...... 43 4.9 DeliLinux...... 44 4.10Livedistribuce ...... 44

5 Svobodné operační systémy neunixového typu 46 5.1 FreeDOS...... 46 5.2 ReactOS,svobodnéWindows ...... 47 5.3 OdBeOSukHaiku...... 48 5.4 AROS aneb Amiga forever ...... 48

6 Další open-source a free software programy 50 6.1 Kancelářskéaplikace ...... 50 6.1.1 OpenOffice.org ...... 50 6.1.2 LyX ...... 53 6.1.3 Abiword...... 53 6.1.4 Jiné kancelářské balíky ...... 54 6.2 Prohlížeče WWW stránek ...... 54 6.2.1 MozillaFirefox ...... 54 6.2.2 Jinésvobodnéprohlížeče ...... 55 6.3 Programy pro čtení elektronické pošty ...... 56 6.3.1 MozillaThunderbird ...... 56 6.3.2 Jinéprogramypročtenípošty ...... 57 6.4 Programy pro vytváření WWW stránek ...... 57 6.4.1 NvuaKompozer ...... 57 6.4.2 Jiné svobodné programy pro vytváření WWW stránek 57 6.5 Graficképrogramy ...... 58

4 6.5.1 Gimp...... 58 6.5.2 TuxPaint ...... 59 6.5.3 Inkscape...... 59 6.5.4 Jiné vektorové grafické programy ...... 60 6.6 PortableApplications...... 60

7 Závěr 61

A Licence GPL 69

B Komentovaná definice Open Source Software 84

C Oznámení o vývoji Linuxu 88

D Info k jádru Linuxu 0.1 89

5 Kapitola 1

Úvod

Tato publikace je především určena všem, kteří se chtějí orientovat ve světě svobodného software. Zejména pak studentům a pracovníkům ve státní správě, které by tato problematika měla zajímat nejvíce. Softwarové pirátství patří k jednomu z největších problémů současnosti. A jedním ze způsobů jak mu čelit a omezit jej, je i využívání svobodného software. Pokud si například stu- denti zvyknou na takovýto software již ve škole, budou jej používat i v praxi. V druhé kapitole jsou probrány jednotlivé kategorie licencí software. Čte- nář se zde například dozví, že free software nemusí nutně znamenat software zdarma. V další kapitole se čtenář seznámí s operačním systémem UNIX. Tato kapitola tvoří vlastně jakousi předmluvu následující kapitoly, která se věnuje fenoménu dneška – svobodnému operačnímu systému Linux. Ve páté kapitole se dozvíme, že existují i jiné svobodné operační systémy. Závěrečná kapitola pak podává stručný přehled všech svobodných programů, které by neměly chybět na vašem počítači. Jak číst tuto publikaci. Studenti počítačových oborů, počítačoví odborníci a fanouškové si mohou přečíst vše, s tím že mohou libovolně přeskakovat kapitoly. Ostatním doporučuji přeskočit kapitoly 3.2 až 3.4. Kapitolu 3.3 pak doporučuji číst pouze čtenáři, který to myslí s UNIXem (Linuxem) vážně, ostatní by mohla od tohoto systému odradit. Všichni pak by si rozhodně měli přečíst druhou kapitolu, jsou vysvětleny základní pojmy.

6 Kapitola 2

Vymezení pojmů

Pokud se zeptáte běžného uživatele počítačů, co znamená pojem free soft- ware, skoro jistě vám odpoví, že se jedná o software, který je zdarma. To však není pravda, ale jeden z nejčastějších počítačových mýtů. Takový software se nazývá . Správný překlad pojmu free software do češtiny je svobodný software. Tato kapitola by vám měla pomoci s orientací v kategoriích software a typech softwarových licencí.

2.1 Přehled kategorií software

Nejprve si probereme přehled všech kategorií software a u všech se stručně zmíníme o jejich vlastnostech. Přehled všech hlavních kategorií a jejich vzá- jemný vztah naleznete na obrázku 2.1.

Free software Doporučený překlad do češtiny je svobodný software. Jedná se o software, ke kterému je k dispozici rovněž zdrojový kód a uživatel má právo software libovolně používat, měnit a šířit. Svobodný software je obvykle zdarma, ale nemusí to vždy tak být. Více se dozvíte v dalším textu anebo na webových stránkách [1].

Open source Česky nejlépe otevřený software, je takový software, se kterým získá jeho uži- vatel i jeho zdrojový kód. Tento zdrojový kód je buď přímo přiložen k pro- gramu, anebo může být například přístupný na webu ke stažení. Pro open source software se používá zkratka OSS.

7 Existuje organizace Open Source Initiative (OSI), která se zabývá licen- cováním OSS. Software, jehož licence vyhovuje pravidlům OSI se pro přehled- nost nazývá Open Source (obě písmena velká). Více se dozvíte na webových stránkách OSI [2], anebo v dalším textu.

Public domain Česky nejlépe volné dílo. Jedná se o takový software, který jeho autor dává volně k dispozici, bez jakýchkoliv nároků na autorská práva. Takovýto soft- ware lze užívat a modifikovat libovolným způsobem.

Freeware Programy, u kterých je povolena distribuce zdarma, ale ne modifikace. Ne- zaměňovat s Free softwarem. Jedná se například o ovladače hardwarových zařízení anebo Adobe Acrobat Reader.

Shareware Software, který je možné volně distribovat a vyzkoušet. Doba na vyzkou- šení je dána buď časově anebo počtem spuštění software. Po uplynutí této doby by měl uživatel software zaplatit (popřípadně se pouze registrovat), anebo jej přestat používat. Pokud nedojde k zaplacení nelze program dále používat anebo dojde k omezení jeho funkčnosti. Příkladem jsou třeba Total Commander, WinRAR.

Adware Program zdarma se všemi funkcemi jako plnohodnotný komerční program, ale obsahující navíc reklamu. Např. ICQ.

Proprietary Česky nejlépe vlastnické právo. Software ke kterému si jeho tvůrce zachovává plná práva. Takovýto software je obvykle nutné platit a bez svolení prodejce jej nemůžeme nijak měnit ani dále šířit. Například MS Windows nebo MS Office.

Komerční software Obvykle proprietární software (ale nemusí být). Je to software vyvíjený za účelem zisku. Může to být i free software, ke kterému je prodávána komerční podpora (např. Ada překladač nebo některé distribuce Linuxu).

8 Closed Česky uzavřený software. Takový software, ke kterému není k dispozici zdro- jový kód. Uživatel se nemůže dozvědět, jakým způsobem program funguje a zda nevykonává ještě jinou (nechtěnou) činnost.

Zvláštní případy Samozřejmě, že i mezi softwarem lze najít případy, které se dají jen velmi obtížně zařadit do některé kategorie. Příkladem budiž například typografický program TEX. Podle jeho licence je k dispozici zdrojový kód, lze jej libovolně šířit a překládat jej pro libovolné operační systémy avšak v jeho zdrojovém kódu nelze nic měnit.

Obrázek 2.1: Jednotlivé kategorie software a jejich vzájemné vztahy

2.2 Free software (FS)

V této kapitole si vymezíme podrobněji pojem free software. Jak jsme si již řekli, neznamená to software, který je zadarmo, ale svobodný software. Vy- světlení pojmu svobodný software je následující: „Free speech not free beerÿ (svoboda slova, ale ne pivo zdarma). Tedy software, který můžeme svobodně

9 používat, ale nemusí být zdarma. Pro přesné vymezení tohoto pojmu a sta- novení všech pravidel byla v USA v roce 1985 založena nezisková organizace (FSF). Hlavním zakladatelem a současně duchov- ním vůdcem této organizace je pan Richard Stallman autor textového editoru Emacs. Tato organizace se od svého začátku zaměřila zejména na vývoj svobod- ného operačního systému na bázi UNIXu. Tento systém pak byl označován zkratkou GNU (GNU’s Not Unix) (viz stránky [4]) podle stejnojmenné or- ganizace založené již v roce 1983 Richardem Stallmanem. Z tohoto projektu vznikl později přidáním jádra operačního systému vyvinutého panem Linu- sem Torvaldsem operační systém GNU/Linux. Dnes do projektu GNU patří i software nevztahující se přímo k Linuxu.

Obrázek 2.2: Logo organizace GNU

Pro podporu programátorů vytvářejících svobodný software GNU vytvo- řila licenci GPL (GNU Public Licence), kterou mohou používat pro licen- cování svého software všichni tvůrci svobodného software. Její plné znění přináší příloha A. Svobodný software dává jak tvůrcům tak uživatelům právo se svými pro- gramy svobodně nakládat. To znamená libovolně je užívat, šířit a upravovat. Při každé změně kódu však musí být uveden autor této změny, aby napří- klad špatná funkce programu nebyla přisuzována původnímu autorovi. Je naprosto běžné, že pokud autor přestane mít zájem o další vývoj svého díla, převezme jej někdo jiný a pokračuje ve vývoji. (Doporučuji čtenáři přečíst si text Katedrála a bazar od Erica Raymonda [3], kde je podobná situace po- psána.) Při žádné změně kódu, ale nesmíte výsledný program šířit pod jinou licencí než původní autor. Program kategorie free software nemusí být nutně zdarma, ale pokud si

10 jej zakoupíte, pak máte právo jej dále prodávat anebo i darovat komukoliv a kdekoliv. Pro svobodný software jsou definovány čtyři následující svobody:

0 Svoboda spustit program za jakýmkoliv účelem 1 Svoboda studovat, jak program pracuje a přizpůsobit ho svým potře- bám. 2 Svoboda šířit kopie, aby jste pomohli ostatním. 3 Svoboda vylepšovat program a zveřejňovat zlepšení, aby z nich měla prospěch celá komunita.

Předpokladem pro svobodu 2 a 4 je přístup ke zdrojovému kódu.

2.3 Open Source Software (OSS)

V této kapitole si blíže popíšeme kategorii Open Source Software, která mnoha uživatelům splývá s Free Softwarem. Obecně se pod pojmem open source rozumí každý software, ke kterému je k dispozici zdrojový kód. Po- kud se slovo open source používá jako přídavné jméno, mělo by se psát open- source. Například: „Toto je open-source editor.ÿ Podobně jako exituje pro svobodný software organizace GNU, existuje organizace Open Source Initiative (OSI), která definovala pravidla pro open source. Software vyhovující těmto pravidlům se nazývá Open Source Software (s velkými písmeny), zkratka je OSS. Zakladatelem této organizace je pan Eric Raymond, autor již zmiňovaného textu Katedrála a bazar (viz [3]).

Obrázek 2.3: Logo organizace OSI

OSI stanovila 10 základních svobod OSS. Zde je uveden překlad Vác- lava Radoměřského uveřejněný na serveru abclinux [5]. Plné originální znění naleznete v příloze.

11 1. Licence programu nesmí nikoho omezovat v prodávání nebo rozdávání programu jako součást celku obsahujícího programy z různých zdrojů. Licence nesmí vyžadovat licenční poplatek nebo jiný poplatek za takový prodej.

2. Program musí zahrnovat zdrojový kód a musí být umožněna jeho dis- tribuce jak ve zdrojové formě, tak v kompilované formě. Když nějaká forma produktu není distribuována společně se zdrojovým kódem, musí existovat dobře propagované možnosti získaní zdrojového kódu za cenu nepřesahující přiměřené reprodukční náklady, nejlépe bezplatným sta- žením z Internetu. Zdrojový kód musí být preferovanou formou modifi- kování programu. Úmyslně zatemnělý (zmatený) zdrojový kód není do- volen. Polotovary (meziprodukty) jako výstup preprocesoru nebo pře- kladače nejsou dovoleny.

3. Licence musí povolovat modifikace a odvozená díla a musí dovolovat, aby byly distribuovány za stejných podmínek jako originální software.

4. Licence může omezit distribuci modifikovaných verzí zdrojového kódu pouze tehdy, jestliže umožňuje distribuci ”patch souborů” spolu se zdrojovým kódem za účelem modifikace programu při jeho kompilaci (sestavení). Licence musí výslovně dovolovat distribuci softwaru vytvo- řeného z modifikovaného zdrojového kódu. Licence může vyžadovat, aby odvozená díla nesla odlišný název než původní produkt nebo jiné číslo verze.

5. Licence nesmí diskriminovat žádnou osobu nebo skupinu osob.

6. Licence nesmí nikoho omezovat v používání programu při konkrétním snažení. Například nesmí omezovat užití programu při podnikání nebo pro genetický výzkum.

7. Práva spojená s programem se musí vztahovat na každého, komu byl program redistribuován bez nutnosti akceptovat dodatečné licence.

8. Práva spojená s programem nesmí záviset nat tom, zda je program částí určité softwarové distribuce. Pokud tento program je extrahován z této distrubuce a používán nebo distribuován v souladu s ustanoveními jeho licence, potom všechny strany, kterým byl tento program redistribuo- ván, by měly mít stejná práva, jaká dopřávala originální softwarová distribuce.

12 9. Licence nesmí ustanovit omezení na jiný software distribuovaný spolu s licencovaným softwarem. Např. licence nesmí vyžadovat, aby vše- chen ostatní software distribuovaný na stejném médiu musel být open- source.

10. Žádné ustanovení licence nesmí být založena na jakékoli individuální technologii nebo stylu rozhraní.

2.3.1 Vztah GNU a OSS Mezi skupinami OSS a GNU existuje jistá vzájemná nevraživost (asi jako mezi frakcemi revolucionářů), ačkoliv jinak jsou schopní se na základních principech licencí software shodnout. Obě výše popsané licence ve své pod- statě popisují tytéž vlastnosti. Autoři software se tak musí rozhodnout, zda jejich dílo bude splňovat obě licence anebo pouze jedinou. Uživatelé, kteří se rozhodnou daný software upravovat nebo šířit, by si měli důsledně prostudovat licenci, aby jí nějakým způsobem neporušili. Příkladem jsou distribuce Linuxu. Pokud má splňovat konkrétní distri- buce Linuxu licenci GPL, nesmí obsahovat jiný než svobodný software. Ta- kováto distribuce se pak označuje GNU/Linux. Naopak i distribuce Linuxu obsahující proprietární software (např. Adobe Acrobat) mohou splňovat pod- mínky OSS (viz. bod 9 v předchozí kapitole). Dobrým příkladem je Debian Linux. Ten v základní distribuci obsahuje pouze balíky se svobodným softwarem. Proto se také někdy označuje jako GNU/Debian Linux. Uživatel si ovšem může dodatečně nainstalovat i pro- prietární software. Pak by se ovšem již nemělo mluvit o Debian GNU/Linuxu.

2.4 Příklady OSS a FS programů

Nyní se zde pokusím vyjmenovat nejznámější příklady programů patřících mezi FS anebo OSS (popřípadně mezi obojí - pro každý případ zvlášť je nutné si prostudovat nejnovější licenci daného produktu).

• Operační systémy – Linux, FreeBSD, FreeDOS, OpenSolaris

• Kancelářský balík – OpenOffice.org, spolu s otevřeným formátem sou- borů Open Document

• Bitmapový editor – Gimp

• Webový prohlížeč –Mozilla Firefox

13 • Poštovní klient – Mozilla Thunderbird

• Databázové systémy – MySQL, PostgresSQL

• Programovací jazyky – GCC, PHP, Perl, Python, Ruby, Tcl

• Servery – BIND (name server), Apache (web server), Sendmail (poš- tovní server), Samba (souborový server)

• Videopřehrávač - VLC

• Formát hudebních souborů - OGG

• Hry - Frozen Bubble, Wesnoth

14 Kapitola 3

UNIX se představuje

Abychom si v další kapitole mohli představit Linux, je nutné začít s UNIXem, neboť Linux patří do třídy tzv. unixových operačních systémů. Mnohým uži- vatelům počítačů pojmy Linux a UNIX často splývají a pokud se zeptáme, zda znají jiný UNIX než Linux málokdo správně odpovía dokáže jmenovat aspoň jeden příklad.

3.1 Historie UNIXu

Historie UNIXu začíná ve druhé polovině šedesátých let, v době sálových počítačů. V té době platilo, že co typ počítače, to speciální operační systém. UNIX byl vlastně výsledkem snahy o unifikaci. Byl vyvinut na základě ope- račního systému Multics (Multiplexed Information and Computing Service) ([6]). Za tvůrce operačního systému UNIX jsou považováni pracovníci Bello- vých laboratoří firmy A&T, Ken Thompson a Dennis Ritchie (viz. obr. 3.1). Původně byl UNIX vyvinut jako systém pro zpracování textů, proto práce s textovými soubory patří dodnes k jeho silným stránkám. Byl napsán v pro- gramovacím jazyce B1. Název UNIX vymyslel Brian Kernighan (viz. 3.2). UNIX je postaven jako operační systém skládající se z monolitického jádra (je tvořeno pouze jedním souborem) a velkého množství programů, pro které jsou stanovena následující pravidla:

• Programy jsou vytvářeny tak, že dělají právě jednu věc, a tu dělají dobře. 1Jazyk B vyvinul Ken Thompson jako následníka jazyka A (Assembleru), který byl pro mnohé příliš nepřehledný a těžkopádný. Následníkem jazyka B je dodnes používaný jazyk C, který vyvinul Dennis Ritchie. Následníkem C jak známo není D, ale ve stylu syntaxe jazyka C jakzyk C++

15 • Programy spolu musí vzájemně spolupracovat.

• Programy musí povely přijímat hromadně ze vstupu v textové podobě.

• Programy musí být napsány tak, aby výstup z jednoho mohl být použit jako vstup druhého.

Obrázek 3.1: Ken Thompson (vlevo) a Dennis Ritchie (zdroj [7])

Obrázek 3.2: Brian Kernighan (zdroj [8])

16 3.2 Vlastnosti OS UNIX

Základní vlastnosti OS UNIX jsou: • Víceprogramový (multitasking) – je možný současný běh více programů. Počet skutečně běžících programů v daném okamžiku je samozřejmě závislý na počtu procesorů systému. • Víceuživatelský (multiuser) – k danému počítači může současně být přihlášeno a pracovat na něm více uživatelů. • Víceprocesorový – podporuje použití více procesorů na daném systému. • S terminálovým přístupem – je možné vzdálené přihlášení. Uživatel používající operační systém UNIX má pocit, že počítač „scho- vanýÿ za terminálem je pouze jeho, bez ohledu na počet dalších přihlášených uživatelů a spuštěných programů. Jádro systému běží v privilegovaném režimu, vše ostatní běží v uživatel- ském režimu. Jádro se skládá ze dvou vrstev: 1. HAL (Hardware Abstraction Layer) – část jádra závislá na hardware, zejména ovladače zařízení. 2. Kernel - část nezávislá na hardware. Zde se nacházejí systémové procesy (démoni), které běží na pozadí bez ohledu na uživatele. Další části OS UNIX jsou: • Knihovny – obsahují objekty a různé rutiny. • – textové rozhraní pro komunikaci s uživatelem. Současné UNIXy mají i grafické rozhraní, které jej nahrazuje a uživatel nemusí s shellem vůbec přijít do styku. • Skripty – posloupnosti příkazů shellu zapsané do souboru. • Souborový systém – rozhraní mezi ovladačem paměťového média a já- drem. V UNIXu platí, že vše je soubor. • VFS () – rozhraní pro stejný přístup k různým souborovým systémům. Uživatel se tak nemusí starat o to, na jakém médiu je konkrétní soubor skutečně fyzicky umístěn. • Vrstva systémových rozhraní – zajištění bezpečnosti - znemožnění zá- sahu uživatele do jádra. K této vrstvě programy přistupují pomocí knihoven API (Aplication Programming Interface) - zjednodušení práce programátorů.

17 3.2.1 Systém souborů a adresářový strom Jako fyzický systém souborů (file system) se v UNIXU používají například ext2fs (dnes na ústupu), ext3fs (nejpoužívanější v Linuxu), XFS (IRIX), nebo ufs (Solaris). UNIX má jednotnou strukturu adresářů, která má být jednotná ve všech systémech a je definována normou POSIX (Portable In- terface). Tato norma kromě adresářové struktury určuje i jak se má systém chovat, jaké musí obsahovat příkazy atd. Pokud systém splňuje tuto normu, pak o něm hovoříme jako o POSIX kompatibilním systému. Nyní si popíšeme typickou adresářovou strukturu (abecedně):

• / – Kořenový adresář (root).

• /boot (/unix, /bsd) – Adresář obsahující jádro systému (kernel) a pří- padně konfigurační soubory zavaděče operačního systému (bootloader).

• /bin – Základní systémové příkazy a programy.

• /dev – Adresář speciálních souborů pro obsluhu periférií. Každá poten- ciální periférie, kterou je systém schopen obsloužit, zde má svůj soubor.

• /etc – Adresář se systémovými konfiguračními soubory. Na rozdíl od jiných OS se veškerá konfigurace v UNIXu provádí úpravou textových souborů buď ručně, anebo pomocí konfiguračních nástrojů, přičemž tyto možnosti lze kombinovat.

• /home – Domovské adresáře uživatelů.

• /lib – Adresář systémových knihoven.

• /mnt (/media) – Adresář pro připojování dočasných systémů souborů (disketa, CD, DVD, externí disk ...).

• /sbin – Adresář s programy, které může spouštět pouze superuživatel.

• /tmp – Veřejný adresář pro pomocné a dočasné soubory (temp). Ob- vykle bývá promazáván při restartu anebo cyklicky.

• /usr – Adřesář se soubory, které z kapacitních důvodů nejsou v koře- novém adresáři. Často bývá na jiném logickém nebo fyzickém disku. Obsahuje podobnou strukturu jako kořenový adresář.

• /var - Adresář pracovních a administrativních souborů systému. Též obsahuje logy (informační soubory) o činnosti systému.

18 Díky této jednotné struktuře (a obecně normě POSIX) je jednodušší pře- vádět programy mezi jednotlivými druhy UNIXu, než mezi jednotlivými ver- zemi Windows.

3.2.2 Bezpečnost uživatelů UNIXu Kařdý uživatel má v UNIXu účet (account), který obsahuje následující in- formace:

• Jméno účtu (login) a heslo (password).

• Číslo účtu (UID) a skupiny (GID). Uživatel může být přiřazen do více skupin, jedna z nich je jeho hlavní skupina.

• Identifikace uživatele. Jméno, příjmení, telefonní linka ...

• Domácí adresář uživatele (/home/jmeno).

• Iterpret příkazů (sh, , bash ...).

• Případně další informace - např. čas a místo posledního přihlášení.

Tyto informace jsou uloženy v souborech /etc/passwd a /etc/group. Každý soubor a adresář patří konkrétnímu vlastníkovi a konkrétní sku- pině. U každého souboru a adresáře se určují práva pro vlastníka (u = user), skupinu (g = group), ostatní (o = other) a pro všechny (a = all). Práva u souborů jsou:

• r (read) – právo čtení souboru

• w (write) – právo zápisu do souboru nebo smazání souboru

• x (execute) – právo spuštění souboru, jedná-li se o spustitelný program.

Práva u adresářů jsou:

• r – právo čtení (zobrazení) obsahu adresáře.

• w – právo zápisu do adresáře nebo smazání adresáře

• x – právo vstupu do adresáře

Superuživatel (root)2 má u všech souborů a adresářů právo na cokoliv včetně změny vlastníka, skupiny a práv daného souboru či adresáře.

2Ano kořenový adresář i superuživatel se v originále jmenují root.

19 3.3 Základní příkazy UNIXu

Tato kapitola podává přehled několika příkazů, jejichž znalost se vyplatí kaž- dému uživateli UNIXu, nejen administrátorovi.

Nápověda man – Manuálové stránky. Ke každému unixovému příkazu by měly exis- tovat manuálové stránky s popisem tohoto příkazu a jeho parametrů. Manuálové stránky se spouští příkazem man příkaz. Např: man man. Klávesové zkratky fungující během prohlížení manuálových stránek:

• q – konec • PgUp (b), PgDn (Space) – skok o stránku zpět nebo vpřed • šipky nahoru a dolů – posun o řádku • /abc – vyhledání slova abc v textu

Příkazy pro práci se soubory a adresáři mkdir – Vytvoření adresáře (Make Directory). mkdir adresar rmdir – Smazání adresáře (Remove Directory). Adresář musí být prázdný. rmdir adresar cd – Změna adresáře (Change Directory). Jsme-li v adresáři /home/uzivatel a chceme-li do jeho podadresáře texty pak je jedno zda napíšeme cd texty (relativní cesta) anebo cd /home/uzivatel/texty (absolutní cesta). Chceme-li přejít o úroveň výše, pak napíšeme cd ... Chceme-li přejít z jednoho podadresáře do jiného, lze psát rovnou cd ../texty2. Příkaz cd / nás přepne do kořenového adresáře a samotný příkaz cd do našeho domovského adresáře. pwd – Vypíše celou cestu k adresáři, ve kterém se právě nacházíme (Path to Working Directory). ls – Výpis souborů a adresářů. Má mnoho přepínačů (viz. man ls). Asi nej- potřebnější jsou:

20 • -a – výpis skrytých souborů 3 • -l – rozšířený výpis

Varianty zápisu:

• ls -l -a • ls -a -l • ls -al • ls -la

jsou (stejně jako u ostatních příkazů) rovnocenné. Lze použít i ls -l jmeno, pak se dozvíme pouze informace o souboru jmeno. Též lze použít znak * (náhrada libovolného počtu znaků) a ? (náhrada jednoho libovolného, ale konkrétního znaku). ls text* vypíše soubory text, text1 i text123, ale ls text? pouze soubor text1. Význam výpisu, který vidíme např. po napsání ls -la: -rw------1 pech users 3065 2007-09-21 10:46 .bash_history drwxr-xr-x 18 pech users 4096 2007-08-24 11:54 Dokumenty Na prvním místě ve výpisu zleva se mohou nacházet znaky - (sou- bor), l (link), d (adresář) anebo c (speciání soubor). Dále následuje devět znaků pro popis práv pro vlastníka, skupinu a ostatní, dále počet odkazů na daný soubor nebo adresář (u adresáře je to obvykle počet podadresářů + 2 (každý adresář ukazuje ještě sám na sebe a ukazuje na něj i jeho nadadresář) Dále je vlastník souboru, skupina, které patří soubor, velikost v bytech, datum a čas vytvoření a na posledním místě jméno souboru. ln – Vytvoření odkazu na soubor. Odkazy se rozdělují na tvrdý a symbo- lický (s použitím přepínače -s). Tvrdý ukazuje na místo na médiu, na kterém jsou uložena data a příliš se nepoužívá, naopak symbolický nám umožňuje mít jeden soubor pod více jmény. Např. když jeden konfigu- rační soubor slouží pro více programů a každý program jej potřebuje mít pod jiným jménem. ln -s existujici_soubor nove_jmeno

3Skryté soubory v UNIXu jsou ty, jejichž jméno začíná tečkou. Jsou to zejména různé konfigurační soubory, které jsou skryté pro běžný výpis, aby uživatele zbytečně neobtěžo- valy.

21 cp – Kopírování souboru (Copy). cp stary novy mv – Přesunutí (přejmenování) souboru (Move). mv stary novy rm – smazání souboru (Remove). Při použití přepínače -i se program před smazáním zeptá. Příkaz rm -i * smaže všechny soubory (u kterých máme právo zápisu) v pracovním adresáři a před smazáním každého se nás dotáže. Pozor smazání je nevratné. cat – Výpis textového soubor. Je-li počet řádek souboru větší než počet řádků, které můžeme zobrazit na monitoru, pak nám začátek souboru „uteče z obrazovkyÿ. cat soubor less – Výpis textových souborů se stránkováním. less soubor Při prohlížení můžeme podobně jako u příkazu man použít klávesové zkratky:

• q – konec • PgUp (nebo klávesa b), PgDn (Space) – skok o stránku zpět nebo vpřed • šipky nahoru a dolů – posun o řádku • šipky vlevo a vpravo – posun vlevo a vpravo • Begin (Home) – začátek řádku • End – konec řádku • /slovo – vyhledání slova v textu tail – Vypíše posledních deset řádků textového souboru. Počet řádků lze změnit přepínačem -číslo. Např. tail -3 abc vypíše poslední tři řádky souboru abc. head – Vypíše prvních deset řádků textového souboru. Počet řádků lze změ- nit přepínačem -číslo. Např. head -12 abc vypíše prvních dvanáct řádků souboru abc.

22 touch – Pokud napíšeme touch abc pak mohou nastat dvě možnosti. Po- kud:

1. soubor abc neexistuje, je vytvořen nový prázdný soubor s tímto jménem. 2. soubor abc existuje nastaví se čas jeho poslední změny na teď. which – Pokud napíšeme which program pro existující program, pak se do- zvíme, v kterém adresáři se nachází. Pokud takový program neexistuje, jsme o této skutečnosti informováni.

Nastavení práv k souborům a adresářům chown – Změna vlastníka (Change Owner) souboru nebo adresáře. Použití chown -R novak:users adr1 - Nastaví pro adresář adr1 no- vého vlastníka novak a skupinu users. Přepínač -R má význam u ad- resářů – znamená, že tato změna platí i pro veškerý jeho obsah. Je nutné mít pro daný soubor či adresář právo na zápis. Obvykle takovou operaci provádí root. chgrp – Změna skupiny (Change Group). Např. chgrp users soubor chmod – Změna práv (Change Mode). Nastaví u souboru nebo adresáře nová práva. Tato práva se zadávají pomocí písmen nebo číslic:

• Pomocí písmen – chmod komu +/- právo soubor. Parametr komu je jedno z písmen u (vlastník), g (skupina), o (ostatní) nebo a (všichni). + znamená přidání a - odebrání práv. Práva jsou r (čtení), w (zápis) a x (soubor - spuštění, adresář - vstup). Př. chmod a+x program – nastaví tento soubor jako spustitelný pro všehny. chmod o-w text – odebrání ostatním práva na zápis (smazání) souboru text. • Pomocí čísel – chmod XABC soubor. X, A, B, C jsou čísla v rozsahu 0 až 7. X je obvykle 0 a nemusí se uvádět. A jsou práva pro vlastníka, B pro skupinu a C pro ostatní. Práva jsou součet čísel 4 - čtení, 2 - zápis, 1 - spuštění (procházení). Pokud nepřidělíme žádná práva, je zde 0. Př. chmod 755 program - vlastník má nad souborem program pl- nou kontrolu, ostatní jej mohou číst a spouštět

23 chmod 600 text – vlastník může soubor text číst a měnit (sma- zat), jinak k němu nemá nikdo žádná práva. Pokud ve výjimečných případech není X nula, pak se jedná o sou- čet následujících čísel: – 1 – sticky bit - soubor nebo adresář s tímto příznakem smí přejmenovat nebo smazat pouze root. – 2 – sgid - nastaví právo skupiny root při spuštění daného souboru – 4 – suid – nastaví právo uživatele root při spuštění tohoto sou- boru. Tento příznak potřebují mít nastavené např. programy smbmnt a smbumount 4

Práce s textovými soubory grep – Vyhledání řetězce v souboru (Globally for lines matching the Regu- lar Expression, and Print them). Mocný nástroj se spoustou možností a možností používat regulární výrazy. Zde si uvedeme jednoduchý pří- klad: grep novak /etc/password – ze souboru /etc/password vypíše všechny řádky obsahující slovo novak. sed – Streamový editor (Stream EDitor) – editor, který pomocí příkazů umožňuje editovat textové soubory. Příklad: sed ’s/příslušný/odpovídající/’ abc > xyz – V souboru abc na- hradí všechny výskyty slova příslušný slovem odpovídající a výsledek zapíše do souboru xyz. wc – Vypíše počet řádek (přepínač -l), slov (-w) anebo znaků (-c) v souboru (Word Count). Př. wc -l /etc/passwd – zjistí počet uživatelů daného systému (jen je třeba mít na paměti, že zde jsou i systémoví uživatelé jako mail, ftp, nobody ...).

Práce s procesy v UNIXu ps – Výpis procesů. Obvykle používáme s těmito přepínači: ps axu (lze po- užít i syntaxi ps -axu), na pořadí přepínačů nezáleží. Význam přepíá- načů je:

4Součást balíku programů Samba, který slouží pro připojení sdílených adresářů Win- dows v UNIXu.

24 • x – rozšířený výpis • a – všechny procesy • u – všichni uživatelé top – Jiný program na výpis běžících procesů seřazený podle toho jak aktu- álně využívají systémové zdroje počítače. Ukončuje se klávesou q. htop – Ještě lepší grafický manažer procesů. Ovládání podobné programu mc, pomocí kláves F1 až F10. Procesy je možné řadit dle různých kri- térií, vyhledávat, měnit prioritu i ukončovat. (Není standardní součástí všech UNIXů, ale uvádím jej zde, protože jej poavžuji za užitečný.) kill – Ukončení procesu. kill číslo_procesu. Nenastane-li ukončení (např. protože ještě existují synovské procesy), lze použít ve tvaru kill -9 číslo_procesu, který vede k ukončení vždy (včetně synovských procesů). Číslo procesu zjistíme pomocí ps.

Priorita procesu Je číslo v rozsahu +20 (nejnižší priorita) až -19 (nejvyšší priorita). Uživatel může pouze snížit prioritu pomocí příkazu renice, ale nesmí ji už pak zvýšit. Root má neomezenou moc. nice – Spustí příkaz s konkrétní prioritou. Př. nice -n 3 příkaz – spustí příkaz s prioritou 3. Příklad: nice -n 8 k3b renice – Změní prioritu běžícího procesu. Pozor uživatel ji smí pouze snížit, ale root jí může nastavit libovolně. Př. renice 11 12456 – nastaví hodnotu priority u procesu 12456 na 11.

Archivace v UNIXu Program tar – Původně program pro archivaci souborů na magnetickou pásku (Tape Archiver). Dnes se používá pro vytvoření jednoho souboru (archivu) z více souborů či adresářů. Používá se přípona tar, pro snad- nou identifikaci, že jde o archiv. Použití: tar parametry archiv.tar [seznam souboru a adresaru oddeleny mezerou]. Nejdůležitější parametry:

• c - vytvoření archivu • x - rozbalení archivu

25 • p - zachování práv u souborů • v - „ukecanýÿ výpis • f - práce se souborem

c nebo x musí být na začátku a f na konci. Ostatní parametry jsou volitelné a nezáleží na jejich pořadí. Příklady: Sbalení: tar cvpf soubory.tar soubor soubor1 soubor2 Rozbalení: tar xvpf soubory.tar gzip – Archivační program kompatibilní s WinZip. Jeho výstup umí rozbalit i WinRar. Potřebujeme dva programy gzip a gunzip. Příklad: Sbalení: gzip aaa – vytvoří se soubor aaa.gz Rozbalení: gunzip aaa.gz bzip2 – Jiný archivační program, který dosahuje ještě lepšího kompresního poměru. Použití obdobné: bzip2 bbb, bunzip2 bbb.bz2

Spolupráce gzip (bzip2) a tar V programu tar lze přímo zadat i přepínač pro spakování programem gzip (bzip2)

• z - pakování (rozbalení) pomocí gzip, použité přípony *.tar.gz nebo pouze *.tgz

• j - pakování (rozbalení) pomocí bzip2, přípona *.tar.bz, *.tbz

Příklady: tar cvzpf archiv.tar.gz aaa bbb ccc tar xvzpf archiv2.tgz tar cvjpf archiv3.tar.bz *

Informační příkazy date – Výpis data a času s možností nastavení. du – Výpis velikosti adresářů a podadresářů (Disk Usage). Doporučuji psát ve tvaru: du -h --max-depth=1 – výpis pouze velikosti podadresářů aktuálního adresáře v dobře čitelném tvaru.

26 df – Výpis připojených disků s rozsahem zaplnění (Disk Free). free – Výpis velikosti paměti a jejího zaplnění. who – Výpis přihlášených uživatelů.

3.4 Grafický režim

Kdyby UNIX nabízel uživateli pouze textový režim, stal by se asi systémem pro několik fanatiků a pro servery. Naštěstí již od poloviny osmdesátých let je možné pracovat v UNIXu v grafickém režimu. Tomuto grafickému režimu se v UNIXu říká .5 Až do roku 2004 v podstatě jedinou implementací tohoto systému byl XFree. Bohužel s vydáním verze 4.4 v lednu 2004 došlo ke změně licence. Nová licence se stala dle zjištění organizace FSF „GPL nekompatibilníÿ. Kvůli tomuto problému byla urychleně vyvinuta odvozenina Xorg, na kterou přešla většina UNIXů. Samotný X Window System však neumožňuje pohodlnou práci v gra- fickém režimu. Z tohoto důvodu vznikají takzvané grafické manažery, které zjednodušují práci uživatelů v grafickém režimu. Takovýchto manažerů exis- tují desítky a my si představíme nejznámější:

FVWM (F Virtual - písmeno F nemá žádný význam) – Grafický manažer populární v devadesátých létech. Jmenuji jej na prvním místě, protože z vyjmenovaných je nejstarší. První UNIXový manažer, u kterého se dalo mluvit o uživatelské přívětivosti. Existo- vala verze FVWM95, která napodobovala Windows95, aby uživatelům Windows95 usnandnila přechod na UNIX.

KDE (K ) – V současné době asi nejpopulárnější gra- fický manažer, velmi dobře konfigurovatelný se spoustou nativních apli- kací, utilit a apletů. Existuje velké množství jazykových mutací.

GNOME (GNU Network Object Model Environment) – Největší konkurent KDE. Svým vzhledem připomíná MacOS6. Oba manažery mají své nadšené příznivce.

XFCE – Další poměrně rozšířený manažer, určený zejména pro slabší počí- tače. Nemá tolik funkcí jako předchozí manažery a proto si vystačí se slabší konfigurací počítače.

5Není to překlep Window ne Windows 6ve verzi MacOS 8 a 9.

27 Pro pořádek vyjmenuji další známější manažery (abecedně): AfterStep, , IceWM, JWM, , PekWM, Sawfish, a mnoho dalších.

3.5 Přehled UNIXů

Na obrázku 3.3 je dobře vidět vývojový strom rodiny UNIXových systémů. Velice hezký nástěnný vývojový graf UNIXů naleznete na adrese [9]. Jak je vidět vývoj se kolem roku 1975 rozčlenil do několika větví a druhů UNIXu, z nichž některé přestaly být vyvíjeny, jiné se naopak vyvíjí dodnes. My si v této kapitole nyní probereme současné nejvýznamnější větve UNIXu a řekneme si k nim stručné charakteristiky.

3.5.1 GNU/Linux Dnes jednoznačně nejznámější a nejpopulárnější UNIX, o kterém si řekneme více v následující kapitole.

3.5.2 BSD Pro někoho tajemná zkratka BSD (Berkeley Software Distribution) je druh UNIXU, který vznikl na půdě kalifornské univerzity v Berkeley, (to je před- městí San Francisca). BSD se vyvinul postupným přidáváním nových funkcí a nahrazováním zdrojového kódu UNIXu 6 firmy AT&T. Univerzity mohly tento UNIX za velmi výhodných podmínek používat a upravovat. První verze byla vydána v roce 1977 a byla vlastně jen rozšířením původního UNIXu 6. Mohla být šířena pouze lidem a institucím, kteří měli licenci od AT&T. S každou další verzí bylo původního kódu méně až po verzi 4.3 z roku 1988. Stále však musel uživatel mít licenci AT&T, která byla pro běžného uživatele drahá. Proto byla v roce 1989 vydána verze NET/1 (Networking Tape 1 – byla distribuována na magenetické pásce), která již kód od AT&T neměla obsahovat a byla dána volně k dispozici. Přesto bylo zjištěno, že v jádře zůstalo několik částí kódu AT&T. Tyto části byly odstraněny a v červnu 1991 byla vydána verze Net/2. Společnost AT&T však podala na BSD v roce 1992 dokonce soudní ža- lobu. Tato pře byla ukončena v roce 1994 a skončila pro BSD úspěšně. Z 18 000 souborů v distribuci BSD musely být 3 odstraněny a 70 modifikováno. Bohužel v této době se mnoho uživatelů kvůli těmto nejasnostem od BSD odklonilo a BSD již nikdy nezískal zpět svou popularitu z konce osmdesá- tých let. Dokonce i Linux Torvalds se později přiznal, že k tvorbě Linuxu jej

28 Obrázek 3.3: Vývojový strom UNIXu

29 Obrázek 3.4: Logo BSD UNIXu

Obrázek 3.5: Logo Solarisu

Obrázek 3.6: Logo Minixu

30 Obrázek 3.7: Profesor Andrew Tanenbaum přiměly nejasnosti ohledně sporů BSD a AT&T. Bez nich by pravděpodobně Linux nevznikl a dnes bychom používali BSD. BSD je přesto dnes zcela nepochybně druhým nejpoužívanějším UNIXem. Jeho jádro je údajně stabilnější a bezpečnější než linuxové. Pod BSD navíc není problém provozovat většinu linuxových aplikací bez nutnosti emulace. Většina současných odvozenin původního BSD je OSS, ale licence BSD umož- ňuje vytvářet propritární klony. BSD je například základem SunOS nebo Mac OS X. Říká se, že BSD je pro uživatele,kteří mají rádi UNIX, naproti tomu Linux pro uživatele, kteří nenávidí Windows. V současné době existuje několik klonů BSD. K nejznámějším patří:

• FreeBSD (22) – Distribuce určená zejména pro pracovní stanice. Jsou použita některá zjednodušení, díky kterým je dosahována vyšší rychlost běhu aplikací.

• PC-BSD (28) – Distribuce určená začátečníkům, vyznačující se jed- noduchou instalací s grafickým prostředím. Dnes hodně na vzestupu.

• DesktopBSD (31) – Odvozenina FreeBSD se snahou o jednoduchost.

• OpenBSD (49) – Distribuce se snahou o bezpečnost a snadné spouš- tění aplikací psaných pro jiné UNIXy.

• NetBSD (72) – Distribuce se snahou o podporu co největšího množství hardware.

Čísla v závorkách udávají aktuální pořadí na DistroWatch ([10]), které je dobrým měřítkem aktuální popularity jednotlivých diostribucí. 7 Na závěr se zmíním o možnosti použít jádro BSD místo Linuxového jádra v distribuci Debian. Viz. ([11]). Pro zpestření ještě uvádím logo BSD (obr. 3.4). Jeho autorem je M. Kirk McKusick. 8

SunOS, Solaris a OpenSolaris Solaris (dříve SunOS) je klon UNIXu vyvinutý společností Sun Microsys- tems. OpenSolaris je pak jeho otevřená varianta.

7Údaje k 26.9.2007, ve vztahu k posledním 6 měsícům. 8Autorem této kresby (ne loga) je Poul-Henning Kamp. Je šířena pod tzv. beerlicence. Ta říká, že pokud se vám tato kresba líbí a potkáte se s autorem, pak jej můžete pozvat na pivo.

31 Původní SunOS byl vyvinut z BSD. V současné době se název SunOS používá pro čistý operační systéma a Solaris pro tento systém spolu s gra- fickými nadstavbami a dalšími aplikacemi. Solaris je operační systém, který se hodí pro řešení situací s velkým množstvím procesů. Používá souborový systém ZSF. Grafické prostředí používá OpenWindows, CDE anebo i KDE. Zdrojové kódy Solarisu byly zveřejněny v rámci projektu OpenSolaris pod licencí CDDL (Common Development and Distribution Licence), která splňuje podmínky OSS. K této události došlo 14. 6. 2005. Více se dozvíte na webové adrese [12]. Na závěr pro zajímavost pořadí Solarisu na serveru Distrowatch (viz. předchozí kapitola) je 49.9 Logo Solarisu je na obrázku 3.5.

3.5.3 MINIX Volně šiřitelný, otevřený UNIX. Jeho autorem je provesor Andrew S. Ta- nenbaum (obr. 3.7) z Vrije Universiteit v Amsterodamu. Je napsán převážně v jazyce C a první verze byla zveřejněna v roce 1987. Tato verze byla kom- patibilní s UNIXem 7 a byla určena pro počítače PC. Když Linus Torvalds psal první jádro Linuxu vycházel z MINIXu. Tor- valds se později dostal s Tanenbaumem do sporu o architekturu jádra operač- ního systému a Tanenbaum nazval Linux zastaralým. („Linux is obsolete.ÿ) Viz. odkaz [13]. V současné době je nejnovější verze MINIX 3. Její logo si můžete prohléd- nout na obrázku 3.6. Více se dozvíte na stránkách [14]. MINIX byl původně komerčním UNIXem, od dubna 2000 je zdarma. V současné době však nemá jiný než studijní význam.

3.5.4 IRIX Proprietární UNIX vyvinutý firmou SGI (Silicon Graphics, Inc.). Vychází z UNIXu 5. Používá systém souborů XFS, který je obecně považován za nejlepší systém souborů. IRIX je používán pro systémy s nutnou extrémní dobou provozu. První verze byla z roku 1988, zatím poslední je ze srpna 2006.

3.5.5 AIX Proprietární UNIX firmy IBM. První verze byla z roku 1986. AIX byl zají- mavý velmi pokrokovou správou disků s oddělením fyzické a logické struk-

9Jediný „jinýÿ UNIX kromě BSD a Linuxu, který je zde uveden.

32 tury. Tento systém byl převzat mnohými dalšími systémy. Poslední verze je ze srpna 2004.

3.5.6 HP-UX Klon UNIXu firmy Hewlet Packard. Běží pouze na architektuře serverů HP. Poslední verze je z února 2007.

3.5.7 Mac OS X Operační systém počítačů Apple Macintosh, vytvořený kombinací již zanik- lého unixového systému NeXTSTEP a MacOS. Vychází z BSD. První verze vyšla v roce 1999. Používá se i v mobilním telefonu Apple iPhone.

3.5.8 GNU/Hurd Operační systém napsaný pro kolekci GNU programů. Hurd znamená Hird of Unix-Replacing Daemons. Naopak význam slova Hird je Hurd of Interfaces Representing Depth. Viz. logo na obrázku 3.8.

Obrázek 3.8: Logo OS Hurd

Nejedná se vlastně o UNIX, ale o OS, který by měl UNIX nahradit. Chce překonat UNIX ve funkčnosti, rychlosti a bezpečnosti, ale být s ním kompatibilní. Jedná se o množinu serverů běžící na mikrokernelu. Vývoj však pokračuje velmi zvolna, projekt má velké problémy s podporou hardware. Dosud nebyla vydána žádná oficiální verze, existuje pouze live CD a je možné podobně jako u BSD nainstalovat toto jádro do Debianu. Viz. odkaz [15].

33 Kapitola 4

Linux – UNIX pro masy

4.1 Co je Linux

Operační systém Linux je volně šiřitelný OS typu UNIX. Jeho autorem je Linus Torvalds a mnoho dalšich programátorů v Internetu. Jádro Linuxu je volně šiřitelné (public domain) podle pravidel GNU General Public License (licence používaná u softwaru GNU). Linux byl původně psán pro architek- turu IBM PC s procesorem i386 a vyšším. V současné době existují i verze pro m68000, MIPS, Sun Sparc, DEC Alpha/AXP a některé další architek- tury. Jednou z hlavních výhod oproti komerčním UN*Xům je jeho nulová cena, dále snadno dostupný základní software a v neposlední řadě také nízké nároky na hardware a velmi příznivý výkon. Často je také k dispozici více dokumentace než k jiným systémům. (Převzato z linux.cz [16].) Základem je jádro operačního systému – to je samotný Linux. K němu se potom nabalují další programy. Pokud se přidají pouze GNU programy (a případně další volně šiřitelný software), pak mluvíme o GNU/Linuxu. Ob- vykle se však přidává i proprietární anebo komerční software. Různé množiny přidaných programů tvoří tzv. distribuce. Existuje velké množství distribucí (řádově stovky – viz. DistroWatch [10]). Výslovnost slova Linux je pestrá a zajímavá. Pokud se podíváte na ja- kýkoliv dokument o Linuxu, zjistíte, že existuje mnoho různých výslovností. (linuch, linyx, lájnux, lájnyx, linux atd.) Sám autor jako nativně švédsky hovořící Fin1, používá výslovnost „linuxÿ. Logo Linuxu (obr. 4.2). Autorem je Larry Ewing. Traduje se historka, že tučňáka si vybral sám Linus Torvalds neboť jej údajně kdysi kousl tučňák do prstu.

1Ve Finsku existuje poměrně početná švédská menšina.

34 4.2 Historie Linuxu

Na začátku devadesátých let existovalo hnutí GNU, které si uložilo za cíl vytvořit volně šiřitelný klon UNIXu s otevřeným zdrojovým kódem. Měli již hotové všechny programy kromě jádra systému. Pracovali sice na jádře zvaném Hurd (viz. str. 33), ale vývoj se opožďoval a dodnes vlastně není do- končen. Jinou možností bylo použít jádro Minixu (viz. str. 32), ale jeho autor profesor Tanenbaum (obr. 3.7), odmítl dát tento systém volně k dispozici a vyžadoval licenční poplatek za každou instalaci. V té době student univerzity v Helsinkách Linus Torvalds (obr. 4.1) za- čal pracovat na volně šiřitelné verzi OS MINIX a tuto svou činnost ozná- mil v newsové konferenci comp.os.minix zprávou o vývoji volně šiřitelného UNIXu podobného MINIXu. (Plné znění této zprávy je v příloze C.) Linus v té době studoval informatiku ve druhém ročníku. Pro zajímavost – při vý- voji používal PC 386 se 4 MB paměti, což byl na svou dobu velice slušný počítač. Dodneška je tato konfigurace považována na PC jako minimální pro běh Linuxu.

Obrázek 4.1: Linus Torvalds

35 Obrázek 4.2: Logo Linuxu

Číslování verzí Jednotlivá jádra se dříve číslovala ve tvaru X.Y.Z, kde jednotlivá čísla měla význam: • X – vývojová řada • Y – sudé číslo znamená stabilní řadu, liché vývojovou řadu • Z – vedlejší číslo v rámci předchozí řady Například 2.2.26 anebo 2.5.31 Nyní je číslování stabilní řady ve tvaru A.B.C.D, kde A.B je hlavní číslo řady (aktuálně 2.6 anebo starší 2.4), C je vedlejší číslo řady a případně D je číslo její opravy, např. 2.6.22.9. Číslování vývojové řady pak je ve tvaru A.B.C-rcD, kde rc znamená release candidate. (Např. 2.6.23-rc9). Více se dozvíte na iternetové adrese [17]. Jakoukoliv verzi jádra od 0.11 si rovněž můžete z této adresy stáhnout a experimentovat s ní. Zdrojové kódy jader 0.0.1 až 0.0.3 se údajně nedochovaly a sám Linus prohlásil, že je smazal, když potřeboval místo na disku.

4.2.1 Vývoj verzí • První jádro nazvané 0.0.1 bylo dáno volně k dispozici v září 1991. Z pro- gramů byl k dispozici bash, překladač jazyka C nazvaný GCC, termi- nálový emulátor, ovladač pro pevný disk a souborový systém. Podpora pouze pro finskou klávesnici. Nebyla podpora pro diskety. Pro zajíma- vost jsou v příloze D uvedeny autorovy poznámky (release notes) k vydání této verze.

36 • Dále následovaly verze 0.0.2 a 0.0.3 v říjnu 1991. Nově obsahovaly tex- tový editor sed a podporu US klávesnice. Linux byl dán veřejnosti k dis- pozici na ftp serveru. Pro kompilaci jádra i programů byl stále nutný Minix. Byl zaznamenán zájem ostatních programátorů.

• Verze 0.10 a 0.11 znamenaly vyšší stabilitu a podporu virtuální paměti. Minimální paměť byla 4 MB. Od verze 0.11 přibylo stránkování paměti na žádost, ovladače disketových mechanik, sériových portů, grafických karet a klávesnic. Tyto verze již byly nezávislé na Minixu.

• Verze 0.12. První verze pod licencí GNU GPL.

• Verze 1.0. Leden 1994. První stabilní verze. Podpora TCP/IP, síťových karet a SCSI. Byl použit nový souborový systém ext2fs.

• Verze 1.2, též pro procesory Alpha. První verze, která nebyla pouze pro PC.

• Verze 2.0. Červen 1996. Podpora pro více architektur – PowerPC, Sun, Sparc, Motorola. Byla vylepšena správa paměti, podpora TCP/IP a modularita jádra. Byla zavedena vlákna na úrovni jádra.

• Verze 2.2. Leden 1999. Architektury , Sparc, Ultra, Alpha, m68k, PowerPC. Zlepšena podpora CD ROM a výměnných médií, zvukových a grafických karet. Přidána podpora frame bufferu, více souborových systémů a Unicode.

• Verze 2.4. Leden 2001. Přidána podpoora USB a FireWire. Zlepšena podpora multiprocesingu a vláken. Podpora až 64 GB operační paměti. Firewall na úrovni jádra. Nové moderní žurnálovací souborové systémy ext3fs a ReiserFS.

• Verze 2.6. Březen 2003. Zlepšena podpora vláken a více souborových systémů. Přidáno mnoho ovladačů.

4.3 Distribuce Linuxu

Balíky programů přidané k jádru Linuxu. Za každou distribucí stojí nějaký autor, skupina autorů anebo firma. Máme tyto kategorie distribucí:

Komerční – platí se buď přímo za média anebo za uživatelskou podporu a manuály.

37 Nekomerční – stažení zdarma. Obvykle si je možné objednat i CD, anebo DVD buď přímo u zdroje anebo u nějaké specializované firmy.

Překládané – uživatel si stáhne zdrojové kódy a distribuci si přeloží sám

Live – pracuje přímo z CD anebo DVD, není nutný disk v počítači.

Distribuce se instalují z CD (DVD) anebo po síti (FTP, lokálně - NFS). I v druhém případě potřebujeme minimální (řádově o velikosti desítek MB) instalační CD (disketu), ze kterého se zavede systém a ovladače nutné pro provoz sítě. V případě překládané instalace se zavede základní systém a pře- kladač z CD a pak se z internetu stáhnou zdrojové kódy a celý systém se přeloží. Existuje přímo návod nazvaný Linux from Scratch (viz [18]), jak vybu- dovat celý systém od nuly. Tento postup není ani tak komplikovaný, jako je poměrně zdlouhavý. Seznam všech distribucí naleznete na adrese [10]. My si zde probereme nejvýznamnější (nejrozšířenější) a ukážeme si jejich specifikace. Je mi jasné, že přehled je poněkud ovlivněn mou osobou, neboť uvádím zejména distri- buce, se kterými mám osobní zkušenost. Snad tento přehled pomůže čtenáři se zorientovat mezi množstvím distribucí a vybrat si tu svou.

4.4 Slackware

Nejstarší stále se vyvíjející distribuce (první byla již neexistující distribuce Yggdrasil). Jako balíčkovací systém používá tgz. Nemá speciální konfigurační nástroje, ale je snadno konfigurovatelná a přehledná. Jedná se o nekomerční verzi, která je dnes trochu na ústupu. Autorem distribuce je Patrick Volker- ding. Více na [19].

38 4.5 Red Hat a jeho odvozeniny

Red Hat je americká komerční distribuce. Dříve patřila u nás k nejroz- šířenějším. Balíčkovací systém rpm (Redhat ). Občas má problémy se závislostmi, kdy dva balíčky se nechtějí instalovat, dokud nebude nainstalován ten druhý. Obsahuje dobré konfigurační nástroje. V nekomerční sféře na ústupu, naopak v komerčních řešeních má své pevné místo. Na jejím základě vzniklo několik dalších rozšířených distribucí, vyznačujících se sys- témem rpm. Bohužel balíčky z jedné distribuce obvykle nelze použít v jiné distribuci. V současné době zní plný název Red Hat Enterprise Linux (RHEL) a má čtyři různé verze WS (pracovní stanice), ES (edge server), AS (advanced server) a Red Hat Desktop. Placená je podpora uživatelů a možnost staho- vat bezpečnostní aktualizace. Firma rovněž ručí za problémy vzniklé kvůli chybám distribuce. Cena se dle verze pohybuje od tisíců jednorázově až po statisíce korun ročně. Více se dozvíte na [20].

4.5.1 SUSE Linux a OpenSUSE

Komerční distribuce původem z Německa nazývaná dříve SuSE Linux. Dříve se jednalo o čistě komerční distribuci v ceně cca. 3000 Kč. Přesto byla u nás poměrně rozšířená, vzhledem k velkému množství balíků programů, velmi snadné konfiguraci, výborné lokalizaci a dobré podpoře. Navíc obsaho- vala v základní instalaci balík StarOffice (předchůdce OpenOffice), což byl první lokalizovaný balík kancelářských aplikací pro Linux. Obsahuje velmi kvalitní konfigurační nástroj yast (Yet Another Setup Tools). Firma byla v roce 2003 koupena Novellem, následovaly u nás po určitou dobu problémy s prodejem, což vedlo k částečnému vyklizení pozic. Nyní existuje vždy jedna verze SUSE Linuxu, která je zdarma. Pro firmy exituje možnost komerčních verzí a to SUSE Linux Enterprise Server (SLES), určené pro serverová řešení a SUSE Linux Enterprise Desktop (SLED). Ty jsou sice rovněž zdarma, ale platí se za podporu a aktualizace. Existuje rovněž volně šiřitelná verze nazvaná OpenSUSE, vyvíjená komunitou uživatelů. Více na [12] a [21].

39 4.5.2 Mandriva

Francouzská komerční distribuce s možností volného stažení obrazů CD (DVD) z internetu. Vznikla sloučením distribucí Mandrake, Connectiva a Lycoris. Má snadný upgrade a dobrou lokalizaci. Obsahuje rovněž dobré kon- figurační nástroje a je možné zakoupit podporu. Více na [23].

4.5.3 Další rpm distribuce Fedora Core – otevřená verze Red Hatu. Je vyvíjená komunitou uživatelů a de facto slouží jako testovací verze distribuce Red Hat. Obsahuje pouze open source balíčky, ale je možné doinstalovat i další. Více na [24].

Aurox – polská distribuce založená na Fedoře. Více na [25].

CentOs – Jiná otevřená verze Red Hatu. Obsahuje některé nástroje pro konfiguraci z plné verze Red Hatu. Je mimo jiné použita i jako základ pro Rock Clusters, což je distribuce pro klustery. Více na [26] a na [27].

4.5.4 Ukázka práce s programem rpm rpm -i foo – instalace balíku foo.rpm rpm -i foo --force --nodepth – instalace „natvrdoÿ při nesplněných zá- vislostech. rpm -e foo – odinstalování balíku

4.6 Debian a jeho odvozeniny

Zcela nekomerční distribuce. Založena v roce 1993 Ianem Murdockem. Slovo Debian je zkratkou jeho křestního jména a křestního jména jeho ženy Debry. V základní verzi obsahuje pouze open-source programy. Většinou ob- sahuje starší, ale stabilní verze programu. Vždy jsou vyvíjeny současně tři větve:

40 stable – Stabilní prověřené verze programů, ke kterým jsou vydávány pouze bezpečnostní záplaty. Tato verze je často používána na serverech. testing – Novější verze programů. Vhodné pro použití na domácích počíta- čích. unstable – Vývojová řada. Nedoporučuje se pro běžnou práci.

Debian používá balíčkovací systém APT (Advanced Packaging Tool), který umožňuje doinstalovávat nové programy a upgradovat stávající sta- hováním z internetu. Seznam zdrojů (repozitářů je uložen v souboru /etc/apt/sources.list a lze jej snadno měnit. Více na [28].

4.6.1 Ukázka práce s programem APT apt-get update – Stažení informací o nových balících. apt-get upgrade – Upgrade systému. Na důležité změny je uživatel dotázán. apt-cache search foo – Vyhledání informací o balíčcích podle klíčového slova foo. apt-get install foo – Instalace balíčku foo. apt-get remove foo – Odstranění balíčku foo.

4.6.2 Ubuntu a jeho odvozeniny

Je to distribuce založená na Debianu, sponzorovaná firmou Canonical, ltd., kterou vlastní Mark Shuttleworth. Snaží se vyvíjet stabilní, ale aktuální systém. Nové verze jsou vydávány každých 6 měsíců a mají 18 měsíců pod- poru. Ubuntu obsahuje převážně otevřený software (ale ne nutně) a má být navždy zdarma. V základní verzi obsahuje desktopové prostředí Gnome, ale existuje rov- něž verze s KDE zvaná Kubuntu a s zvaná Xubuntu. Existuje rovněž verze s výukovými programi zvaná Edubuntu. Byly vytvořeny rovněž verze Christian edition a Muslim edition pro uživatele daného vyznání, obsahující speciální programy např. pro studium Bible anebo Koránu. Existence po- sledně jmenovaných verzí je však v rozporu s pravidlem Open Source, které říká, že programy mají být k dipozici pro lidi bez rozdílu vyznání. Proto byla na protest některými vývojáři rovněž vydána Satanic edition. Více na [29], na [30], na [32] a na [31].

41 4.6.3 Jiné distribuce založené na Debianu Simply Mepis – Distribuce z USA. Zajímavá volba pro uživatele, kteří mají rádi systém APT, ale připadá jim, že Debian obsahuje zastaralé pro- gramy a naopak Ubuntu jim vše příliš vnucuje. Více na [33].

Knoppix – Live distribuce Linuxu vyvíjená Klausem Knopperem z Ně- mecka. Jedná se asi o aktuálně nejpopulárnější live distribuci, obsahu- jící všechny nejoblíbenější programy. Je možné ji rovněž nainstalovat na pevný disk. Více na [34].

Parallel Knoppix – Distribuce pro sestavení linuxových klusterů založená na Knoppixu. Není nutné instalovat nic na pevný disk, vše běží v pa- měti. Více na [35].

4.7 Překládané distribuce

4.7.1 Gentoo Linux

Distribuci založil Daniel Robbins. Jedná se o nekomerční distribuci. Balíč- kovací systém vychází ze systému ports BSD a obsluhuje se příkazem emerge. Při instalaci se nainstaluje minimální systém z binárních balíků a zbytek se přeloží na míru pro konkrétní hardware. Rovněž onen minimální systém je možné dodatečně přeložit. Kompletní instalace s běžnými programy trvá i několik dní. Rovněž každý upgrade si vyžádá poměrně značný čas. Uživatelé Gentoo bývají někdy posměšně označováni za podivíny trávící polovinu výpočetního času upgradem systému. Na druhou stranu se jedná o průhledný a velice snadno konfigurovatelný systém, přestože neobsahuje žádné konfigurační nástroje. Bývá zvykem uvádět, že se jedná o systém, který je rychlejší než jiné Linuxy, ale dle mého názoru je to důsledek toho, že Gentoo lze nakonfigurovat tak, že se nespouští nic nepotřebného. Více na [36].

4.7.2 Ukázka práce s programem emerge emerge --sync – Stažení informací o nových balících. emerge world – Upgrade systému. Na důležité změny je uživatel dotázán. emerge -s foo – Vyhledání informací o balíčcích podle klíčového slova foo.

42 emerge foo – Instalace balíčku foo. emerge -c foo – Odstranění balíčku foo.

4.7.3 Jiné překládané distribuce Linux from Scratch – Již popsaná možnost přeložit kompletně celý Linux od nuly. Více na [18].

Source Mage – Jiná překládaná distribuce. Používá kouzelnické termíny jako sorcery, cast, spell. Instalace této distribuce a uvedení do provo- zuschopného stavu je obtížnější než u Gentoo. Rovněž tak komunita uživatelů je menší než u Gentoo. Více na [37].

4.8 Arch Linux

Arch Linux je distribuce optimalizovaná pro procesory i686 a vyšší. Díky tomu může na těchto procesorech běžet rychleji než jiné distribuce. Distri- buci vytvořil Judd Vinet. Uvádí se, že je určena zkušenějším uživatelům, ale myslím si, že to není zcela pravda. Naopak i přes absenci speciálních kon- figuračních nástrojů je velice snadno konfigurovatelná. Většina nastavení je uložena v jediném souboru /etc/rc.conf. Více na [38]. Distribuce používá vlastní balíčkovací systém pacman (neplést se stej- nojmennou hrou). Balíčky jsou rozděleny do několika kategorií – core, extra, community, testing a unstable. Defaultně systém používá pouze první dvě. Je na uživateli, které další si povolí. Extra obsahuje například KDE, GNOME a další běžně používané balíky. Community pak jsou balíky připravené uživa- teli a přijaté jako oficiální. Používat skupiny testing a unstable na systému určeném pro běžnou práci se nedoporučuje pro možnou nestabilitu. Existuje rovněž velké množství balíků připravených uživateli, které nejsou oficiálně součástí distribuce. Ty je možné stáhnout z domovských stránek Arch Li- nuxu ([38]) a nainstalovat podle návodu, který je zde uveden.

4.8.1 Ukázka práce s programem pacman pacman -Su – Stažení informací o nových balících. pacman -Sy – Upgrade systému. Na důležité změny je uživatel dotázán.

43 pacman -Ss foo – Vyhledání informací o balíčcích podle klíčového slova foo. pacman -S foo – Instalace balíčku foo. pacman -R foo – Odstranění balíčku foo.

4.9 Deli Linux

Distribuce, která je naopak určena pro počítače starší než i686. Testovací počítač distribuce je 486 s 16 MB paměti. Na takovémto počítači je zaručena bezchybná funkce. Jedná se o německou a nikoliv tureckou distribuci, jak se mnoho uživatelů domnívá (deli = turecky šílený). DeLi znamená Desktop Light. Funkčnost na starších strojích je zajištěna díky použití programů s nižší hardwarovou náročností. Systém rovněž používá balíčkovací systém ports vy- cházející rovněž z BSD jako Gentoo. Pomocí něj je možné Deli Linux upgra- dovat a instalovat si další balíky. Více na [39].

4.10 Live distribuce

Live distribuce jsou distribuce pracující pouze z CD (DVD, diskety, USB flash ...) a nepotřebující instalaci na pevný disk. Již jsme se zmínili o Knoppixu a nyní uvedeme ještě několik dalších.

System Rescue – Distribuce urřená převážně pro systémové administrá- tory založená na Gentoo. S její pomocí můžeme například změnit za- pomenuté heslo ve Windows, upravit velikost a rozdělení diskových od- dílů, zjistit hardwarovou konfiguraci počítače, upravit linuxový zavaděč atd. Více na [40].

Slax – Česká distribuce Tomáše Matějíčka. Založena na Slackware. Je možné ji rozšířit pomocí modulů. Spolu s Knoppixem velmi vhodná pro začá- tečníky. Více na [41].

Damn Small Linux – Podobné Slaxu, ale vejde se na business card CD. Může být spuštěna přímo z Windows. Více na [42].

Geex Box – Distribuce určená pro přehrávání multimédií. Z domovské stránky distribuce si stáhneme prográmek, pomocí kterého si připravímr CD

44 image na míru našeho hardware. Systém se kompletně natáhne do pa- měti a uvolní tak mechaniku pro vložení CD (DVD) s filmem nebo hudbou. V podstatě změní počítač v DVD přehrávač. Více na [43].

Movix – Obdoba předchozí distribuce. Je možné si nainstalovat rozšíření emovix do programu pro vypalování K3b, které umožňuje vytvářet multimediální CD a DVD obsahující Movix. Z takovýchto médií lze nabootovat a rovnou přehrávat multimédia na nich uložená.

Puppy Linux – Minimalistická distribuce vhodná i pro slabší počítače. Umí si nastavení uložit na disk anebo USB flash disk a při příštím startu si jej odtud načte. Pokud ji vypálíme na přepisovatelné CD a bootujeme ve vypalovací mechanice, dokáže si změny na toto CD zapsat. Je možné doinstalovat další balíky z internetu. Rovněž je možné nainstalovat tuto distribuci na pevný disk. Více na [44].

45 Kapitola 5

Svobodné operační systémy neunixového typu

Po přečtení předchozích kapitol by čtenář mohl mít dojem, že všechny svo- bodné operační systémy patří do rodiny UNIXových operačních systémů. To není pravda, existuje několik operačních systémů, nepatřících mezi UNIXy. V této kapitole si několik z nich představíme.

5.1 FreeDOS

Když v roce 1994 vyhlásil Microsoft, že již nebude nadále vyvíjet ani prodávat svůj operační systém MS DOS, rozhodla se skupina programátorů v čele s Jimem Hallem vytvořit svobodný operační systém, umožňující spouš- tět MS DOS aplikace. Výsledkem jejich práce pak je operační systém Free- DOS. FreeDOS je open-source operační systém téměř 100% kompatibilní s ope- račním systémem MS DOS. Umožňuje spouštět většinu aplikací pro MS DOS. Na rozdíl od MS DOSu obsahuje i podporu pro TCP/IP protokol. Stránky projektu naleznete na [45]. Jeho význam spočívá především v možnosti spouštět MS DOS aplikace, které se stále někde používají, zejména ekonomické a účetní programy. Rov- něž se jedná o systém použitelný pro hraní starých her pro MS DOS.1

1Většina firem dává své hry volně k dispozici po nějaké době jako takzvaný abandon- ware. Nebo např. když držitel copyrightu zanikl

46 FreeDOS se distribuuje jako live CD. Z tohoto CD lze systém spustit bez nutnosti instalace na pevný disk. Pokud však systém nainstalujete na pevný disk nainstaluje se velké množství svobodných aplikací. FreeDOS je rovněž používán emulátorem DOSu Dosemu, které umožňují spouštět DO- Sové aplikace přímo z UNIXu. Některé programy2 je však možné spouštět pouze z čisté FreeDOS instalace. FreeDOS sám o sobě nemá žádné grafické prostředí, ale lze v něm spouštět grafickou nadstavbu OpenGEM, svobodnou alternativou GEM, která je i součástí instalačního CD.3 (viz. [46] a [47]). Lze pod ním dokonce spustit Windows 3.1 ve standardním (286) módu. Existuje rovněž emulátor Dosbox, který umožňuje pouštět staré dosové hry a nepotřebuje ke svému provozu kopii systému na bázi DOS.

5.2 ReactOS, svobodné Windows

Podobně jako FreeDOS je svobodnou alternativou k MS DOSu existuje ReactOS svobodná alternativa k Windows. Projekt byl založen v roce 1995 jako FreeWin95 s cílem vytvořit alternativu Windows95 umožňující spouštět programy psané pro Windows. Projekt byl později přejmenován na ReactOS s cílem vytvořit alternativu nejprve k Windows NT a později k Windows XP. I po dlouhém vývoji je projekt stále ve velmi nehotovém stavu. ReactOS je zatím možné nainstalovat pouze na souborový systém FAT32. Měly by sice být podporovány všechny binární ovladače hardware pro Windows, ale dle reakce uživatelů v diskuzních fórech tomu tak není. Autoři projektu úzce spolupracují s vývojáři programu wine (Wine Is Not an Emulator), což je program pro UNIX umožňující spouštět pod UNI- Xem programy pro MS Windows. Na webu ReactOSu je nastíněn další vývoj projektu, ale zůstává otázkou zda se nastíněnou časovou osu podaří dodržet. ReactOS aktuálně umožňuje spouštět programy jako Firefox anebo Open- Office4, ale zatím trpí častými pády. Přesto pokud se podaří systém stabilizo- vat, mohl by mít poměrně slibnou budoucnost, zejména jako systém umož-

2Například emulátor golfu Links386 anebo textový editor T602 3GEM (Graphical Environment Manager) byl grafický manažer vyvinutý firmou Digital a používaný dříve v počítačích Atari ST 4verze pro Windows

47 ňující spouštění programů, které existují pouze pro MS Windows. Více na [48].

5.3 Od BeOSu k Haiku

Operační systém BeOS byl vyvinut firmou Be Incorporated v roce 1991 pro počítače Be Box. Jednalo se o Posix kompatibilní systém s grafickým rozhraním kompletně napsaný pomocí C++. V roce 1997 firma tento systém upravila, tak že mohl fungovat na PowerPC počítačích. Uživatelé počítačů Apple si tak mohli vybrat alternativní systém. K další změně pak došlo v roce 1999, kdy byl systém portován i pro počítače PC. V roce 2000 však firma Be Incorporated další vývoj ukončila a systém dala k dispozici jako open source. Poslední oficiální verze 5.1 byla vydána v prosinci 2001 a obsahuje několik oprav předchozí verze. Systém byl však poměrně populární a užívaný, proto na jeho základě vzniklo několik projektů. Z nich nejvýznamnější a nejperspektivnější je pro- jekt Haiku vyvíjený od roku 2001 původně jako OpenBeOS. Více na [49] a [50].

5.4 AROS aneb Amiga forever

V první polovině devadesátých let patřili mezi nejpopulárnější počítače určené pro hry, práci s videem a hudbou počítače Amiga firmy Commo- dore postavené na procesorech Motorola mk68. Jejich operační systém AROS (Amiga Research Operating System) byl rovněž velmi populární a obsahoval některé velmi pokrokové prvky. Proto se skupina uživatelů rozhodla vytvořit systém pro počítače PC, který by byl kompatibilní s poslední verzí AROS 3.1. Kvůli problémům s ochrannou známkou se systém nazývá akronymem AROS Operating Sys- tem. Jedná se open-source systém. Jeho vývoj je velmi pomalý. Pokud se

48 chcete přesvědčit o aktuálním stavu vývoje, můžete si z webových stránek projektu stáhnout live CD s aktuálním systémem a vyzkoušet jej. Více na [51] a [52].

49 Kapitola 6

Další open-source a free software programy

6.1 Kancelářské aplikace

Kancelářské aplikace tvoří nejčastěji spouštěné programy na počítačích ur- čených k práci, a proto jimi začneme.

6.1.1 OpenOffice.org

Nejznámějším a nejpoužívanějším svobodným balíkem kancelářských apli- kací je OpenOffice.org. Je šířen pod licení GPL, dostupný zdarma a je k dis- pozici pro všechny běžně používané operační systémy. Podporuje otevřený souborový formát OpenDocument, ale dokáže používat i jiné včetně formátů MS Office. OpenOffice.org byl vyvinut jako svobodná verze programu StarOffice, viz následující kapitola.

Historie OpenOffice.org Německá firma StarDivision byla založena v roce 1984. Jejím prvním pro- duktem byl program StarWriter pro počítače s procesorem Zilog Z80. Tento program byl později portován i na počítače s procesorem 8086, např. pro

50 počítač Amstrad PC-1512 (viz [53]), který byl jedním z prvních PC XT, vy- ráběných a prodáváných v Evropě ve větším množství. Od verze 4.2 z roku 1994, byl StarOffice vyvíjen na bázi C++ knihovny StarView a stal se plat- formově nezávislým. Pozdějším přidáním dalších programů byl vytvořen balík kancelářských aplikací pro DOS a Windows, nazvaný StarOffice. V roce 1999 byla firma StarDivision koupena firmou Sun, která zveřejnila téměř celý zdrojový kód StarOffice a ten byl nadále vyvíjen komunitou nezávislých vývojářů jako OpenOffice.org.

Vlastnosti OpenOffice.org OpenOffice.org je balík kancelářských aplikací. Skládá se z následujících sou- částí: Writer – textový pocesor Calc – tabulkový procesor Draw – grafický editor Base – databázový program Math – tvorba matematických vzorců Quickstarter – nástroj pro rychlejší spouštění programů Součástí OpenOffice.org je rovněž OpenOffice.org Basic, což je programo- vací jazyk odpovídající Microsoft Visual Basicu for Applications. Vzájemná kompatibilita není úplná, ale makra lze celkem snadno převádět. Je k dispo- zici pro Writer a Calc. OpenOffice.org používá jako svůj primární souborový formát OpenDo- cument, též zvaný OASIS Open Document Format for Office Applications (OASIS otevřený formát dokumentu pro kancelářské aplikace). Tento formát je založen na XML a byl 6. května 2006 standardizován Mezinárodní organi- zací pro normalizaci jako ISO/IEC 26300. Jedná se o otevřený formát, který mohou používat všechny aplikace bez jakéhokoliv omezení. Ovládání jednotlivých aplikací OpenOffice.org je podobné MS Office 2000. OpenOffice.org navíc obsahuje poměrně kvalitní nápovědu, ve které na rozdíl od konkurenčních produktů lze nalézt skutečnou pomoc. OpenOffice.org je k dispozic pro následující platformy: MS Windows, Li- nux, Solaris, FreeBSD, OpenBSD, OpenVMS, OS/2, Irix a Mac OS X. Hlav- ními vývojovými platformami jsou MS Windows, Linux a Solaris. Více na [54]

51 StarOffice

Původní balík aplikací StarOffice je nadále vyvíjen firmou Sun jako pro- prietární program1. V současné době rovněž podporuje formát OpenDocu- ment. Aktuální cena je $69,95 (7.11.2007). StarOffice navíc obsahuje tyto součásti (jejich kód je uzavřený):

• databázový systém Adabas B

• několik písem True Type ve formátu Unicode

• několik šablon a množství obrázků

• podporu pro třídění asijských jazyků

• filtry pro podporu souborů ze starších textových editorů

Více na [55].

602Office Komerční uzavřený balík vyvíjený na základě OpenOffice.org českou firmou Software602 2. Balík je k mání za cenu 99 Kč, kterou uživatel uhradí pomocí SMS a poté si program může stáhnout z internetu. Balík obsahuje navíc:

• Poštovní program Thunderbird s plánovačem

• Databázový program 602SQL

• Šablony právních smluv

• Galerii obrázků

• Dokumentaci v češtině a roční podporu

Více na [56].

52 6.1.2 LyX Volně šiřitelný typografický program. Nejedná se o textový editor, ale o gra- A fickou nadstavbu typografického systému LTEX. Je určen pro uživatele, kteří A chtějí rychle a pohodlně pořizovat dokumenty v LTEXu. Jedná se o tzv. editor typu WYSIWYM (What You See Is What You Mean). A Znalost LTEXu není sice přímo nutná, ale bez ní nelze tento program A stoprocentně využít. Do dokumentu lze přímo psát příkazy TEXu a LTEXu, například matematické vzorce. Program sice obsahuje i editor vzorců, ale ten A nemá všechny možnosti jako zápis pomocí LTEXových příkazů. Stejně tak lze do dokumentu vkládat pohodlně obrázky a to i například formátu JPG. A Práce s programem LyX připomíná práci s LTEXem. Uživatel dokument A pořídí pomocí LyXu, pak je však nutné jej přeložit LTEXem, přičemž se ob- jevují případné chybové hlášky. Po odstranění chyb nebo je-li vše v pořádku, je možné si nechat zobrazit dokument přeložený do formátu DVI, PS anebo A PDF. Pro správnou funkci je tedy nutné mít na počítači nainstalovaný LTEX, prohlížeč DVI souborů a doporučuje se rovněž prohlížeč PS a PDF souborů. Program je k dispozici pro velké množství operačních systémů včetně Windows a Linuxu. Binární distribuce pro Linux mají však v poslední době problém s kódováním. Program používá kódování latin-2, namísto dnes již obvyklého UTF-8. Více na [57].

6.1.3 Abiword

Volně šiřitelný textový procesor, ve světě poměrně používaný, ale u nás nepříliš známý. Vzhledem i chováním je velmi podobný programu MS Word, což je příjemné zejména začátečníkům zvykým dosud na MS Word. Existuje ve verzi pro velké množství operačních systémů (např. Linux, Mac OS X, , ReactOS, BeOS, AmigaOS...) a je lokali- zován do češtiny. Dokáže otevřít formát souborů MS Office, pro otevírání

1Vzhledem k tomu, že OpenOffice.org je vyvíjen pod licencí GPL, je možné vytvářet jeho uzavřené odvozeniny 2Známou dříve jako tvůrce textových editorů Text602 a WinText602

53 dalších například OpenDocument (formát OpenOffice.org) je nutné doinsta- lovat doplňky. Program byl původně vyvíjen firmou SourceGear Corporation a měl být součástí balíku kancelářských aplikací abisuite, který však nebyl nikdy do- končen. Nyní je Abiword vyvíjen skupinou nazávislých vývojářů a je součástí Gnome Office. Více na [58].

6.1.4 Jiné kancelářské balíky koffice – Skupina programů, vzájemně dobře spolupracujících a tvořících balík kancelářských aplikací. Je vázána na grafické prostředí KDE. Tu- díž existují pouze verze pro Linux, Mac OS X a některé další UNIXy. Viz [59]. office – Skupina programů pro grafické prostředí Gnome. Vazba na Gnome je však volnější než v předchozím případě a mohou proto existo- vat i mimo toto prostředí. Do této skupiny patří například již zmíněný Abiword anebo Gimp. Viz [60].

6.2 Prohlížeče WWW stránek

6.2.1 Mozilla Firefox Po kancelářských aplikacích další nejčastěji používané programy v součas- nosti jsou prohlížeče WWW stránek. Podobně jako je mezi svobodnými kan- celářskými aplikacemi nekorunovaným králem OpenOffice, má i tato katego- rie svou jedničku – program Firefox. Podívejme se nejprve na vývoj tohoto programu.

Historie aneb od Netscape k Firefoxu

První verze programu vyšla pod názvem Netscape Mosaic, aby byla zřejmá návaznost na tehdy populární prohlížeč NCSA Mosaic. Po protestech NCSA (National Center for Supercomputing Applications) byl přejmenován na Net- scape Navigator. Program, který se stal ihned velmi populárním, byl vyvíjen

54 jako uzavřený a existovaly i komerční verze. Jeho součástí se stal rovněž pro- gram pro čtení pošty a editor WWW stránek. Soubor těchto programů byl nazván Netscape Communicator. Více o Netscape zde [61]. V takzvané válce prohlížečů, byl přes počáteční úspěchy nakonec na hlavu poražen Microsoft Internet Explorerem. V roce 1998, poté co jeho podíl na trhu spadl na minimum, firma Netscape zveřejnila jeho zdrojový kód. Byla vytvořena organizace Mozilla Foundation, která na jeho základě vytvořila balík programů Mozilla suite. Ten ale zcela nesplnil naděje do něj vkládané, a proto skupina programátorů přišla se samostaným prohlížečem nazvaným původně Mozilla Phoenix. První verze byla vydána 23. září 2002. Kvůli spo- rům s americkým výrobcem BIOSů o ochranou známku Phoenix, byl pře- jmenován na Mozilla Firebird. Kvůli dalším sporům, tentokrát s výrobcem databázového serveru Firebird, bylo nakonec zvoleno jméno Mozilla Firefox (Firefox = Panda červená). Verze 1.0 byla vydána 9. listopadu 2004.

Vlastnosti

Mozilla Firefox je svobodný webový prohlížeč pro mnoho platforem. Pro- hlížeč používá vykreslovací jádro Gecko, které je napsáno v jazyce C++ a proto je snadno přenositelné. Aktuálně jsou k dispozici verze pro Windows, Linux, MacOS X, FreeBSD, OS/2, BeOS, SkyOS atd. Prohlížeč je možné velice snadno rozšířit pomocí množství doplňků vyví- jených mnoha vývojáři. Pomocí těchto doplňků je možné program lokalizovat do mnoha jazyků. Webové stránky naleznete na [62]. Zdrojový kód programu je šířen pod licencí GPL. Samotná aplikace je šířena pod licencí EULA. Ta zakazuje upravovat přeložený program a šířit jej pod stejným názvem. Proto je Firefox v některých distribucích Linuxu nazván jiným jménem, například v Debianu se jmenuje IceWeasel.

6.2.2 Jiné svobodné prohlížeče Arachne – Prohlížeč vyvíjený pod licencí GPL pro DOS, použitelný i ve FreeDOSu. Více zde [63].

Konqueror – Svobodný prohlížeč vyvíjený pro prostředí KDE (podobně jako koffice). Více zde [64].

55 lynx – Textový WWW prohlížeč pro znakové terminály. Existují verze pro většinu operačních systémů. Více zde [65]. links2 – Rovněž textový prohlížeč jako předchozí případ, ale existuje i gra- fická verze. Program je původem z České republiky. Velmi vhodný pro slabší hardware. Více zde [66].

Opera – Poměrně populární prohlížeč, který je pro desktopy distribuován jako freeware. Prohlížeč striktně dodržuje všechny standardy a díky tomu se stává, že některé stránky nezobrazuje správně. Existuje pro většinu operačních systémů. Více zde [67].

6.3 Programy pro čtení elektronické pošty

6.3.1 Mozilla Thunderbird

Jasná jednička mezi svobodnými poštovními programy. Byl vyvinut po- dobně jako Firefox společností Mozilla Corporation, která je dceřinou společ- ností Mozilla Foundation, za podpory velkého množství dobrovolníků z celého světa. Původní jméno projektu bylo Minotaur. Jméno Thunderbird je podle ptáka z indiánských mýtů, který je poslem dobrých zpráv. Verze 1.0 pro- gramu byla vydána 7. prosince 2004 a během prvních tří týdnů dosáhla půl miliónu stažení. 17. září 2007 oznámila Mozilla Foundation vytvoření nové dceřinné společnosti, která bude program Thunderbird nadále vyvíjet zcela nezávisle na programu Firefox. Program Thunderbird klade velký důraz na bezpečnost uživatele, zejména na filtrování nevyžádané pošty. Uživatel se nemusí tolik obávat podvodných e-mailů a počítačových virů jako u některých proprietárních produktů. Sa- mozřejmostí je správa více uživatelských účtů, podpora protokolů IMAP i POP3, HTML formátování atd. Program je lokalizován do mnoha jazyků. Oficiálně existují verze pro Win- dows a většinu UNIXů. Vzhledem k tomu, že se jedná o open-source aplikaci, mohou existovat i neoficiální verze pro další operační systémy. více si přečtěte na [62]. Podobně jako u Firefoxu není možné upravovat program a šířit jej pod stejným jménem. Proto je v některých distribucích nazván IceDove.

56 6.3.2 Jiné programy pro čtení pošty KMail – Svobodný poštovní program šířený pod licencí GPL. Je součástí KDE, podobně jako koffice anebo konqueror. Viz. [68].

Eudora – Poštovní program pro MacOS a Windows od společnosti Qual- comm. Šířen jako adware. Existuje i freeware verze, která nemá všechny funkce. Nové verze jsou vyvíjeny na základě Thunderbirdu. Viz. [69].

The Bat! – Poštovní program pro Windows šířený jako shareware. Viz. [70].

Mutt – Program fungující ve znakovém režimu šířený pod licencí GPL. Exis- tuje pro většinu operačních systému. Viz. [71].

Pine – Totéž jako Mutt. Viz. [72].

6.4 Programy pro vytváření WWW stránek

6.4.1 Nvu a Kompozer Program Nvu (N-view) je třetím produktem (po Firefoxu a Thunderbirdu) vzešlým z bývalého balíku Netscape Communicator. Jeho vývoj sponzorovala společnost Linspire, která vyvíjí stejnojmenou distribuci Linuxu. Program je vytvořen tak, aby s ním mohl pracovat i uživatel bez hlubší znalosti HTML kódu. Na druhou stranu program vytváří co nejčistší kód, který odpovídá všem standardům W3C. Vývoj Nvu sice nebyl oficiálně ukončen, ale poslední verze je z léta 2005. Na jeho zíkladě však vznikl projekt kompozer, který opravuje nalezené chyby programu. Tento program exituje ve verzi pro Windows, MacOS X a Linux a je lokalizován do několika jazyků včetně češtiny. Podrobnosti na [73] a [74].

6.4.2 Jiné svobodné programy pro vytváření WWW stránek Amaya – Svobodný prohlížeč a editor WWW stránek vyvíjený přímo kon- zorciem W3C. Protože se striktně drží standardů, nedokáže otevřít mnoho WWW stránek a není proto příliš rozšířen. Pokud chcete zjis- tit, zda nějaká stránka odpovídá standardům, pak zkuste tuto stránku otevřít v Amaye. Viz. [75].

Quanta Plus – Svobodný WWW editor pro UNIXové systémy. Viz. [76].

57 6.5 Grafické programy

6.5.1 Gimp

Program GIMP je volně šiřitelný bitmapový (rastrový editor), použitelný pro tvorbu a úpravu bitmapové grafiky, ikon, log a pro úpravu fotografií. Program vytvořili v roce 1995 studenti Spencer Kimball a Peter Mattis jako roční práci na univerzitě v Berkeley. Původní název (význam zkratky) byl General Image Manipulation Program. Program byl od začátku velmi populární a autoři na něm nějakou dobu usilovně pracovali. Poté co oba opustili Berkeley vydali verzi 0.99.9 a programu se dále nevěnovali. Vývoj programu převzala komunita vývojářů, která program přejmenovala na GNU Image Manipulation Program, což je i současné jméno. Verze 1.0 byla vydána v roce 1998. Aktuální verze 2.4 vyšla na podzim 2007.

Obrázek 6.1: Spencer Kimball (vlevo) a Peter Mattis

GIMP obsahuje velké množství nástrojů a skriptů pro úpravu obrázků. Další potřebné nástroje je možné si doprogramovat pomocí programového jazyka Scheme. Program zvládá velké množství vstupních a výstupních for- mátů souborů, takže je často používán i jako konverzní nástroj. Programu je nejčastějí vytýkána uživatelská nepřívětivost a velké množ- ství otevřených oken, které často odrazuje začátečníky. Existuje proto i pro-

58 jekt GIMPshop, který do programu přidává uživatelské rozhraní velice po- dobné programu Adobe PhoShop. Rovněž vývojový tým programu údajně pracuje na změně uživatelského rozhraní. Maskotem programu je kojot zvaný Wilber. Autorem kresby je Tuomas Kuosmanen. Kresba samozřejmě vznikla v GIMPu. V GIMPu rovněž Larry Ewing nakreslil logo Linuxu tučňáka Tuxe (strana. 36). Pro GIMP byla vyvinuta svobodná knihovna GTK (GIMP Toolkit), která se stala mezi programátory velmi populární a s její pomocí vzniklo mnoho programů, například grafický manažer GNOME. Více na WWW stránkách [77].

6.5.2

Otevřený bitmapový editor uživatelsky velmi příjemný. To z něj činí vhodný program pro výukové účely. Autorem programu je Bill Kendrick, který vývoj zahájil v roce 2002. Na rozdíl od GIMPU nemá Tux Paint takové množství funkcí, ale jeho ovládání je intuitivní a velmi přehledné. Obsahuje například velké množství razítek (a další lze stáhnout z internetu) s jejichž pomocí lze rychle vytvářet zajímavé obrázky. To z něj dělá program velmi dobře využitelný ve výuce, zejména na základní škole. Viz [78].

6.5.3 Inkscape

Program Inkscape je open-source vektorový grafický editor, vyvíjený od roku 2003 jako odvozenina grafického editoru Sodipodi. Sodipodi již zřejmě není dále vyvíjen, neboť jeho poslední verze je z roku 2004 a na jeho WWW stránkách ([80]) je poslední záznam z roku 2005. Autoři programu Inkscape jsou dle webových stránek Ted Goult, Brice Harrington, Nathan Hurst a MenTaLguY. Hlavním důvodem vzniku jejich

59 projektu byla snaha o kompletní implementaci vektorového formátu SVG, který je standardem W3C. Jazyk programu byl změněn z C na C++ a byla použita knihovna GTK. Ačkoliv Inkscape stále prochází vývojem, jedná se o plně použitelný vekto- rový grafický editor. Je k dispozici v mnoha jazykových mutacích pro operační systémy Linux, Windows a MacOS X. Vzhledem k dostupnosti zdrojového kódu je možná jeho implementace i pro jiné operační systémy. Více viz. [79].

6.5.4 Jiné vektorové grafické programy OpenOffice.org Draw – Vektorový grafický program, součást balíku Ope- nOffice.org.

Xara Xtreme – Open-source verze uzavřeného vektorového grafického edi- toru pro Windows. Tato otevřená verze je k dispozici i pro Linux a MacOS X. Viz [81].

6.6 Portable Applications

„Mít tak s sebou všechny své aplikace včetně svého nastavení a důležitých dokumentů, aniž bych s sebou musel tahat notebook.ÿ Tohle donedávna ne- splnitelné přání, je nyní skutečností. Projekt Portable application (viz. [82]) nabízí poměrně četnou skupinu open-source aplikací upravených pro spouštění z přenosného média bez nut- nosti instalace na disk. Jedná se o upravené a o některé funkce ořezané verze programů pro Windows anebo MacOS X, které si můžete nahrát např. na USB flash disk. Do této skupiny patří všechny podrobněji probírané aplikace z této kapitoly. Např. pro skupinu aplikací Firefox, Thunderbird, OpenOffice, Inkscape a GIMP postačí USB flash disk 512 MB. Uživatel si tak kdekoliv může zasunout do počítače svůj flash disk a pracovat se svými oblíbenými aplikacemi a svým nastavením.

60 Kapitola 7

Závěr

Dočetli jste publikaci, ve které jste se blíže seznámili s problematikou svo- bodného software. Tato publikace však tvoří jen úvod do této problematiky. Nyní je čas sednout si k počítači a začít si prohlížet internetové odkazy uve- dené v následující kapitole, nejlépe s využitím nějakého svobodného WWW prohlížeče. Pokud vás tato publikace přivedla k svobodnému software a pokud nyní nahradíte ve svém počítač nějaký nelegální proprietární software legálním svobodným softwarem, pak splnila svůj účel. A Práce byla napsána za použití sázecího systému LTEX pod operačním systémem Linux. Obrázky a fotografie byly upravovány pomocí grafického editoru GIMP. Všechny materiály jsem získal z uvedených WWW adres. Kde to bylo možné, jsem uvedl zdroj. Pokud to možné nebylo (např. u materiálů z Wikipedie), rád jej doplním, pokud se mi ozve původní autor. Máte-li k textu nějaké připomínky, s něčím nesouhlasíte, chcete něco dopl- nit anebo mi jen něco vzkázat, pak mi napište na adresu [email protected].

61 Literatura

Vymezení pojmů

[1] Free Software Foundation [online]. [cit. 2007-11-28]. Dostupný z WWW:

[2] Open Source Initiative [online]. 1998 [cit. 2007-11-28]. Dostupný z WWW:

[3] RAYMOND, Eric. The Cathedral and the Bazaar [online]. 2006 [cit. 2007-11-28]. Dostupný z WWW: .

[4] GNU Project [online]. 1996 [cit. 2007-11-28]. Dostupný z WWW:

[5] RADOMĚŘSKÝ, Václav. Open source [online]. 2004 [cit. 2007-11-28]. Dostupný z WWW: .

UNIX se představuje

[6] Operační systém Mulitcs [online]. 1996 [cit. 2007-11-28]. Dostupný z WWW:

[7] The Jargon File - UNIX [online]. 2003 [cit. 2007-11-28]. Dostupný z WWW:

[8] An Interview with Brian Kernighan [online]. 2000 [cit. 2007-11- 28]. Dostupný z WWW:

[9] UNIX Timeline [online]. [cit. 2007-11-28]. Dostupný z WWW:

62 [10] Distro Watch [online]. 2000 [cit. 2007-11-28]. Dostupný z WWW:

[11] Debian GNU/NetBSD [online]. 1997 [cit. 2007-11-28]. Dostupný z WWW:

[12] Open Solaris [online]. [cit. 2007-11-28]. Dostupný z WWW:

[13] Tanenbaum-Torvalds Debate: Part II [online]. 2006 [cit. 2007-11-28]. Do- stupný z WWW:

[14] The MINIX 3 Operating System [online]. [cit. 2007-11-28]. Dostupný z WWW:

[15] Debian GNU/Hurd [online]. 1997 [cit. 2007-11-28]. Dostupný z WWW:

Linux – UNIX pro masy

[16] Co je to Linux? [online]. [cit. 2007-11-28]. Dostupný z WWW:

[17] Jádro Linuxu [online]. [cit. 2007-11-28]. Dostupný z WWW:

[18] Linux from Scratch [online]. 1998 [cit. 2007-11-28]. Dostupný z WWW:

[19] Stránky distribuce Slackware [online]. [cit. 2007-11-28]. Dostupný z WWW

[20] Stránky distribuce Red Hat [online]. [cit. 2007-11-28]. Dostupný z WWW

[21] Stránky distribuce SUSE [online]. [cit. 2007-11-28]. Dostupný z WWW

[22] Stránky distribuce OpenSUSE [online]. [cit. 2007-11-28]. Dostupný z WWW

[23] Stránky distribuce Mandriva [online]. [cit. 2007-11-28]. Dostupný z WWW

63 [24] Stránky distribuce Fedora Core [online]. [cit. 2007-11-28]. Dostupný z WWW

[25] Stránky distribuce Aurox [online]. [cit. 2007-11-28]. Dostupný z WWW

[26] Stránky distribuce CentOS [online]. [cit. 2007-11-28]. Dostupný z WWW

[27] Stránky distribuce Rock Clusters [online]. [cit. 2007-11-28]. Dostupný z WWW

[28] Stránky distribuce Debian [online]. [cit. 2007-11-28]. Dostupný z WWW

[29] Stránky distribuce Ubuntu [online]. [cit. 2007-11-28]. Dostupný z WWW

[30] Stránky distribuce Kubuntu [online]. [cit. 2007-11-28]. Dostupný z WWW

[31] Stránky distribuce Xubuntu [online]. [cit. 2007-11-28]. Dostupný z WWW

[32] Stránky distribuce Edubuntu [online]. [cit. 2007-11-28]. Dostupný z WWW

[33] Stránky distribuce Simply Mepis [online]. [cit. 2007-11-28]. Dostupný z WWW

[34] Stránky distribuce Knoppix [online]. [cit. 2007-11-28]. Dostupný z WWW

[35] Stránky distribuce Parallel Knoppix [online]. [cit. 2007-11-28]. Dostupný z WWW

[36] Stránky distribuce Gentoo [online]. [cit. 2007-11-28]. Dostupný z WWW

[37] Stránky distribuce Source Mage [online]. [cit. 2007-11-28]. Dostupný z WWW

[38] Stránky distribuce Arch Linux [online]. [cit. 2007-11-28]. Dostupný z WWW

64 [39] Stránky distribuce Deli Linux [online]. [cit. 2007-11-28]. Dostupný z WWW

[40] Stránky distribuce System Rescue CD [online]. [cit. 2007-11-28]. Do- stupný z WWW

[41] Stránky distribuce Slax [online]. [cit. 2007-11-28]. Dostupný z WWW

[42] Stránky distribuce Damn Small Linux [online]. [cit. 2007-11-28]. Do- stupný z WWW

[43] Stránky distribuce Geex Box [online]. [cit. 2007-11-28]. Dostupný z WWW

[44] Stránky distribuce Puppy Linux [on- line]. [cit. 2007-11-28]. Dostupný z WWW

Svobodné operační systémy neunixového typu

[45] Stránky projektu FreeDOS [online]. [cit. 2007-11-28]. Dostupný z WWW

[46] Počítače Atari ST [online]. [cit. 2007-11-28]. Dostupný z WWW

[47] Graphics Environment Manager [online]. [cit. 2007-11-28]. Dostupný z WWW

[48] Operační systém ReactOS [online]. [cit. 2007-11-28]. Dostupný z WWW

[49] Operační systém BeOS [online]. [cit. 2007-11-28]. Dostupný z WWW

[50] Operační systém Haiku [online]. [cit. 2007-11-28]. Dostupný z WWW

[51] Počítače Amiga [online]. [cit. 2007-11-28]. Dostupný z WWW

65 [52] Operační systém AROS [online]. [cit. 2007-11-28]. Dostupný z WWW

Další open-source a free software programy

[53] Počítače Amstrad CPC 1512 [online]. [cit. 2007- 11-28]. Dostupný z WWW [54] České stránky o OpenOffice.org [online]. [cit. 2007-11-28]. Dostupný z WWW [55] Stránky StarOffice[online]. [cit. 2007-11-28]. Dostupný z WWW [56] Stránky 602 Office [online]. [cit. 2007-11-28]. Dostupný z WWW [57] Stránky textového editoru LyX [online]. [cit. 2007-11-28]. Dostupný z WWW [58] Stránky o AbiWordu [online]. [cit. 2007-11-28]. Dostupný z WWW [59] Stránky o KOffice [online]. [cit. 2007-11-28]. Dostupný z WWW [60] Stránky o GnomeOffice [online]. [cit. 2007-11-28]. Dostupný z WWW [61] Stránky firmy Netscape[online]. [cit. 2007-11-28]. Dostupný z WWW [62] Projekt Czilla [online]. [cit. 2007-11-28]. Dostupný z WWW [63] Stránky prohlížeče Arachne [online]. [cit. 2007-11-28]. Dostupný z WWW [64] Stránky prohlížeče Konqueror [online]. [cit. 2007-11-28]. Dostupný z WWW [65] Stránky prohlížeče Lynx [online]. [cit. 2007-11-28]. Dostupný z WWW

66 [66] Stránky prohlížeče Links [online]. [cit. 2007-11-28]. Dostupný z WWW

[67] Stránky prohlížeče Opera [online]. [cit. 2007-11-28]. Dostupný z WWW

[68] Poštovní program KMail [online]. [cit. 2007-11-28]. Dostupný z WWW

[69] Poštovní program Eudora [online]. [cit. 2007-11-28]. Dostupný z WWW

[70] Poštovní program The Bat! [online]. [cit. 2007-11-28]. Dostupný z WWW

[71] Poštovní program Mutt [online]. [cit. 2007-11-28]. Dostupný z WWW

[72] Poštovní program Pine [online]. [cit. 2007-11-28]. Dostupný z WWW

[73] Editor WWW stránek Nvu [online]. [cit. 2007-11-28]. Dostupný z WWW

[74] Editor WWW stránek KompoZer [online]. [cit. 2007-11-28]. Dostupný z WWW

[75] Editor WWW stránek Amaya [online]. [cit. 2007-11-28]. Dostupný z WWW

[76] Editor WWW stránek Quanta Plus [online]. [cit. 2007-11-28]. Dostupný z WWW

[77] Grafický program GIMP [online]. [cit. 2007-11-28]. Dostupný z WWW

[78] Grafický program Tux Paint [online]. [cit. 2007-11-28]. Dostupný z WWW

[79] Grafický program Inkscape [online]. [cit. 2007-11-28]. Dostupný z WWW

[80] Grafický program Sodipodi [online]. [cit. 2007-11-28]. Dostupný z WWW

67 [81] Grafický program Xara Xtreme [online]. [cit. 2007-11-28]. Dostupný z WWW

[82] Domácí stránka Portable Applications [online]. [cit. 2007-11-28]. Do- stupný z WWW

68 Příloha A

Licence GPL

GNU GENERAL PUBLIC LICENSE

Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc.

Everyone is permitted to copy and distribute verbatim copies of this li- cense document, but changing it is not allowed.

Preamble The GNU General Public License is a free, license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program–to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain

69 responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers’ and authors’ protection, the GPL clearly explains that there is no warranty for this free software. For both users’ and authors’ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users’ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. Sta- tes should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the spe- cial danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modifi- cation follow.

TERMS AND CONDITIONS 0. Definitions. “This License” refers to version 3 of the GNU General Public License. “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. “The Program” refers to any copyrightable work licensed under this Li- cense. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.

70 To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. A “covered work” means either the unmodified Program or a work based on the Program. To “propagate” a work means to do anything with it that, without per- mission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a , with no transfer of a copy, is not conveying. An interactive displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

1. Source Code. The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. A “Standard Interface” means an interface that either is an official stan- dard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

71 The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work’s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associ- ated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can re- generate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work.

2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmo- dified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

72 3. Protecting Users’ Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work’s users, your or third parties’ legal rights to forbid circumvention of technological measures.

4. Conveying Verbatim Copies. You may convey verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.

5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to pro- duce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appro- priate Legal Notices; however, if the Program has interactive interfaces that

73 do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation’s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corre- sponding Source under the terms of this License, in one of these ways:

1. Convey the object code in, or embodied in, a physical product (inclu- ding a physical distribution medium), accompanied by the Correspon- ding Source fixed on a durable physical medium customarily used for software interchange.

2. Convey the object code in, or embodied in, a physical product (inclu- ding a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.

3. Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.

4. Convey the object code by offering access from a designated place (gra- tis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along

74 with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (opera- ted by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code say- ing where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. 5. Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. “Installation Information” for a User Product means any methods, pro- cedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).

75 The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communi- cation across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.

7. Additional Terms. “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permis- sions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in cer- tain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

1. Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or

2. Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices dis- played by works containing it; or

3. Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or

76 4. Limiting the use for publicity purposes of names of licensors or authors of the material; or

5. Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or

6. Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with con- tractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.

All other non-permissive additional terms are considered “further rest- rictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requi- rements apply either way.

8. Termination. You may not propagate or modify a covered work except as expressly pro- vided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation

77 of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.

9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions inf- ringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.

10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An “entity transaction” is a transaction transferring control of an orga- nization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party’s predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

78 11. Patents. A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor’s “contributor version”. A contributor’s “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of ma- king, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the con- tributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free pa- tent license under the contributor’s essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a “patent license” is any express agree- ment or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to ex- tend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient’s use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is “discriminatory” if it does not include within the scope

79 of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be avai- lable to you under applicable patent law.

12. No Surrender of Others’ Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.

13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will

80 be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.

15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTA- BILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PRO- GRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECT- .

16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PER- MITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DA- MAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR

81 DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOL- DER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Pro- grams

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

Copyright (C)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A~PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License

82 along with this program. If not, see .

Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:

Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type ‘show w’. This is free software, and you are welcome to redistribute it under certain conditions; type ‘show c’ for details.

The hypothetical commands ‘show w’ and ‘show c’ should show the ap- propriate parts of the General Public License. Of course, your program’s commands might be different; for a GUI interface, you would use an “about box”. You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read .

83 Příloha B

Komentovaná definice Open Source Software

The Open Source Definition (Annotated)

Submitted by Ken Coar on Mon, 2006-07-24 19:04. :: Version 1.9 The indented, italicized sections below appear as annotations to the Open Source Definition (OSD) and are not a part of the OSD. A plain version of the OSD without annotations can be found here.

Introduction Open source doesn’t just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:

1. Free Redistribution The license shall not restrict any party from selling or giving away the soft- ware as a component of an aggregate software distribution containing pro- grams from several different sources. The license shall not require a royalty or other fee for such sale. Rationale: By constraining the license to require free redistribution, we eliminate the temptation to throw away many long-term gains in order to make a few short-term sales dollars. If we didn’t do this, there would be lots of pressure for cooperators to defect.

84 2. Source Code The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distri- buted with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Delibe- rately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed. Rationale: We require access to un-obfuscated source code because you can’t evolve programs without modifying them. Since our purpose is to make evolution easy, we require that modification be made easy.

3. Derived Works The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software. Rationale: The mere ability to read source isn’t enough to support in- dependent peer review and rapid evolutionary selection. For rapid evolution to happen, people need to be able to experiment with and redistribute mo- difications.

4. Integrity of The Author’s Source Code The license may restrict source-code from being distributed in modified form only if the license allows the distribution of ”patch files” with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software. Rationale: Encouraging lots of improvement is a good thing, but users have a right to know who is responsible for the software they are using. Authors and maintainers have reciprocal right to know what they’re being asked to support and protect their reputations. Accordingly, an open-source license must guarantee that source be readily available, but may require that it be distributed as pristine base sources plus patches. In this way, ”unofficial” changes can be made available but readily distinguished from the base source.

85 5. No Discrimination Against Persons or Groups The license must not discriminate against any person or group of persons. Rationale: In order to get the maximum benefit from the process, the maximum diversity of persons and groups should be equally eligible to con- tribute to open sources. Therefore we forbid any open-source license from locking anybody out of the process. Some countries, including the United States, have export restrictions for certain types of software. An OSD-conformant license may warn licensees of applicable restrictions and remind them that they are obliged to obey the law; however, it may not incorporate such restrictions itself.

6. No Discrimination Against Fields of Endeavor The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research. Rationale: The major intention of this clause is to prohibit license traps that prevent open source from being used commercially. We want commercial users to join our community, not feel excluded from it.

7. Distribution of License The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties. Rationale: This clause is intended to forbid closing up software by indi- rect means such as requiring a non-disclosure agreement.

8. License Must Not Be Specific to a Product The rights attached to the program must not depend on the program’s being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program’s license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution. Rationale: This clause forecloses yet another class of license traps.

86 9. License Must Not Restrict Other Software The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software. Rationale: Distributors of open-source software have the right to make their own choices about their own software. Yes, the GPL is conformant with this requirement. Software linked with GPLed libraries only inherits the GPL if it forms a single work, not any software with which they are merely distributed.

10. License Must Be Technology-Neutral No provision of the license may be predicated on any individual technology or style of interface. Rationale: This provision is aimed specifically at licenses which require an explicit gesture of assent in order to establish a contract between licensor and licensee. Provisions mandating so-called ”click-wrap” may conflict with important methods of software distribution such as FTP download, CD-ROM anthologies, and web mirroring; such provisions may also hinder code re-use. Conformant licenses must allow for the possibility that (a) redistribution of the software will take place over non-Web channels that do not support click-wrapping of the download, and that (b) the covered code (or re-used portions of covered code) may run in a non-GUI environment that cannot support popup dialogues.

87 Příloha C

Oznámení o vývoji Linuxu

Zpráva, kterou zaslal dne 25. srpna 1991 do newsové konference comp.os.minix Linus Torvalds.

From: [email protected] (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <[email protected]> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki

Hello everybody out there using minix - I’m doing a (free) operating system (just a hobby, won’t be big and pro- fessional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file- system (due to practical reasons) among other things). I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-) Linus ([email protected].fi) PS. Yes - it’s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(.

88 Příloha D

Info k jádru Linuxu 0.1

Informace přiložené k jádru Linuxu 0.0.1. Zdroj [17]. Graficky upraveno.

Notes for linux release 0.01

0. Contents of this directory linux-0.01.tar.Z - sources to the kernel bash.Z - compressed bash binary if you want to test it update.Z - compressed update binary RELNOTES-0.01 - this file

1. Short intro This is a free minix-like kernel for i386(+) based AT-machines. Full source is included, and this source has been used to produce a running kernel on two different machines. Currently there are no kernel binaries for public viewing, as they have to be recompiled for different machines. You need to compile it with gcc (I use 1.40, don’t know if 1.37.1 will handle all __asm__-directives), after having changed the relevant configuration file(s). As the version number (0.01) suggests this is not a mature product. Currently only a subset of AT-hardware is supported (hard-disk, screen, keyboard and serial lines), and some of the system calls are not yet fully implemented (notably mount/umount aren’t even implemented). See com- ments or readme’s in the code. This version is also meant mostly for reading - ie if you are interested in how the system looks like currently. It will compile and produce a working

89 kernel, and though I will help in any way I can to get it working on your machine (mail me), it isn’t really supported. Changes are frequent, and the first ”production” version will probably differ wildly from this pre-alpha- release. Hardware needed for running linux:

• 386 AT

• VGA/EGA screen

• AT-type harddisk controller (IDE is fine)

• Finnish keyboard (oh, you can use a US keyboard, but not without some practise :-)

The Finnish keyboard is hard-wired, and as I don’t have a US one I can- not change it without major problems. See kernel/keyboard.s for details. If anybody is willing to make an even partial port, I’d be grateful. Shouldn’t be too hard, as it’s tabledriven (it’s assembler though, so ...) Although linux is a complete kernel, and uses no code from minix or other sources, almost none of the support routines have yet been coded. Thus you currently need minix to bootstrap the system. It might be possible to use the free minix demo-disk to make a filesystem and run linux without having minix, but I don’t know...

2. Copyrights etc This kernel is (C) 1991 Linus Torvalds, but all or part of it may be redistri- buted provided you do the following:

• Full source must be available (and free), if not with the distribution then at least on asking for it.

• Copyright notices must be intact. (In fact, if you distribute only parts of it you may have to add copyrights, as there aren’t (C)’s in all files.) Small partial excerpts may be copied without bothering with copy- rights.

• You may not distibute this for a fee, not even ”handling” costs.

Mail me at "[email protected]" if you have any questions. Sadly, a kernel by itself gets you nowhere. To get a working system you need a shell, compilers, a library etc. These are separate parts and may be

90 under a stricter (or even looser) copyright. Most of the tools used with linux are GNU software and are under the GNU copyleft. These tools aren’t in the distribution - ask me (or GNU) for more info.

3. Short technical overview of the kernel. The linux kernel has been made under minix, and it was my original idea to make it binary compatible with minix. That was dropped, as the differences got bigger, but the system still resembles minix a great deal. Some of the key points are:

• Efficient use of the possibilities offered by the 386 chip. Minix was written on a 8088, and later ported to other machines - linux takes full advantage of the 386 (which is nice if you /have/ a 386, but makes porting very difficult)

• No message passing, this is a more traditional approach to unix. System calls are just that - calls. This might or might not be faster, but it does mean we can dispense with some of the problems with messages (message queues etc). Of course, we also miss the nice features :-p.

• Multithreaded FS - a direct consequence of not using messages. This makes the filesystem a bit (a lot) more complicated, but much nicer. Coupled with a better scheduler, this means that you can actually run several processes concurrently without the performance hit induced by minix.

• Minimal task switching. This too is a consequence of not using messages. We task switch only when we really want to switch tasks - unlike minix which task-switches whatever you do. This means we can more easily implement 387 support (indeed this is already mostly implemented)

• Interrupts aren’t hidden. Some people (among them Tanenbaum) think interrupts are ugly and should be hidden. Not so IMHO. Due to practi- cal reasons interrupts must be mainly handled by machine code, which is a pity, but they are a part of the code like everything else. Especially device drivers are mostly interrupt routines - see kernel/hd.c etc.

• There is no distinction between kernel/fs/mm, and they are all linked into the same heap of code. This has it’s good sides as well as bad. The code isn’t as modular as the minix code, but on the other hand some things are simpler. The different parts of the kernel are under different

91 sub-directories in the source tree, but when running everything happens in the same data/code space.

The guiding line when implementing linux was: get it working fast. I wan- ted the kernel simple, yet powerful enough to run most unix software. The file system I couldn’t do much about - it needed to be minix compatible for practical reasons, and the minix filesystem was simple enough as it was. The kernel and mm could be simplified, though:

• Just one data structure for tasks. ”Real” unices have task information in several places, I wanted everything in one place.

• A very simple memory management algorithm, using both the paging and segmentation capabilities of the i386. Currently MM is just two files - memory.c and page.s, just a couple of hundreds of lines of code.

These decisions seem to have worked out well - bugs were easy to spot, and things work.

4. The ”kernel proper” All the routines handling tasks are in the subdirectory ”kernel”. These include things like ’fork’ and ’exit’ as well as and minor system calls like ’getpid’ etc. Here are also the handlers for most exceptions and traps (not page faults, they are in mm), and all low-level device drivers (get_hd_block, tty_write etc). Currently all faults lead to a exit with error code 11 (Seg- mentation fault), and the system seems to be relatively stable (”crashme” hasn’t - yet).

5. Memory management This is the simplest of all parts, and should need only little changes. It contains entry-points for some things that the rest of the kernel needs, but mostly copes on it’s own, handling page faults as they happen. Indeed, the rest of the kernel usually doesn’t actively allocate pages, and just writes into user space, letting mm handle any possible ’page-not-present’ errors. Memory is dealt with in two completely different ways - by paging and segmentation. First the 386 VM-space (4GB) is divided into a number of segments (currently 64 segments of 64Mb each), the first of which is the kernel memory segment, with the complete physical memory identity-mapped into it. All kernel functions live within this area.

92 Tasks are then given one segment each, to use as they wish. The paging mechanism sees to filling the segment with the appropriate pages, keeping track of any duplicate copies (created at a ’fork’), and making copies on any write. The rest of the system doesn’t need to know about all this.

6. The file system As already mentioned, the linux FS is the same as in minix. This makes crosscompiling from minix easy, and means you can mount a linux partition from minix (or the other way around as soon as I implement mount :-). This is only on the logical level though - the actual routines are very different. NOTE! Minix-1.6.16 seems to have a new FS, with minor modifi- cations to the 1.5.10 I’ve been using. Linux won’t understand the new system. The main difference is in the fact that minix has a single-threaded file- system and linux hasn’t. Implementing a single-threaded FS is much easier as you don’t need to worry about other processes allocating buffer blocks etc while you do something else. It also means that you lose some of the multiprocessing so important to unix. There are a number of problems (deadlocks/raceconditions) that the linux kernel needed to address due to multi-threading. One way to inhibit race- conditions is to lock everything you need, but as this can lead to unnecessary blocking I decided never to lock any data structures (unless actually reading or writing to a physical device). This has the nice property that dead-locks cannot happen. Sadly it has the not so nice property that race-conditions can happen almost everywhere. These are handled by double-checking allocations etc (see fs/buffer.c and fs/inode.c). Not letting the kernel schedule a task while it is in supervisor mode (standard unix practise), means that all kernel/fs/mm actions are atomic (not counting interrupts, and we are careful when writing those) if you don’t call ’sleep’, so that is one of the things we can count on.

7. Apologies :-) This isn’t yet the ”mother of all operating systems”, and anyone who hoped for that will have to wait for the first real release (1.0), and even then you might not want to change from minix. This is a source release for those that are interested in seeing what linux looks like, and it’s not really supported yet. Anyone with questions or suggestions (even bug-reports if you decide to get it working on your system) is encouraged to mail me.

93 8. Getting it working Most hardware dependancies will have to be compiled into the system, and there a number of defines in the file ”include/linux/config.h” that you have to change to get a personalized kernel. Also you must uncomment the right ”equ” in the file boot/boot.s, telling the bootup-routine what kind of device your A-floppy is. After that a simple ”make” should make the file ”Image”, which you can copy to a floppy (cp Image /dev/PS0 is what I use with a 1.44Mb floppy). That’s it. Without any programs to run, though, the kernel cannot do anything. You should find binaries for ’update’ and ’bash’ at the same place you found this, which will have to be put into the ’/bin’ directory on the specified root- device (specified in config.h). Bash must be found under the name ’/bin/sh’, as that’s what the kernel currently executes. Happy hacking.

Linus Torvalds "[email protected]" Petersgatan 2 A~2 00140 Helsingfors 14 FINLAND

94 Open source a free software Elektronická skripta Autor: Jiří Pech Grafická úprava: Jiří Pech Jihočeská univerzita v Českých Budějovicích 1. vydání České Budějovice 2008 ISBN 978-80-7394-069-0

95