Linux - operační systém zdarma

Primární zdroj: http://www.spsselib.hiedu.cz/~kerslage/manuals/linux/Linux/
Autor: Milan Keršláger
Osnova: zkrácená verze přednásky v bodech

Přednáška přináší přehled o možnostech Linuxu, vysvětluje principy jeho vývoje, možnosti využití free software i pro komerční nasazení, definuje oblasti, ve kterých Linux vyniká a přináší i přehled oblastí, kde (zatím) free projekty nedosahují možností komerčních.

Úvod

Typy operačních systémů (OS)

OS je obvykle uživateli souzen podle vnějšího vzhledu, avšak to není nejlepší měřítko. OS se dělí podle toho, zda umožňuje spustit najednou jen jednu nebo více úloh, na jednoúlohový a víceúlohový a podle počtu uživatelů, kteří s ním pracují, na jednouživatelský a víceuživatelský. Základní přehled s příklady zástupců nám přiblíží následující tabulka. (pojmem víceuživatelský systém se v této tabulce míní možnost současné práce více uživatelů zároveň).

Systém Jednouživatelský Víceuživatelský
JednoúlohovýMS-DOS, CP/M Intellec SIV
Víceúlohový MS Windows NT, 2000,
MS Windows'9x, MacOS
Unix, VMS,
MS Terminal server

Linux

Linux je OS Unixového typu. Jeho vývoj začíná v srpnu roku 1991, kdy jeden student z Finska poslal do NetNews do skupiny comp.os.minix tuto zprávu:
   Hello everybody out there using minix -
   I'm doing a (free) operating system (just a hobby, won't
   be big and professional like gnu) for 386(486) AT clones.
   ----------------------------------------------------------
   Zdravím všechny uživatele minixu -
   Pracuji na (volném) operačním systému (jenom jako koníček,
   nechci, aby byl rozsáhlý a profesionální jako gnu) pro
   počítače typu 386(486) AT.
Tímto studentem by Linus Torvalds a koníček, o kterém píše, se stal tím, co dnes nazýváme společným názvem Linux. První verze (v0.01) pochází ze září roku 1991. Dnes je Linux plnohodnotným Unixovým operačním systémem, řídí se doporučeními POSIX (standardy POSIX definují jednotné aplikační rozhraní (přenositelnost), jednotné vlastnosti prostředí Unixových OS včetně názvů základních knihovních funkcí, jejich parametrů, přepínačů řádkových příkazů, ...) a stále se vyvíjí. Na jeho vývoji pracují zdarma stovky programátorů z celého světa. Linus je ve vývoji jádra Linuxu stále mužem číslo 1 a ve spolupráci s předními vývojáři udává směr dalšího vývoje. Neexistuje žádná řídící struktura ani managment; student z nejzapadlejší části světa si koupí novou součást do svého počítače a napíše ovladač, který může dále používat kdokoliv na celém světě. Systémový administrátor z New Yorku potřebuje zálohovací nástroj, napíše jej a dále jej sdílí a vylepšuje společně se všemi, kteří jej potřebují. To není fantazie, to se stává dnes a denně na celém světě.

Linux můžete získat naprosto zdarma stejně, jako tisíce dalších programů. Jedinou cenou, kterou musíte složit, je čas, který věnujete k získání tohoto produktu z celosvětové počítačové sítě - Internetu.

Vývoj Linuxu

Linux je Unixový OS a jako takový vychází z tradic založených v Bell Telephone Laboratories (divize AT&T). Při pracích na systému Multics si pánové Ken Thompson a Denis Ritchie na přelomu 60. a 70. let navrhli jednoduchý OS, jehož hlavním úkolem bylo zpracování textů. Protože se později tento produkt projevil jako velmi životaschopný, získali jsme OS Unix (parafráze na nikdy nedokončený Multics). Jeho vznik je těsně spjat s jazykem C, do kterého byl přepsán a který mu umožnil velmi rychlé rozšíření na nejrůznější počítače a platformy.

Linux má na původní Unixy jen ideovou vazbu. Přestože byl (a je) vývoj Linuxu ve své podstatě živelný a neorganizovaný, má svůj vnitřní řád. První věc, kterou si musíme uvědomit, je, že na Internetu najdeme tisíce různých programů a projektů a každý žije svým vlastním životem. Linux je jedním z nich, i když v současné době se za tímto slůvkem skrývá celý souhrn již zmíněných jednotlivých projektů. Ve skutečnosti je Linux jen jádro OS, takový malý základ, který umožňuje všem ostatním programům sdílet prostředky počítače. Co se týká velikosti a objemu, můžeme říci, že jádro je zhruba jedna tisícina toho, co všechno slůvkem Linux označujeme (v klasické instalaci zabírající 1GB místa na disku).

Jádro OS Linux je vyvíjeno bazarovým (protikladem je model katedrála, viz. http://tuxedo.org/~esr/writings/cathedral-bazaar/) modelem. To znamená, že na vývoji se může podílet každý bez toho, aby v projektu zaujímal nějaké předem vyznačené místo, střetávají se nejrůznější názory a nápady a výsledky této práce jsou stále všem průběžně k dispozici. Většina lidí, kteří se na vývoji podílí (tzv. vývojáři), se osobně nezná. Jsou ve vzájemném kontaktu díky Internetu, elektronické poště (E-mail), různým elektronickým konferencím (linux-kernel apod.) a dalším elektronickým médiím, které najdeme na Internetu. Samozřejmě i zde najdeme jednoduchou organizační strukturu. Pomyslné nejvyšší místo zaujímá Linus, který těsně spolupracuje s dalšími vývojáři, kteří se uvolili k zodpovědnosti za jednotlivé části jádra. Linus periodicky zveřejňuje na známém místě ftp://ftp.kernel.org/pub/linux/kernel/) tzv. oficiální verze, které jsou volně k dispozici. Pokud má někdo nějakou důležitou změnu či doplněk, který by chtěl v jádře mít a tím jej obohatit, měl by jej zaslat člověku, který je za daný úsek zodpovědný, ale může volit i jiné cesty (zveřejnění na nějakém WWW serveru, zaslání do konference zabývající se jádrem, SCSI ovladači, nebo přímo Linusovi apod.). Pokud je příspěvek (tzv. patch, oprava nebo rozdílový soubor) hodnotný, má velkou naději, že bude zahrnut do další verze jádra, která bude Linusem uvolněna. Nové verze jsou záměrně zveřejňovány poměrně pravidelně a často, takže změny mezi verzemi nejsou skokové a vývojáři mohou snadno sledovat průběžný stav vývoje.

Aby výsledky této práce byly dostupné co nejširšímu počtu zájemců, existují souběžně dvě řady jader. První z nich je tzv. stabilní. Nové verze jsou vydávány v delších časových odstupech (měsíc nebo dva a intervaly se neustále prodlužují) a obsahuje pouze opravy\footnote{Jak uvidíme za chvíli, není to absolutní pravda. V odůvodněných případech je toto pravidlo často porušováno.}. Tato řada jader je určena k nejširšímu použití. Druhá řada se nazývá vývojová. Slouží k tomu, aby vývojáři mohli do jádra implementovat novinky a tak posouvat vývoj neustále kupředu. Jádra jsou vydávána v kratších intervalech (zhruba týdně) a frekvence se postupně (zejména v závěru vývojové fáze) zvyšuje. Jednou za čas, když Linus a ostatní usoudí, že vývojové jádro dosáhlo požadovaných kvalit, je poslední vývojové jádro prohlášeno za stabilní, vývojová řada je ukončena a vznikne nová stabilní řada. Po nějaké době (po zahlazení drobných chyb) vznikne nová vývojová řada a celý cyklus se opakuje.

Pro snadné odlišení obou řad i jednotlivých verzí byl počínaje verzí 1.0.0 zaveden následující model číslování: Každé jádro je označeno třemi čísly (např. 2.3.34). První číslo vyjadřuje generaci, mění se nejpomaleji a označuje velké skoky v kvalitě. Druhé číslo se mění častěji a označuje řadu. Pokud je číslo sudé, jedná se o stabilní řadu, pokud je liché, tak o vývojovou. Poslední číslo označuje úroveň oprav (tzv. patchlevel). Mění se s každým novým vydaným jádrem od Linuse, tedy nejčastěji. Konkrétní příklad může být asi takový: V červenci roku 1996 vzniklo jádro 2.0.0, po něm následovala verze 2.0.1, 2.0.2 atd. Po třech měsících vznikla z této řady verze 2.1.0, která byla první z vývojových a po ní následovaly verze 2.1.1, 2.1.2 atd. Tato řada se vyvíjela souběžně s řadou 2.0.x. Po nějaké době (v lednu 1999, tedy po dva a půl roku) vznikla z vývojové řady (konkrétně z 2.1.132) nová stabilní řada 2.2.x a celý cyklus se bude zase opakovat.

Ve výše popsaném mechanismu samozřejmě existují výjimky. Protože byl vývojový cyklus řady 2.1 velmi dlouhý, byly do řady 2.0 zahrnovány kromě oprav i novinky, které se osvědčily v souběžné řadě vývojové. Známý a velmi aktivní vývojář Alan Cox převzal údržbu stabilních řad. Nová jádra sice nadále vydává Linus, ale hlavní zásluhu na pokračujících úpravách stabilní řady má právě Alan. Linus se věnuje spíše řadám vývojovým. V poslední době se Alanovy aktivity rozšířily i na oficiální zastupování Linuse v jeho nepřítomnosti ve vývojové řadě jader (vydává ovšem pouze postupně opravy, které pak předává hromadně Linusovi a ten teprve po jejich kontrole vydá nové oficiální jádro). Oprav nebo vylepšení pro jádra existuje mnoho a v podstatě kdokoliv je může umístit na místa, kde se takové neoficiální věci sbírají (např: http://www.kerneli.org, http://www.linuxhq.com). Některé klony jádra dokonce žijí svým vlastním životem a s hlavní vývojovou řadou se synchronizují jen občas. Tento postup je obvyklý u jader, která jsou přizpůsobována (portována) na jiné platformy (např. Motorola, Sparc a podobně). Dělá se to proto, že udržování trvalého kontaktu by vývojářům zbytečně ubíralo čas a síly.

Původní jádro bylo určeno jen pro procesory Intel i386 a vyšší (resp. kompatibilní). Dnes je Linuxové jádro schopno běžet na nejrůznějších procesorech a platformách (včetně plně 64 bitových): Alpha, Arm, Motorola 68000, Mips, PowerPC, Sparc a Sparc64. Kromě těchto oficiálních existují i projekty nezahrnuté do hlavní řady. Z nich je například velmi zajímavý port na platformu Psion, což jsou malé počítače do ruky.

Sdružení GNU a GPL licence

Linux by nikdy nemohl vzniknout, kdyby nemohl využívat výsledků práce ostatních nadšenců. Většina z nich se sdružila pod hlavičku GNU. Toto sdružení vzniklo na popud Richarda Stallmana, který věřil, že lidé rádi vyvíjejí a sdílejí volně šiřitelné programy. Hlavním důvodem pro toto chování je možnost učit se z cizích zdrojových kódů, přijímat nové myšlenky a nápady od druhých a možnost spojitého vývoje dobrých produktů bez původních autorů. Aby tyto zdarma vyvíjené programy nemohly být později zneužity pro komerční účely, napsal speciální licenci (General Public Licence - GPL). Licence zaručuje (český překlad viz. závěr dokumentu), že k programu jsou dostupné zdrojové kódy, licence nemůže být od nich oddělena, program nesmí být prodáván, kódy lze volně modifikovat, redistribuovat za manipulační poplatek, avšak vždy jen s touto licencí. Každý člověk může pro svou tvorbu tuto licenci volně použít. Protože je dobrá a sympatická mnoha lidem, existuje dnes pod GPL licencí velmi velké množství programů. Za všechny jmenujme alespoň ty největší: GCC (kompilátor jazyka C), GNU Emacs (editor), Gimp (bitmapový kreslící program), KDE, Gnome (grafická prostředí) a stovky dalších projektů.

Pro knihovny existuje speciální varianta, tzv. LGPL (Library GPL). Její podstatou je ustanovení, že komerční programy mohou používat pouze dynamické knihovny. V případě statického linkování přechází licence (GPL) knihoven i na výsledný produkt. Některé (zejména komerční) aplikace jsou však někdy závislé na konkrétních verzích knihoven. Vina je obvykle z větší části na tvůrcích programu (používají např. vnitřní struktury knihoven nebo zastaralá volání), z menší části pak na chybách v knihovnách samotných. LGPL má v těchto případech dvojí efekt: U některých knihoven způsobuje, že je kromě GPL verze (např. Lesstif (volně šiřitelná náhrada za Motif, víceméně kompatibilní) k dispozici i komerční verze (Motif), která se pak staticky linkuje s daným programem (výhodou pro uživatele je, že si nemusí dynamické knihovny kupovat - může se spokojit se statickými, které jsou přilinkovány k žádanému programu a oželí nemožnost sdílení knihoven v paměti). Naopak program je ve své GPL verzi linkován dynamicky (řekněme nestabilní verze) a komerční verze je slinkovaná staticky (stabilní, ovšem obrovská binárka s velkými paměťovými nároky bez možnosti sdílení knihoven v paměti - například Netscape).

Linuxové jádro samotné je šířeno pod licencí GPL, ovšem s několika výjimkami. GPL licenci předchází text, který se dá shrnout takto: GPL licence o šíření jádra nepřechází na programy, které používají systémová volání jádra (není to tedy analogie s knihovnami), protože toto chování je předpokládané normální používání jádra a nenaplňuje tak pojem "odvozené dílo" (pokud je něco vyvíjeno pod GPL licencí, je odvozený produkt povinen zachovat GPL licenci). Dále na části kódu, na které se odkazuje, se vztahují autorská práva (copyright) Linuse a ostatních programátorů, kteří jej píší.

Tyto doplňky zajišťují, že GPL licence na Linuxové jádro nezpůsobuje nutnost jejího přechodu na všechny programy provozované pod Linuxem a zároveň zabraňuje Linusovi i komukoliv jinému tento stav změnit (musel by se vyrovnat s autorskými právy desítek či stovek vývojářů jádra z celého světa).

Drtivá většina v Linuxu používaných podpůrných a doplňujících programů pochází z projektu GNU a je šířena pod GPL licencí.

BSD licence

BSD licence je v některých ohledech volnější než licence GPL. Předpokládá, že program, který je volně vyvíjen, lze dále prodávat nebo použít jeho zdrojové kódy v jiném, uzavřeném a komerčním projektu. Jediné, co musí být dodrženo je, že v propagačních materiálech o novém produktu musí být uvedena zmínka o původních autorech. Význam této licence je v tom, že umožňuje využít dobrovolné práce programátorů ke komerčním projektům a následnému přímému vydělávání peněz na prodeji těchto programů zákazníkům.

Ostatní licence

Konečné rozhodnutí o použité licenci je vždy na autorech samotných. Některým nevyhovuje ani jedna z uvedených licencí, a proto přikládají ke svým produktům své vlastní. Pokud nejsou zdatnými právníky, mohou snadno udělat v textu chybu, takže je vždy jednodušší použít jednu z už zmíněných hotových licencí nebo podobných (viz. http://www.opensource.org/licenses/).

Distribuce

Jak jsme se již zmínili, existuje velké množství jednotlivých projektů, které můžeme zdarma využívat. Protože je Linux jedním z nich, stojíme před nelehkým úkolem posbírat tyto střípky, abychom je pak mohli složit do jednoho drahokamu. Je to práce těžká, nikdy nekončící a náročná na čas. Existuje proto několik projektů, které se snaží tento stav vylepšit. Říká se jim distribuce. Každá distribuce je složena z tzv. balíčků, které obsahují jednotlivé programy spolu se všemi potřebnými součástmi a případně i nutnými opravami. Distribuce obsahují jak jádro Linuxu, tak i prakticky všechny nezbytné programy, které budeme potřebovat. Vše je úhledně zabaleno a připraveno k snadné instalaci na náš počítač. Díky balíčkům můžeme instalovat jen ty součásti, které potřebujeme, snadno instalovat nové verze a odebírat ze systému nepotřebné. Nejznámějšími distribucemi jsou Red Hat, SuSE, Debian, Slackware a další.

Red Hat je distribuce vyvíjená a udržovaná stejnojmennou komerční firmou (první verze vznikla v roce 1996). Svůj produkt prodává za manipulační poplatek (to GPL umožňuje), zároveň ho zdarma zpřístupňuje na Internetu a živí se poskytováním podpory svým zákazníkům. Sponzoruje nebo zaměstnává vývojáře, kteří pracují i na různých jiných projektech (jádro, GNU i jiné). Jako komerční firma má možnost být partnerem pro výrobce hardware (technického vybavení počítačů), což je asi její největší přínos (zdarma pracující vývojáři nemají obvykle přístup k technické dokumentaci výrobků různých firem).

Debian (první verze je ze srpna 1993) je distribuce, která je založena stejně jako volně šiřitelné programy, na nekomerčním základě a je vyvíjena spoustou dobrovolníků. Blízko dokončení je i Debian distribuce založená na GNU jádře Hurd (místo klasického Linuxového jádra).

Distribuce Slackware je zajímavá tím, že je vyvíjena prakticky jen jedním člověkem\footnote{Celý tým se dá spočítat na prstech jedné ruky, ale Patrick je majoritní podílník co se týká rozsahu odvedené práce.} (Patrick Volkerding). To je jedním z důvodů, proč je to distribuce konzervativní (neobsahuje obvykle poslední novinky, což může být i výhoda). Zároveň má nejméně propracovaný systém balíčků. Ze zmíněných distribucí je nejstarší (první verze distribuce je z dubna 1992, kdy existovalo jádro verze 0.95, tj. půl roku po vůbec první verzi jádra Linuxu). SuSE je původně německá firma\footnote{Dnes je již její hlavní sídlo v USA.}, která poskytuje distribuci, jež má svůj původ ve Slackware a z Red Hatu přejala nástroj na vytváření RPM balíčků. Vývojáři SuSE si dali za cíl, že chtějí ve své distribuci mít pokud možno všechno, co se dá na Internetu najít. Firma pracuje na podobném principu jako firma Red Hat. Existuje ještě mnoho dalších distribucí, každá z nich má svoje vlasní přednosti i zápory. Pro základní přehled výše zmíněné stačí.

Lokalizace

Většina volně šiřitelných programů je z důvodu prostředí svého vzniku vyvíjena obvykle s minimálním ohledem na neanglosaské jazyky. Z toho vyplývá spousta problémů, které souvisejí s použitím národních abeced a dalších odlišností v těchto jazycích. Programy musí být opravovány, přepisovány a jinak uzpůsobovány tomu, aby vyhověly potřebě používání jiných znakových sad, rozložení kláves, aby komunikovaly s uživatelem v mateřském jazyce a podobně. Tomuto procesu se říká lokalizace a je bohužel teprve na svém samém počátku. Proto není jednoduché (dokonce je to někdy i nemožné) nastavit systém kompletně tak, aby bezproblémově fungoval s ohledem na všechny naše národní potřeby. Naštěstí se situace rychle zlepšuje, protože rozvoj používání počítačů je i v našich zemích (zejména v poslední době) na velmi dobré cestě.

Úsilí o lokalizaci Linuxu je stejně jako v ostatních (zejména středoevropských) zemích koordinováno. Síly jsou směrovány tak, aby úpravy provedené v zájmu jednoho jazyka byly prospěšné i ostatním a zároveň byla zachována funkčnost v původní podobě. K tomuto účelu slouží v prostředí Unixů tzv. locale. Popisují univerzálním způsobem jednotlivé znaky, označení národních měn, tvar zápisu datumu, způsoby třídění slov podle abecedy, umožňují doplnit hlášení programu tak, aby komunikoval v národním jazyce a podobně. Locale si může každý uživatel systému nastavit pomocí proměnných prostředí pro jednotlivé programy nezávisle na ostatních. Tento způsob výrazně zjednodušuje vývoj a používání programů respektujících národní zvyklosti a rozdíly.

Pokud není locale správně použito, nechovají se programy korektně. Jsou-li k dispozici zdrojové kódy, nebývá těžké vzpurné jedince opravit, avšak bez nich je to v některých případech i nemožné. Určitou naději na úspěch u neposlušných aplikací dává knihovna LibI18n od Zdeňka Kabeláče http://www.fi.muni.cz/~kabi/linux/linux.html, která umožňuje aplikacím, které volají starou funkci XlookupString místo XmbLookupString, správnou inicializaci vstupních metod a korektní zpracování českých znaků na vstupu z klávesnice. Principem je předefinování a rozšíření originálních funkcí knihoven. Jinými slovy se dá říct, že to není čisté řešení, avšak funguje.

Pomocí nastavení proměnné prostředí ovlivníme zavádění dynamických knihoven před spuštěním programu StarOffice (chování knihovny lze ještě dále ovlivňovat další speciální proměnnou prostředí, více viz. její dokumentace):

#!/bin/sh
LD_PRELOAD=/lib/libI18Nforce.so.0.0
export LD_PRELOAD
soffice $*

Srovnání s ostatními OS

Růst podílu Linuxu na trhu roste na rozdíl od Windows NT, které stagnují (serverové OS), viz: Business Week. Podle International Data Corp. Linux mezi roky 1998 a 1999 zvýšil svůj podíl na trhu o 17%, zatímco trh NT je na stejné úrovni, jako v roce 1997.

Sčítání uživatelů Linuxu

Sčítání je prováděno na základě dobrovolné registrace uživatelů na adrese http://counter.li.org/. Podle odhadu, který je zde zveřejněn, je dnes kolem 12 miliónů uživatelů na celém světě. Následující graf uvádí statistiku zaregistrovaných uživatelů na výše zmíněném místě.

Linux je tradičně nasazován jako server (zatím zejména neanglosaském prostředí poměrně těžko konkuruje na trhu desktopů). Nejčastěji je Linux používán jako platforma pro WWW servery a má jednoznačně největší zásluhu na obrovké rozšíření WWW serveru Apache.

Následující obrázek uvádí srovnání nasazených WWW serverů z http://www.netcraft.com/survey/. Linux samozřejmě není jediným OS, na kterém je Apache provozován, avšak zcela jednoznačně Linux vede jako jeho nejpoužívanější platforma.

Rozdělení trhu WW serverů pro všechny domény v období srpen 1995 až únor 2000

Top Developers

Developer January 2000 Percent February 2000 Percent Change
Apache 5521069 55.49 6482728 58.08 2.59
Microsoft 2280669 22.92 2447645 21.93 -0.99
iPlanet (+Netscape)773163 7.77 867265 7.77 0.00

 

Sčítání OS se službami FTP, News a WWW z http://www.leb.net/hzo/ioscount/data/r.9904.txt

    Domain : RIPE+.edu
    DName  : ---------
    Service: ftp+news+www
    Date   : April `99


  Host OS recognized (grouped, sorted)    01/99  %recog      04/99   %recog  +/-%   
  ------------------------------------  -------  ------    -------  -------  ----   
            1.(   )              Linux   287093    28.5     399748     31.3  +2.8   
            2.(   )   Windows 95/98/NT   245184    24.4     310162     24.3  -0.1   
            3.(   )      Solaris/SunOS   178350    17.7     213304     16.7  -1.0   
            4.(   )         BSD Family   150961    15.0     186385     14.6  -0.4   
            5.(   )               IRIX    52941     5.3      58112      4.6  -0.7   
            6.( 7.)          Mac/Apple    16170     1.6      26548      2.1  +0.5   
            7.( 6.)                AIX    17362     1.7      18427      1.4  -0.3   
            8.( 9.)               HPUX    10416     1.0      11760      0.9  -0.1   
            9.( 8.) Reliant Unix/Sinix    12848     1.3      10616      0.8  -0.5   
           10.(12.)     Novell Netware     3656     0.4       5982      0.5  +0.1   
           11.(10.)       Digital Unix     5016     0.5       5186      0.4  -0.1   
           12.(11.)           SCO Unix     3787     0.4       4021      0.3  -0.1   
                           -----------    -----   -----    -------    -----         
                           ++checksums   983784    97.8    1250250     97.9         

Linux jako server v lokální síti

Protože je Linux OS Unixového typu, nečiní mu žádné potíže být v pozici serveru, který poskytuje své služby jiným počítačům a uživatelům v síti. Toto uspořádání volíme proto, abychom snížili náklady na správu počítačové sítě, umožnili sdílení a ochranu dat. Server je v síti nezbytný v případě, že chceme provozovat některé Internetové služby (elektronické pošta, WWW server, FTP server a podobně). Výhodou Linuxu v tomto případě je, že prakticky všechny tyto služby můžeme poskytovat pomocí volně dostupných programů.

Uživatelské účty

V počítačové síti je obvyklé, že její uživatelé mají na serveru uložena svá privátní data a po předložení platného jména a hesla jim server umožní s těmito daty pracovat. Může to být elektronická pošta, rozpracované dokumenty a podobně. Pokud taková data uživatelé ukládají na server, je navíc jednoduché je s nízkými náklady hromadně a pravidelně zálohovat. Pokud učiníme pro uživatele z předkládání jména a hesla (tzv. přihlašování do sítě) podmínku umožnění práce na jednotlivých počítačích v síti, získáme navíc i základní opatření proti zneužívání naší sítě neoprávněnými osobami.

Souborový server

Jednou ze základních funkcí v lokálních počítačových sítích (LAN) je sdílení diskového prostoru. Jak jsme se již zmínili v minulém odstavci, přináší to úspory nákladů při zálohování i při nákupu nových počítačů, které nemusí být vybaveny velkými disky. Dalšími výhodami je levná správa, jednoduché zabezpečení, jednotná konfigurace atp. Bohužel jen za předpokladu, že to použitý OS na stanicích umožňuje. Tuto podmínku bohužel nesplňují OS a další programy od firmy Microsoft, které vyžadují, aby programy i OS byly nainstalovány na lokálních discích každého počítače a tak tuto výhodu snižují.

Pokud na stanicích používáme MS Windows nebo DOS, využijeme pravděpodobně možnost, že se Linuxový server může navenek tvářit jako NT server nebo jako server Novell NetWare. Zejména v prvním případě dosáhneme snadno srovnatelné výkonové kvality. V obou případech se na Linuxovém serveru spouští speciální program, který toto chování zajišťuje (tzv. emulace).

Při emulaci NT serveru používáme volně šiřitelný program Samba. Jeho název pochází ze zkratky SMB, kterou se označuje protokol, který firma Microsoft přejala a používá ho při sdílení disků i tiskáren. Tento protokol může být u NT serveru i stanic s MS Windows provozován nad komunikačními protokoly TCP/IP, IPX/SPX a NetBEUI. U Samby existuje zatím jen podpora pro protokol TCP/IP, což ovšem není na závadu, protože tento protokol potřebujeme i v případě, že chceme provozovat Internetové služby (Microsoft i Novell v současné době přecházejí na "čistá" řešení s použitím výhradně protokolu TCP/IP). Sambu můžeme konfigurovat ručně pomocí modifikace jejího konfiguračního souboru /etc/smb.conf nebo pomocí společně dodávaného programu SWAT, který poskytuje pěkné WWW rozhraní. Toto rozhraní je přístupné z jakéhokoliv WWW prohlížeče a dá se ovládat jak z textového, tak z grafického prostředí. K dispozici je plná implementace sdílení disků a tiskáren, autentifikace uživatelů, Domain controller i WINS server. Zatím není plně implementována možnost přidělování práv, jak je to u MS Windows NT serveru obvyklé, takže si musíme vystačit s použitím klasických Unixových práv na jednotlivé soubory a adresáře nebo omezit možnost čtení a zápisu podle jednotlivých skupin a uživatelů na celý sdílený podadresář.

V případě emulace serveru Novell NetWare pomocí programu http://www.compu-art.de/mars_nwe/index.html nedosáhneme takového výkonu jako se Sambou a navíc se u něj setkáme s drobnými problémy v implementaci. V zásadě se dá říct, že je to plně funkční řešení (autor ho používá na některých místech), avšak jistě ne ideální.

Tiskový a faxový server

Tiskové servery se nejvíce uplatní na místech, kde je jimi možno ušetřit investice pomocí sdílených drahých, rychlých a velkých tiskáren. Tiskový server může uplatňovat pro uživatele různá práva přístupu k různým tiskárnám a zároveň i provádět účtování tisku. Je rovněž důležité, aby umožňoval tisk uživatelům ze všech v síti používaných OS.

Klasické Unixové sdílení je zajišťováno démonem lpd, který nezajišťuje striktní bezpečnost, ale je nejrozšířenější. Lepší variantou je LPRng, který jej v mnoha ohledech předčí (konfigurace, zabezpečení, robusnost, účtování). V současné době je důležitější schopnost komunikace s okolními systémy MS Windows. V toto případě lze uplatnit program Samba, který dokáže kromě sdílení disků stejným způsobem nabízet i tiskárny. Vnitřní obsluha samotné fronty je obvykle zajišťována jedním z již zmíněných klasických Unixových démonů. Druhou hodně rozšířenou variantou je sdílení tiskáren v sítích Novell NetWare, což může zajišťovat také již zmíněný program Mars.

Kromě nabízení vlastních tiskáren ostatním klientům je potřeba v Linuxu umět využívat i tiskárny již v síti provozované. V případě tisku na tiskárny sdílené z MS Windows pomůže opět Samba a její podpůrné utility. V případě Novell NetWare jsou k dispozici nástroje z balíčku ncpfs (podrobnější informace naleznete na stránkách autora, viz. http://www.hylafax.org, pro klienty z MS Windows interaktivní program pro odesílání faxů WHFC a pro pohodlnou konfiguraci Khylafax z projektu KDE). Jiná možnost konfigurace je podrobně rozebrána v http://www.linux.cz/noviny/1998-07/clanek05.html. Faxový server se zde tváří jako PostScriptová tiskárna a pomocí zvláštního programu dodatečně od klienta zjišťuje faxové číslo, na které se má fax poslat.

Databázový server

Databázový server oceníme zejména v případě, že k databázi přistupuje několik na sobě nezávislých subjektů. Mohou to být různé osoby, ale například i WWW server a podobně. Bohužel s tím musí počítat i aplikace, kterou používáme, takže převod dat na databázový server nemusí být tak jednoduchý, jak by se na první pohled mohlo zdát. Všechny takovéto databázové servery pracují s daty pomocí dotazovacího jazyka SQL, který se postupně stal všeobecně uznávaným standardem.

K dispozici je v tomto případě až překvapivý počet dostupných implementací SQL serverů. V distribucích je k dispozici databázový server PostgreSQL a to hlavně z důvodu, že je šířen pod BSD licencí. Ostatní mají obvykle licenci restriktivnější. Druhým nejznámějším je MySQL, který je pro nekomerční použití zdarma stejně jako mSQL. Dále jsou k dispozici komerční servery Oracle, Informix, SyBase, Progress a připravuje se i volně šiřitelná InterBase od firmy Inprise/Borland.

Intranetový server

Každá distribuce Linuxu obsahuje veškeré programy, které potřebujeme pro zřízení klasických Internetových služeb. Protože Intranet je vlastně Internet zmenšený do velikosti podnikové sítě, není ve zřízení Intranetu z tohoto hlediska žádný problém. Při zřizování Intranetu oceníme zejména WWW server Apache, jeho širokou konfigurovatelnost, možnosti skriptování, přídavné moduly pro podporu PHP, spojování s databázemi a další příjemné vlastnosti. V Intranetu budeme zřejmě používat tyto služby: DHCP, DNS, WWW, E-mail, FTP a ve zvláštních případech Newsový server nebo i další služby. Veškeré zmíněné služby je možno snadno zabezpečit pomocí volně šiřitelných programů.

X terminál

Velmi zajímavá možnost využití Linuxu je v oblasti bezdiskových stanic, které mohou zpřístupnit aplikace na silném Unixovém serveru. Toto řešení bylo zprovozněno v rámci DP na SPŠSE i na katedře informačních technologií\footnote{Zde jej zprovoznil na základě řešení autora DP na SPŠSE David Kmoch.}. Celé řešení využívá možnosti, že Linuxové jádro umožňuje připojit svůj kořenový souborový systém pomocí NFS ze vzdáleného počítače (v obou případech Linux). Na tomto stroji jsou umístěny základní programy a skripty, které na stanici spustí X server (terminál) proti silnému serveru s aplikacemi. Uživatel se přihlásí a může si spouštět libovolné aplikace, jejichž výstup je pomocí X protokolu přenášen na terminál klienta, ze kterého je uživatel ovládá. Celý systém je stejně, jako v normálních Unixech chráněn proti poškození pomocí přístupových práv. Uživatel nemá možnost nijak poškodit kteroukoliv součást řešení neoprávněným zásahem, avšak pomocí konfiguračních souborů uložených v jeho domácím adresáři může veškeré aplikace v systému libovolně konfigurovat včetně volby prostředí nebo správce oken (KDE, Gnome, Fvwm2 apod., více viz. příslušné kapitoly dále).

Linux jako pracovní stanice

Protože byl Linux od počátku vyvíjen jako systém, jehož hlavní náplní bylo poskytnout vývojářům solidní platformu jak pro vývoj vlastních aplikací tak pro spojení s Internetem, jsou jeho možnosti nasazení v oblasti pracovní stanice orientovány především v tomto směru. Je velmi silný v oblastech síťové administrace, integrace do heterogenních sítí a samozřejmě i v tom, co je Unixům vlastní: víceuživatelské prostředí se silným zaměřením na zpracování textů. Všechny programy, které jsou zmíněny v následujících kapitolách, je možné získat na Internetu.

Grafická prostředí

V současné době je u pracovních stanic standardem grafické prostředí, které uživatelům přináší snazší a intuitivnější ovládání (zejména pro počítačové laiky). Souhrně je označujeme termínem grafické uživatelské prostředí (GUI - Graphical User Interface). V grafickém prostředí pracují aplikace se samostatnými okny, která se mohou překrývat. Jedno z nich je vždy aktivní. Aktivní okno spolupracuje s klávesnicí, a tak je umožněn vstup od uživatele. K pohodlné práci s grafickým prostředím a okny slouží myš. S nástupem grafických prostředí byl těsně spjat vývoj objektového programování a programování řízeného událostmi.

Myšlenka grafického prostředí pochází z vývojových laboratoří Palo Alto Research Center (PARC) firmy Xerox. Již zde navrhli všechny základní prvky tohoto rozhraní, které bylo označováno jako WIMP (Window-Icon-Mouse-PullDown). Použili jako první techniky překrývajících se oken, znázornění objektů pomocí ikon, využití myši i techniku roletových a vyskakovacích menu. Rozhraní bylo použito ve vývojovém prostředí pro objektově orientovaný jazyk SmallTalk a v kancelářském systému pracovních stanic Xerox Star). Po jeho úspěchu si prakticky každá firma vytvořila vlastní GUI, čímž vznikla na trhu v druhé polovině 80. let značně nepřehledná situace. Ke konci 80. let došlo ke sdružování mezi výrobci a programátorskými firmami za účelem zajištění vyšší kompatibility a přenositelnosti aplikací mezi jednotlivými systémy.

X Window System

X Window System je kromě názvu prostředku pro tvorbu GUI a programů s grafickým rozhraním také název konsorcia pro vývoj otevřených standardů (http://www.x.org). Počátek najdeme v roce 1984 na půdě univerzity Massachusetts Institute of Technology (MIT), kde začaly první práce. Se zaměstnanci a studenty univerzity spolupracovala laboratoř firmy DEC. V roce 1986 získali podporu předních výrobců počítačů (verze X10R4) a v roce 1988 vzniklo MIT X Consorcium (verze X11R1), které má za úkol navrhovat a udržovat standardy pro X Window System. Ten se stal neformálním standardem pro počítače s OS Unix i jiných unixových systémů a OS/2. Výsledky této činnosti byly poskytovány zdarma včetně zdrojových kódů jako tzv. SI (Sample Implementation) a na jejich vývoji spolupracovali i dobrovolní programátoři z celého světa.

Architektura systému X Window je založena na modulárním modelu klient-server. Klientem se rozumí aplikační program (tzv. X aplikace), který vysílá požadavky na otevírání a manipulaci s okny a na vykreslování textu i grafiky. Požadavky klienta přijímá server (tzv. X server), který je samostatný a obsluhuje výstupní (obrazovka) i vstupní (klávesnice, myš) zařízení (obrazovka, klávesnice, myš) a předává aplikaci zprávy o akcích uživatele. Pro vzájemnou komunikaci mezi klientem a serverem je k dispozici tzv. X protokol, který je možno přenášet i pomocí sítě, takže aplikace mohou být spuštěny na jiném počítači než na kterém jsou zobrazovány. Každý server může obsluhovat několik klientů (aplikací) a zároveň každý klient může využívat služeb více serverů. Díky této filozofii a modularitě implementace jsou X aplikace snadno přenositelné a vývoj serverů i aplikací je relativně snadný stejně jako jejich převod na různé platformy.

Správa oken zobrazovaných na X serveru je svěřena zvláštní aplikaci, kterou nazýváme správce oken (Window Manager) a který je obvykle automaticky spouštěn při startu X serveru. Součástí standardní distribuce systému X Window je Tab Window Manager (twm), který je obvykle nahrazen jiným dle výběru uživatele. Spolu s výměnou správce oken se snadno mění vzhled a způsob ovládání prostředí.

Vzhled prostředí lze měnit i výměnou tzv. témat (themes). Pomocí témat je umožněno měnit vzhled, barvu a provedení tlačítek, lišt a podobně. Ne všichni správci oken změnu témat podporují, avšak někteří mohou témata sdílet se svými blízkými "příbuznými".

XFree86

XFree86 je produktem nevýdělečné organizace The Xfree86 Project, Inc. (http://www.xfree86.org). Je to volně šiřitelná implementace X Window System. V roce 1998 došlo ke změně licence pro X Window System z typu BSD na licenci, která požadovala platby za redistribuci kódu organizaci The Open Group (TOG, http://www.opengroup.org, která zastřešuje mimo jiné i X Window Consorcium. Po půl roce, kdy bylo XFree86 odhodláno pokračovat ve vývoji v té chvíli aktuální a ještě volné verze X11R6.3 bez ohledu na budoucí licencovanou verzi X11R6.4 a hrozilo opětovné rozštěpení jednotného prostředí, byla licence na nátlak firem i veřejnosti podporující volně šiřitelné projekty změněna zpět na BSD typ.

Projekt XFree86 byl vždy zaměřen zejména na platformu Intel x86 (odkud také pochází číslo v názvu projektu), ale dnes je dostupný i pro jiné platformy (dokonce pro více než poskytuje TOG - 8 versus 2). Pro Linux je nejdůležitější, že může nadále využívat XFree86 jako základ pro své grafické prostředí a zároveň si zachovat kompatibilitu s ostatními implementacemi systému X Window.

KDE

KDE (The K Desktop Environment, http://www.kde.org), je komplexní grafické prostředí (vzniklo roku 1996), které je založeno na Qt knihovnách norské firmy Troll Tech. Původní licence na knihovny nebyla volná, ale po úspěchu KDE a jeho následného odmítnutí firmou Red Hat a dalšími, kteří podporují volně šiřitelné programy, byla licence uvolněna (knihovny verze 2.0 jsou již pod LGPL). KDE si klade za cíl poskytnout jednotný vzhled a ovládání aplikacím, a tak vytvořit pro uživatele velmi příjemné a snadno ovladatelné prostředí. To je sice poněkud v rozporu s filozofií idividualisticky zaměřeného Unixu, ale ve výsledku je to pro uživatele velmi přitažlivé, o čemž svědčí jeho úspěch. KDE je poněkud náročnější na vybavení počítače než např. správce oken IceWM nebo FVWM2. Správce oken se zde jmenuje KWM (KDE Window manager).

Gnome

V době, kdy byla z důvodu nevhodné licence na Qt knihovny ohrožena budoucnost prostředí KDE, vznikl GNU projekt Gnome (GNU Network Object Model Environment, \textit{http://www.gnome.org}). \index{http://www.gnome.org} Na rozdíl od KDE se nesnaží integrovat a zastřešit co nejširší rodinu aplikací, ale spíše vytvořit solidní platformu pro vývoj dalších programů včetně knihoven Gtk, na kterých je založen. To jistým způsobem omezuje jeho atraktivitu pro uživatele a způsobuje roztříštěnost vývoje. Na druhou stranu vede k zdravému soupeření s KDE, což má za následek rychlý vývoj směrem k rozumné použitelnosti obou systémů. Správce oken se jmenuje Enlightenment.

Ostatní správci oken

S nástupem prostředí KDE a Gnome ustupují klasičtí správci oken do pozadí. Ze starších či klasických lze jmenovat Tab Window Manager (twm, dodáván jako součást XFree86, velmi jednoduchý, slouží pro případ problémů či absence jiného správce oken), Open Look Window Manager (olwm, součást Open Look GUI), Fvwm, Fvwm2, Fvwm95 (podoba u posledního s MS Windows je záměrná, Fvwm2 se dále vyvíjí a má velmi zajímavé konfigurační možnosti), Lesstiff WM, AfterStep a WindowMaker (oba napodobují NextStep, mají velmi zajímavé a druhý i propracované a příjemné rozhraní, viz. \textit{http://www.windowmaker.org}, \textit{http://www.afterstep.org}). \index{http://www.windowmaker.org} \index{http://www.afterstep.org} Z novějších jmenujme příklady zástupců, kteří jsou určeni pro prostředí nenáročná na vybavení počítače: IceWM (velmi zdařilý, napodobuje KDE), AmiWM (emuluje grafické prostředí Amigy) a WM2 (velmi jednoduchý, má prakticky nejmenší nároky na spotřebu paměti). Existují i komerční projekty, např. Motif Window Manager (mwm, je podobný MS Windows) nebo CDE (Common Desktop Environment).

Kancelářské nástroje

Kancelářské nástroje tvoří hlavní náplň používání počítače běžným uživatelem. K dispozici jsou kromě komerčních i volně šiřitelné programy. Jejich nejobvyklejším problémem je lokalizace a omezené možnosti spolupráce s u nás nejvíce rozšířeným kancelářkým balíkem MS Office od firmy Microsoft. Tyto potíže jsou způsobeny uzavřeným nedokumentovaným binárním formátem použitým pro ukládání dokumentů (tzv. formát DOC). Přes to je náhrada MS Office možná, jak si autor DP mohl sám ověřit.

Asi nejpopulárnějším produktem je StarOffice německé společnosti StarDivision (http://www.stardivision.com). Tento kancelářský balík byl primárně vytvořen pro platformu MS Windows, ale existují jeho verze (porty) i pro Solaris, OS/2 a Linux. Tuto společnost odkoupila v roce 1999 firma Sun (kvůli pokročilému portu systému do jazyku Java), která pak dovolila použití tohoto systému zcela zdarma (původně bylo možné jen pro osobní využívání). Jeho nejsilnější stránkou je poměrně dobrá spolupráce s dokumenty ve formátu MS Office a prakticky shodné ovládání. Proti hovoří snad jen vysoké nároky na výkon a velikost paměti počítače. Skládá se z několika programů (Writer, Calc, Impress, Draw, Schedule, Mail, Discussion, Base, Math, Chart a Image), které spolu mohou spolupracovat při vytváření nejrůznějších dokumentů, matematických vzorců, prezentací, grafů atd. Lokalizace je na minimální úrovni (prý se připravuje), pro správný chod češtiny je potřeba používat upravenou knihovnu (viz. výše). Neobsahuje český slovník pro kontrolu pravopisu, ovšem za cenu mírného nepohodlí se dá nahradit programem ispell.

Dalším vhodným produktem je komerční balík ApplixWare (http://www.applix.com/applixware/, cena pod 3000,- Kč), který má poměrně silné možnosti pro programování a celkově působí velmi propracovaným dojmem. Na rozdíl od předchozího produktu má Applix trochu neobvyklé ovládání.

Ve stádiu zrodu se nachází kancelářský balík KOffice (http://koffice.kde.org), který by mohl v budoucnu být velmi silným konkurentem s ohledem na úspěch mateřského projektu KDE a fakt, že bude jeho standardní součástí v nově připravované verzi KDE 2.0, která by měla být uvolněna na jaře roku 2000.

Některé pamětníky jistě potěší, že je k dispozici i Linuxová verze textového editoru WordPerfect (dnes majetek firmy Corel). Jeho největším nedostatkem je absence českého slovníku pro kontrolu pravopisu a problémy při používání češtiny. Pro osobní použití je zdarma.

Asi nejzajímavějším editorem je Ted (viz: http://www.nllgg.nl/Ted/). Umí používat slovník z ispellu pro kontrolu pravopisu, pracuje s formátem RTF, takže by neměl být problém u přenosu klasických dokumentů, nemá žádné problémy s češtinou ani při vstupu, ani při tisku. Proti hovoří jen jeho jednoduchost. Zvládá různé typy písem, formátování odstavců, vkládání obrázků a další základní funkce.

Multimédia, grafika

Tato relativně mladá oblast způsobuje Linuxu nemalé problémy. Největší vycházejí z uzavřenosti různých formátů pro ukládání zvuku, obrazu a videa, které jsou navíc obvykle chráněny patenty. Na druhou stranu je potřeba říci, že i zde se situace zlepšuje, a to hlavně vstupem komerčních firem, které stejně jako v platformě MS Windows, poskytují některé verze svých programů zdarma.

Z videopřehrávačů jsou to například: RealPlayer, xanim, MpegTV, smpeg. Všechny zmíněné jsou k dispozici zdarma. Další oblastí je zvuk. Pro přehrávání nejrůznějších formátů existuje mnoho programů: Xmms (dříve X11amp), mpeg123, FreeAmp a další. Pro manipulaci se zvukem zmíním Gmurf, GtkMod, MikMod, SoundTracker, Maube a VoodooTracker. Všechny jsou k dispozici zdarma. Zajímavý je i volně šiřitelný kodér do formátu MP3, který se jmenuje BladeEnc.

Z grafických programů je asi nejzajímavějším bitmapový editor obrázků Gimp, který se snadno vyrovná svým komerčním kolegům, jako je Adobe PhotoShop. Dále jmenujme např. CompuPic a XV, což jsou velmi pěkné nástroje na zobrazování obrázků, ovšem ani jeden není k dispozici úplně volně.

Vývojové a programátorské nástroje

V této oblasti panuje nejširší nabídka. V každé distribuci jsou k dispozici kompilátory a ladící nástroje pro základní paletu programovacích jazyků, např: C, C++, Perl, Python, Tcl/Tk a Assembler. Ostatní jsou k dispozici i mimo hlavní distribuce, např.: Ada, APL, Basic, Dylan, Eiffel, Euler, Forth, Fortran, GOMscript, Intercal, Lisp, Logo, Mercury, Modula, Oberon, Objective C, Pascal, Prolog, Rexx, Sather, Simula a další. V současné době existují i velmi dobré grafické nadstavby pro řádkové ladící programy (Xwpe, DDD apod.) i kompletní vývojová prostředí (Emacs, KDevelop).

Šifrování a ochrana dat

V této oblasti je zejména v poslední době velmi dobrá situace. Protože v USA stále existují zákony bránící vývozu těchto technologií, vznikly mimo jejich území volně šiřitelné projekty, které je zpřístupňují ostatnímu světu. Asi nejznámějším brzy bude program GPG (http://www.gnupg.org), což je GNU náhrada za známé PGP (šifrování a podepisování dokumentů a souborů). Dalším podobným projektem je OpenSSL http://www.openssl.org), což je volně šiřitelná implementace SSL (Secure Socket Layer), které se používá pro zabezpečený přenos dat pro WWW. Pro zabezpečenou komunikaci v síti nejen na úrovni terminálové emulace slouží OpenSSH http://www.openssh.com), opět volně šiřitelná náhrada za SSH (Secure Shell). Pomocí OpenSSH můžeme jednoduše šifrovat spojení např. X protokolu, PPP, POP, SMTP atp.

Další free projekty využívané v Linuxu

Komerční projekty