LINUX
Používáte operační systém DOS či Windows a nejste s ním spokojeni?
Pak je tento článek určen pro vás. Jste si vědomi toho, že kolem
počítačů se kdysi vznášel určitý duch novosti, experimentování a
objevování a nyní zmizel nahrazen komercí (a vy chcete přijít na to
kam zmizel)? Pak rovněž čtěte dál. Zajímáte se o systém Linux?
Pak vás už dál nebudu napínat.
Počítač - to není jenom PC s DOSem či Windows, jak jej vidí spousta
uživatelů. Další alternativou - používanou zejména v profesionální
praxi - jsou UNIX-ové
systémy, mezi něž patří i Linux.
Tyto systémy
se vyznačují mimo jiné tím, že umožňují svým uživatelům daleko větší
možnosti konfigurace a přizpůsobení systému, také se vyznačují stabilitou,
promyšlenou vnitřní strukturou a bohužel i určitými nároky na své
uživatele - vyžadují od nich celkem solidní znalosti z oblasti
"computer science", díky čemuž se méně hodí pro začátečníky, ale
tím více se hodí pro pokročilé uživatele, kterým DOS či Wokna
nedostačují.
Sám jsem ještě před rokem neměl o tomto systému (bohužel) ani
ponětí (věděl jsem jen, že je to operační systém, ale to bylo
všechno), ale díky tomu, že jsem se chystal studovat na
Fakultě informatiky Masarykovy
univerzity, kde se tento systém používá, jsem se začal o UNIXové
systémy zajímat, koupil jsem si knížku Jemný úvod do systému Unix
a rysy systému v ní nastíněné se mi tak líbily, že jsem si koupil
další knížky k tomuto tématu, nainstaloval si Linux a
nakonec jsem skončil jako zatvrzelý "unixák", pohrdající Wokny a podobnými
systémy. (tuto knížku doporučuji zájemcům jako úvod do Unixu, dále
doporučuji, konkrétně pro Linux, do začátku knížku
Používáme Linux)
Trocha historie nikoho nezabije :
první systém UNIX vznikl v roce 1969, vytvořili ho ve svém volném
čase programátoři Ken Thompson, Dennis Ritchie a Brian Kernighan
(jak později v tomto článku uvidíte, spousta kvalitního softwaru
vznikla ve volném čase svých tvůrců jako naprosto dobrovolný projekt, vlastně
často jen tak ze zábavy ....), protože nebyli spokojení se systémem
Multics, který vyvíjeli v zaměstnání (v Bell Laboratories).
Kvůli UNIXu vznikl jazyk C, který byl původně vytvořen kvůli
přenosu UNIXu na jiné počítače. (Díky tomu dnes UNIXy běží
na ohromném množství nejrůznějšího hardwaru, od superpočítačů
přes velké servery po osobní počítače
(dokonce prý existuje UNIXový systém běžící na kapesním
"handheld PC") ). Protože byl jazyk C původně vyvinut pro tvorbu operačních
systémů, je to jazyk, který je určen na tvorbu rychlých, efektivních a
optimalizovaných programů. Od té doby vzniklo velké množství UNIXových
systémů od různých firem (jakoby se ve velkých firmách hrála hra "každá
firma svůj UNIX"). Například existuje AIX od IBM, Irix od Silicon Graphics,
Solaris od Sunu atd.
Tyto komerční UNIXy však bývají drahé. (jsou to kvalitní systémy, takže
vlastně není ani divu). S touto nevýhodou se vypořádal v roce 1991 tehdejší
student na univerzitě v Helsinkách Linus Torvalds a začal vyvíjet svoje
vlastní jádro systému založené na UNIXových principech, které pojmenoval
Linux. Systém zpočátku vyvíjel na PCčku,
proto je dnes Linux nejrozšířenější právě na těchto strojích.
Linux byl vytvořen jako volně šiřitelný systém, šíří se i se svými
zdrojovými kódy což umožňuje každému systém modifikovat pro svoje
potřeby. Pokud programátor pošle svoje modifikace Linusovi, je šance, že
budou přidány do Linuxu - tímto způsobem se Linux stále mění a zlepšuje!
Systém však není jenom jádro.
Volně šiřitelné progamy a utility vznikaly již dříve v rámci projektu
GNU (což znamená "GNU's Not Unix" -přičemž
toto druhé GNU znamená totéž co to první, takže tímto způsobem je
možné zkratku rozebírat donekonečna a zacyklit se na nekonečné rekurzi :-) )
Linux není UNIXem v podstatě pouze kvůli ochranné známce, která musí
být operačnímu systému udělena, aby se mohl nazývat UNIX. Mimo tohoto
jména je to však "plnokrevný" UNIXový systém.
Tento text píšu samozřejmě na Linuxu a v současné době se
během jeho psaní se v pozadí natahuje Netscape, což mě vůbec nezpomaluje
- takto má vypadat multitasking! Také pokud něco na pozadí kopíruji z diskety,
mimo toho cvakání bych z rychlosti systému vůbec nepoznal - narozdíl od
Woken - že se z diskety kopíruje ! A pokud chci dělat několik věcí
zaráz, nepotřebuju k tomu žádné grafické rozhraní typu "wokna" .....
V následujících odstavcích vám přiblížím práci se systémem na uživatelské úrovni:
Pokud zapnete počítač s Linuxem, tak uvidíte v první řadě hlášení o
bootování a inicializaci hardwarových zařízení od jádra systému. Pak
se spustí nějaké obslužné programy (tzv. démoni) a objeví se zpráva,
končící na login: . Pokud u tohoto stroje nemáte co pohledávat,
tak se k systému nemáte šanci dostat, protože vám nikdo nepřidělil
uživatelské jméno ani heslo. Pokud je to váš linux, či někoho, kdo vám
na tom stroji tzv. uživatelský účet zařídil, pak se
pomocí tohoto jména a hesla přihlásíte. Pokud se spletete, po pauze
(která je tu schválně kvůli tomu, aby někdo nemohl pomocí jiného počítače
"sypat" do systému spousty jmen a hesel za sebou - vidíte, jak je
to všechno propracované :-) ) budete mít možnost se přihlásit znova.
Místo zadání jména a hesla můžete stisknout pouze ENTER - tímto
zjišťujete, zda systém "žije" - pokud funguje, měl by znovu vypsat
úvodní zprávu končící na login:, dál vás to po pouhém
ENTERu samozřejmě nepustí. Toto chování počítače -tj.
objevení se výzvy k přihlášení - není ve skutečnosti
nijak napevno "zadrátováno" do systému. Pokud máte Linux
sami doma a víte, že vám tam nikdo nevleze, můžete toto
klidně přenastavit jak je vám libo. Pokud jste však paranoidní
jako já, pak se můžete jménem a heslem přihlašovat i
doma na svůj počítač.
Předpokládejme nyní, že jste se úspěšně přihlásili. Vzápětí by se měl
spustit váš osobní inicializační skript ( v něm se specifikuje, co
za příkazy se mají provést po vašem přihlášení). Nyní byste se měli
nacházet ve svém domovském adresáři. Aha - zapomněl jsem se zmínit, že
UNIXové systémy používají podobné paradigma pro ukládání dat na discích
jak DOS či Wokna : systém souborů a adresářů . Záměrně píšu podobné a
ne stejné, protože jsou tu odlišnosti a vylepšení:
Nejpovrchnější -a nejvíc na první pohled patrnou - odlišností je používání
normálních lomítek místo zpětných v určení cesty : například soubor "linux.html"
v adresáři "danny" , což je podadresář
adresáře "home", který je podadresářem kořenového adresáře se zapíše
plnou cestou jako /home/danny/linux.html . "A na kterém disku?"
mohl by se zeptat čtenář zvyklý na DOS. Ha - toto je další odlišnost
linuxového pojetí adresářového stromu: všechno je v jednom stromě,
který začíná na kořenovém disku a další disky se "montují" na místo
podadresáře v tomto stromě. Například na adresáři /home
může být namontován disk obsahující domovské adresáře uživatelů,
na adresáři /dos/c DOSový disk C (Linux umožňuje i přístup
k DOSovým diskům včetně dlouhých jmen W95 - čili například
adresář v DOSu známý jako C:\WINDOWS\SYSTEM zde bude
odkazován jako /dos/c/windows/system. Například adresářem
/cdrom se bude přistupovat k datům na CD atd. Jména těchto
adresářů nejsou nijak pevně určená, jsou taková, jaká si je
nastavíte (klidně můžete např. na adresář /cdrom namontovat
disketu, systému je to jedno, ale budete v tom pak mít chaos)
Linux mimo DOSových disků a disket
umožňuje přistupovat k diskům systému OS/2, k diskům Amigy, a k
mnohým dalším. Pokud jde o vyměnitelné médium (disketa, ZIP, CDčko ), je
nutno před vyjmutím disk "odmontovat" a po vložení zase "namontovat", což
jde naštěstí zajistit jednoduchým příkazem , např. mount /cdrom
-pokud máte disky spávně nastaveny v souboru /etc/fstab.
Při práci s disketami by montování a odmontování
zdržovalo, proto byly vyvinuty prográmky zvané "mtools" pro práci s disketami.
mdir a: potom funguje jako
DOSové dir a:, podobně mcopy a:*.zip bude fungovat tak, jak
očekáváte. (Hmmm... pokud vezmeme v úvahu DOSový příkaz pro odstranění
adresáře, dojdeme k závěru,
že se na vývoji této utilitky asi nepodíleli žádní Češi ..... :-).
Další odlišností souborového systému od DOSu je to, že soubory na
nativních unixových systémech mají u sebe řadu atributů, kterým
je zajištěna bezpečnost systému a podobné věci - každý soubor
"má u sebe napsáno" mimo jiné:
- uživatelské ID vlastníka souboru
- ID skupiny uživatelů, do které soubor patří
- přístupová práva - povolení/zakázání čtení/zápisu/spuštění
a to zvlášť pro vlastníka, skupinu a ostatní
- datum a čas poslední modifikace a posledního přístupu
Funguje to takto: pokud mám soubor
linux.html s právy rw- r-- --- (v pořadí uživatel, skupina a ostatní ),
s vlastníkem "danny" a skupinou "hackers", potom:
- uživatel danny může soubor číst a modifikovat
- členové skupiny "hackers" můžou soubor číst
(každý uživatel může být členem jedné nebo více skupin )
- ostatní nemůžou se souborem dělat nic!
- všimněte si, že nikdo nemůže soubor spouštět - to proto, že to
není spustitelný soubor.
I adresáře mají svá přístupová práva - čtení zde znamená výpis adresáře,
zápis tvorbu a rušení souborů v adresáři a spuštění možnost
zpřístupnit soubory v adresáři a "prolézt" jím do podadresářů.
Spustitelné soubory jako takové se liší od ostatních souborů právě
nastavením práva spustitelnosti, žádné povinné přípony jako .EXE se
neberou v úvahu. Půvab tohoto řešení je mimo jiné v tom, že takový
spustitelný soubor nemusí být jenom "binárka" (což v linuxácké hantýrce
značí spustitelný program ve strojovém kódu), ale také tzv. skript,
čili textový soubor obsahující příkazy v nějakém interpretovaném
programovacím jazyce. Ve kterém jazyce, to určuje první
řádek skriptu notací "#!" - například takto:
#!/usr/bin/perl
print "Hello, Unix world! \n";
Toto je kompletní skript v jazyce Perl - tj. tento text bude interpretován
programem /usr/bin/perl. Samozřejmě dokonce můžeme jít i tak daleko,
že necháme HTML soubor interpretovat např. HTML prohlížečem Lynx -
stačí, když přidáme na začátek souboru řádek #!/usr/bin/lynx,
změníme jeho práva například příkazem chmod a+x linux.html a
je to (práva souboru potom budou rwx r-x --x ). K tomu je samozřejmě
potřeba znát příkaz chmod a umět ho používat - proto pro začátečníky,
pouze klikající ve Windowsech může být učení se příkazům zpočátku
nepříjemné, ale odměnou za to jim je kompletní kontrola nad systémem -
tyto příkazy nejsou nic než text a proto se může jejich použití
automatizovat a programovat zapsáním do
textového souboru a nastavením spustitelnosti tohoto souboru.
To je ohromná výhoda pro programátora, protože všechny vlastnosti
systému, které může uživatel ovládat z příkazového řádku, může
ovládat úplně stejně i on ve svém skriptu - jak se
takovému souboru s příkazy často říká.
Jako řádek na začátku souboru potom bude uvedeno #!/bin/sh
což je jméno programu, který se používá jako tzv. shell, tj. základní
komunikační prostředek uživatele se systémem.
Je sice hezké, že normální uživatel nemůže např. zapisovat do systémových
souborů a něco tak skazit, ale někdo musí mít právo do nich zapisovat -
správce systému, který chce tyto soubory třeba upgradovat.
Také tu musí být někdo, kdo přidává / odstraňuje uživatelské
účty ze systému, instaluje nový software atd. Z toho vyplývá nutnost
existence člověka (příp. více lidí) ve funkci správce systému.
Technicky řečeno je správcem systému ten, kdo zná heslo uživatele
se jménem root. Dokonce ani toto jméno není do unixových
systémů napevno zabudováno, ale dodržuje se ve všech systémech.
Podstatná hodnota je uživatelské ID tohoto uživatele, které má
hodnotu nula (systém sám se zajímá pouze o uživatelská ID, jméno
je pouze kus textu k ID připsaný, aby se v tom orientovali lidé).
Na uživatele s UID nula se nevztahují žádná omezení v podobě
přístupových práv a podobně. Je neomezeným vládcem nad systémem
a označuje se také jako "superuživatel" či "privilegovaný uživatel".
Pokud je člověk na svém domácím Linuxu, pak samozřejmě toto heslo
zná (zadává se zpravidla při instalaci systému). Nedoporučuje se
však, aby člověk pracoval jako "root" i při běžné práci (či hraní
si :) se systémem. "Obyčejného maníka" totiž systém hlídá, aby
např. nechtěně nesmazal důležité systémové soubory, nepřeformátoval
nějaký disk atd. Nezapomeňte, že starý UNIXový aforismus říká, že
víc systémů, než zničili hackeři, zničili nedopatřením
právě systémoví administrátoři...
Po přihlášení do systému se vám
spustí shell (pokud se nepřihlašujete přímo do okenního prostředí
XWindows, o kterém jsem ještě nemluvil), ve skutečnosti se může
spustit libovolný program, podle toho, co vám root nastaví. Ukončením
tohoto programu (tedy většinou shellu) se odhlásíte od systému.
Shell je program, který interpretuje příkazy od uživatele nebo
ze skriptového souboru a provádí je. Některé příkazy jsou zabudovány
v shellu, jiné jsou vlastně programy na disku.
Základní příkazy jsou:
- cd
- změna adresáře (DOS se po UNIXu v tomto opičí)
- cp
- kopírování souboru - jako dosové "copy"
- mv
- přesouvání souboru
- rm
- mazání souboru
- ls
- výpis souborů v adresáři (i s barevným odlišení souborů/adresářů/spustitelných
souborů)
Shell také podporuje podobně
jako DOSový command.com - což je jeho obdoba - "hvězdičkovou
konvenci" pro manipulaci s více soubory, ale má ji udělanou mnohem
lépe než DOS. Hvězdička se může použít kdekoli a libovolněkrát a tečka
je normální znak, takže
ls *blaf* vypíše všechny soubory obsahující v názvu slovo "blaf",
dále je tu možnost do hranatých závorek vypsat možná písmena, takže
rm pi[vtl]o smaže soubory "pivo", "pito" a "pilo".
V Linuxu máte i ohledně shellu
možnost volby - mě se nejvíce osvědčil shell jménem bash, který podporuje
mimo jiné i historii příkazového řádku, editaci příkazového řádku
(šipkama, home , end atd. ), dále automatické doplňování jména souboru -
napíšete například ("joe" je textový editor)
joe li
a stisknete klávesu TAB. Pokud není v aktuálním adresáři jiný soubor
začínající na "li" než náš linux.html , doplní to shell na
joe linux.html
což odešleme pomocí enteru a můžeme editovat - no není to krásně pohodlné?
Jednou mě takto Linux krásně potěšil, když jsem chtěl do d:\Program files
a zadal jsem
cd /dos/d/Progr
a TAB. Název adresáře obsahuje mezeru (což je Windowsácká debilita nemající
obdoby - v civilizovaných systémech se používá podtržítko, aby bylo
vidět, že je to jeden název). Po stisknutí TABu to inteligentní shell doplnil
na
cd "/dos/d/Program files"
Uvozovky jsou nutné, protože mezera odděluje parametry příkazu a
cd /dos/d/Program files
by znamenalo přepnutí do adresáře /dos/d/Program -který pravděpodobně
neexistuje- a navíc tu visí druhý parametr "files".
Ještě jsem se nezmínil o speciálních souborech, což rychle napravím:
Speciální soubory zastupují různá zařízení a bývají většinou
v adresáři /dev. Například /dev/mouse je myš,
/dev/fd0 disketa (takto je možno -pokud k tomu máte přístupová
práva - posílat nějaká data rovnou na disketu bez filesystemu - sektor
po sektoru. ) Posláním zvukového samplu do /dev/dsp jej přehrajete,
čtením z tohoto speciálního souboru nahráváte z mikrofonu atd.
Užitečné zařízení je /dev/null, "odpadkový koš na bity",
data do něj poslaná mizí v nenávratnu. Posílá se sem třeba nepotřebný
výstup programů, který by rušil a otravoval. (odtud rčení "jdi s tím
do /dev/null" ).
Hmm - taky jsem se nezměnil o možnosti, že jeden soubor může
být také pouze ukazatelem na soubor jiný, tomu se říká tzv. link
- tímto způsobem je možné mít jeden soubor s několika jmény a
dá se to použít k mnoha dalším věcem. Tato vlastnost mi
často v DOSu či Woknech chybí - mám teď totiž disk C hodně
plný Windowsů, kdyby existovala možnost symbolických linků, mohl
by adresář C:\WINDOWS\SYSTEM být linkem na můj další disk, kde
je místa dost a tam by teprv byly všechny ty debilní DLL knihovny...
Dá se to použít také k tomu, že je možné jeden a tentýž program
spouštět dvěma příkazy ( protože jsou oba linky na stejný program)
a program pozná jak byl spuštěn a podle toho zareaguje. Když se
například textový editor "vi" pustí jako "view", umožňuje
pouze prohlížení textu bez editace.
Začal jsem zmínkou o domovském adresáři a přitom jsem se rozmáchle
rozepsal o celém souborovém systému, takže jsem se vůbec nezmínil
o funkci domovského adresáře. To je adresář, který je vlastněn
svým uživatelem a v němž tento tedy může vytvářet soubory a
další adresáře. K jiným místům v adresářové hierarchii může
obyčejný uživatel většinou přistupovat pouze pro čtení - a
někdy ani to ne, pokud se jedná například o domovský adresář
jiného uživatele, který čtení zakázal...
Uživatel však nemůže svými daty zaplácat celý disk, je hlídán
tzv. quotou, která určuje, kolik diskového prostoru smí
maximálně zabrat. Samozřejmě že u sebe doma mám toto vypnuté,
ale pokud systém využívá více lidí, bývá taková ochrana proti
zaplnění disku jedním nenechavým uživatelem vhod.
Všechna nastavení v různých programech (např. bookmarky v Netscapu,
poslední otevřené soubory, různé volby atd. ) v programech
bývají ukládány pro každého uživatele zvlášť jako tzv.
"tečkové soubory" právě do domovského adresáře. Pokud jméno
souboru začíná tečkou, příkazy typu "ls" (což je obdoba dosovského
"dir" ) jej bez explicitní specifikace nezobrazují. Takže pokud
si jeden uživatel někde něco nastaví, nezmění
to uživatelům ostatním a tím, že je to u něj v domovském
adresáři, má to k dispozici na všech strojích kde má
tento adresář nastavený jako domovský, což má například tu
skvělou výhodu, že ať už na fakultě sednu ke kterémukoliv
unixovému stroji, vždy mám stejné bookmarky v Netscapu
(a i jiná nastavení, samozřejmě).
Nápověda ke programům existujícím v systému je řešena tzv. manuálovými
stránkami. V podstatě to pro uživatele znamená, že stačí zadat
man jméno_programu a dozví se o programu potřebné
informace. Rozsáhlejší informace jsou někdy k dispozici po zadání
info jméno_programu , tyto tzv. info stránky umožňují
hypertextové "browsování" s odkazy podobně jako HTML. Také často
mívá program svůj podadresář v adresáři /usr/doc.
Teď si uvědomuju, že jsem se nezmínil o tom, jak se programy
v hierarchické adresářové struktuře umisťují. V DOSu je zvykem,
že je program ve "svém" adresáři a tam má spustitelný soubor,
dokumentaci i datové soubory. V UNIXech toto z několika důvodů
neplatí, což se některým lidem zvyklým na DOS včetně mě zpočátku
nelíbilo, ale má to své výhody, zvláště při sdílení některých dat
po síti. Ale rozložení je dokumentované
a ne jako u Woken, kde si program přemazává co chce a
nekontrolovaně se rozlézá po systému (například Internet Explorer,
který se tam zažere tak, že se ho už nezbavíte).
Většina programů je v systému "rozložena" takto:
- v adresáři /usr/bin má svůj spustitelný soubor
- v adresáři /usr/doc má svůj podadresář s dokumentací
- v /usr/lib (někdy /usr/share) má
své daťáky (samozřejmě ve svém podadresáři)
- v /usr/man/man1 má svou manuálovou stránku
O jménech a významu adresářů bezprostředně pod kořenovým - a
vlastně o celé adresářové hierarchii - se dozvíte bližší informace
zadáním příkazu man 7 hier. Manuálové stránky v sobě totiž obsahují
informace nejen o aplikacích, ale i o dalších stěžejních entitách
v systému, jako jsou např. knihovní funkce jednotlivých programovacích
jazyků, formáty souborů, adresářová hierarchie atd.
Proti tomu, aby programy nekontrolovaně při instalaci nerozhazovaly
data po systému existuje několik řešení. Jedním z nich je tzv.
Red Hat Package Manager, zkráceně RPM, který bývá předinstalován
v distribuci Linuxu Red Hat ,
kterou používám. Programy, které seženu ve formát RPM (jistě
byste lehce uhodli, že mívají příponu .rpm ), pak nainstaluju
rpm -i jméno_souboru.
Potom rpm -qi jméno_programu
zobrazí informace o programu (jméno, stručný popis, kolik to
žere na disku v bajtech, kdo to vytvořil, číslo verze... ),
rpm -ql jméno_programu vypíše všechny soubory, které programu
patří, naopak rpm -qif jméno_souboru vypíše informace
o programu, kterému patří daný soubor (typická otázka "Hmmm... tento
soubor je dost velkej a nevím na co tu je.
Kerej program ho potřebuje a proč?" ). RPM systém si zaznamenává
i kontrolní součty nainstalovaných programů, takže pokud vám bude
připadat, že se program chová divně, zadejte rpm -V jméno_programu
a pokud budou nějaké soubory od instalace změněny (tj. pravděpodobně
poškozeny), oznámí vám to, které to jsou.
Konečně nepotřebného programu se zbavíte příkazem
rpm -e jméno_programu. Při instalaci/odinstalaci
se kromě prosté kopie resp. mazání souborů mohou provádět
i další, pro daný program specifické, úkony.
Samozřejmě RPM není jediný systém
tohoto typu, jako ve všem máte v Linuxu svobodu volby. Například
distribuce Linuxu Debian používá
podobný systém dpkg.
Hmmm... už několikrát jsem se tu zmínil o tzv. distribucích
Linuxu, aniž bych vysvětlil, co to je. To se musí napravit.
Linux sám o sobě je pouze jádro systému.
Pak jsou tu základní obslužné
programy, ale to není vše:
Jak se vlastní systém chová, je možno velice flexibilně
nakonfigurovat a přidat aplikace, které také mohou změnit tvář celého
systému.
Právě přidáním uživatelských programů a konfigurací vzniká
distribuce Linuxu. Jelikož každá firma - nebo i skupinka nadšenců -
může prodávat - nebo nabízet na Webu zdarma - svoji distribuci ( za podmínek,
že nebudou nějakou licencí omezovat volné šíření a modifikovatelnost
systému ), je takovýchto distribucí hned několik. Tedy jako ve všem
v Linuxu máme i ve volbě distribuce širokou svobodu volby.
Jmenuji například
Calderu, Debian, Red Hat, Slackware a SuSe (v abecedním pořadí !!!).
Na jejich domovské stránky a popis jsou odkazy na
http://www.linux.org , takže vás
odkážu na tento zdroj informací. To "v abecedním pořadí" jsem uvedl
záměrně, protože jsem už v diskusních skupinách o Linuxu viděl,
jak nevinná otázečka "která distribuce Linuxu je lepší?" rozpoutala
dlouhotrvající bouřlivou diskusi - hlavně šlo o spor mezi příznivci
Slackwaru a příznivci Red Hatu. Naštěstí se dnes již linuxáci umoudřili
a jsou vzájemně tolerantní (vždyť mají společného nepřítele - Wokna ).
Pokud si koupíte Wokna, dostanete s nimi jako "příslušenství" pár
prográmků jen tak aby se neřeklo: Malování, texový edtiůrek Notepad,
kalkulačku, miny ... Nic moc.
Pokud si pořídíte Linux, dostanete k němu (teď mluvím konkrétně
o Red Hatu 5.1, který v současné době používám):
- optimalizující překladač céčka, C++ a Objective C , k tomu
debugger a profiler
- kompilátory/interpretery
dalších programovacích jazyků : assembler, awk ,Basic, Fortran,
Lisp, Perl, Python a Tcl/Tk (znovu jsem to seřadil podle abecedy...)
- Midnight Commander (obdoba Nortona)
- grafické rozhraní XWindows (pokud vám klikání myši vyhovuje více
než příkazová řádka, kterou ale využijete i v XWoknech)
Pod nimi běží většina programů s grafickým výstupem
(jako hry, malovací programy, internet browsery....)
- GIMP - malovací program na úrovni Photoshopu či PhotoPaintu
- typografický systém TeX (na vstupu bere text svého interního
programovacího jazyka, produkuje výstup, který jde prohlédnout/
vytisknout na tiskárně. S jeho pomocí byla napsána např. kniha
Jemný úvod do systému Unix, většina skript u nás na fakultě a další knihy)
- Emacs - původně to byl "pouze" silně konfigurovatelný textový editor,
nyní je do něj nacpáno tolik rozšíření, že je to v podstatě svět sám
pro sebe. Je v něm dokonce integrován uměle - inteligentní psychoterapeut.
(tohle fakt není vtip! Spusťe Emacs, napište <ALT-X>doctor<ENTER>
a uvidíte!)
- Netscape (nemusím představovat - všichni znáte)
- HTTP server Apache - abyste mohli mít vlastní internetový server.
Schválně se na Inetu podívejte kolik stránek má u sebe v rožku
napsáno Powered by Apache či Powered by Linux !
(samozřejmě Apache není jen pod Linux)
- nějaké základní gamesky jako Tetris, Mahjong, miny ...
také skvělá akční hříčka XBill, která se zabývá rozmačkáváním Billů
Gate$ů kurzorem myši
a to jsem si určitě nevzpomněl na všechno...
Opakuji, že
toto dostanete jen v základní distribuci na cédéčku SPOLU SE SYSTÉMEM,
na inetu je spousta dalšího softu, pro "pařany" bych upozornil
například na Linuxové verze Dooma
či Quaka, dále nadšence do hry Civilization bych rád informoval,
že existuje Linuxová volně šiřitelná verze Civky FreeCiv, která je
však primárně určená na hraní více hráčů po síti, ale jde hrát i proti
počítači, který disponuje dobrou umělou inteligencí.
Grafické uživatelské rozhraní pod Linux se nazývá XWindows, už
jsem se o něm trochu zmínil. Narozdíl od Windows (říká se, že Windows bez X
jsou jako sex bez partnerky...) , ve kterých je vše "napevno
zabudované" a nacpané do jednoho celku, skládají se "Xy" z několika
nezávislých částí:
- program, který komunikuje s grafickým hardwarem, zvaný X Server
Na výběr je jich několik, například volně šiřitelný XFree86 a
komerční MetroX.
Jeho výběr závisí na typu grafické karty.
Samozřejmě také komunikuje s aplikacemi využívajícími jeho služby
-Xovými programy. Je to uděláno tak, že můžu třeba na jednom
stroji v síti spustit program, který bude svá okýnka zobrazovat
někde jinde.
- tzv. Window manager . Ten má na starost zobrazování, přesouvání,
skrývání a jinou práci s okny. Může též nějak reagovat na stisk myši /
klávesnice například objevením nějaké obdoby "start menu".
Window managerů je strašně moc a navzájem se velmi liší. V podstatě on
rozhoduje, jak Xy jako celek navenek vypadají.
Jmenuji z nich například KDE,
GNOME ,
Window Maker a
fvwm. Na těch odkazech jsou i
screenshoty, takže můžete vidět jak to vypadá
- tzv. toolkit, což je věc, která vytváří tlačítka, posuvnítka,
dialogové boxy, imput boxy a podobné věci z kategorie "user interface"
čili "uživatelského mezixichtu". Toolkit vybírá programátor X-ových
programů podle svých schopností, preferencí a peněz. Některé
jsou zadarmo, některé pěkně drahé
- vlastní X-ové aplikace, které mohou být velmi malé, poněvadž
nemusí spoustu věcí programovat samy, ale stačí využívat služeb
XServeru a toolkitu. Bývá zvykem, aby jména těchto aplikací začínala
na x, např. xterm, xtetris, xedit, xdoom, x11amp (obdoba
populárního WinAmpu) ....
Narozdíl od striktního
rozdílu mezi aplikacemi pro dos versus aplikace pod MS Wokna je
Xová aplikace normální Linuxová aplikace, pouze navíc komunikující
s XServerem. Proto je možno např. udělat programy, které se
spustí v pouhém textovém režimu Linuxu i v XWoknech, přičemž
v XWoknech obohatí svou činnost navíc o grafický výstup.
Narozdíl od aplikací pod MS Windows, které využívají pouze
pravé a levé tlačítko myši, XWokenní aplikace často využívají
všechny tři, takže se vyplatí pro ně používat třítlačítkovou myš.
V případě potřeby lze prostřední tlačítko emulovat stiskem
pravého a levého zaráz, ale to mně osobně připadá velice nepohodlé.
Já se bez klikání obejdu, takže XWokna nepouštím pořád. I tak však
můžu mít několik interaktivních programů "rozpracovaných" naráz a
přepínat mezi nimi. Dělá se to pomocí mechanismu virtuálních
konzolí. Konzole v tomto kontextu znamená klávesnice + obrazovka
a funguje to například takto :
Spustí se Linux, napíšu jméno a heslo, napíšu "mcedit program.c"
(mcedit je interní editor Midnight Commandera, který často
používám při programování) a vesele programuju. Najednou si vzpomenu,
že neznám podrobnosti nějaké céčkové funkce , ale nemusím vůbec
vypínat editor: zmáčknu ALT-F2 a na obrazovce se objeví znovu
výzva k přihlášení do systému, protože na této konzoli se ještě nikdo
nepřihlásil. Přihlásím se tedy a napíšu "man 3 jméno_té_funkce"
(ve třetí sekci manuálu jsou totiž informace o Cčkových funkcích).
Nyní můžu plynule přepínat mezi těmito dvěma konzolemi pomocí ALT-F1
ALT-F2. ALT-F3 je třetí konzole atd ; jde to procházet
taky pomocí ALT-šipka tam a zpět.
Zpočátku bývá k dispozici šest textových konzolí, od
sedmé výš si je zabírají grafické programy jako XWindow system.
(dokonce jsem si zkusil pustit dvě různé instance XWindow systému
paralelně, každou s jiným window managerem a jinou barevnou
hloubkou na ALT-F7 a ALT-F8 ; protože MS Windows zajišťují multitasking,
který před jejich spuštění není
můžete je pustit naráz pouze jednou - ale i to je vlastně víckrát
než je potřeba :-) ).
Nemohu se nezmínit o obrovském významu textových souborů
pro svět UNIXu i Linuxu. Prakticky veškeré konfigurační soubory,
tj. soubory s uloženými nastaveními pro jednotlivé programy jsou
v textovém formátu, binární formát se používá pouze tam, kde je
to nezbytné (spustitelné soubory a knihovny, komprimované a
šifrované soubory, zvukové samply ...). Má to tu ohromnou
výhodu, že s tamovými soubory může pohodlně manipulovat i
člověk i počítač a nastavení systému jsou tak průhlednější a
uživatel nemá pocit, že se před ním něco skrývá v binárním tvaru,
ale naopak pocit, že všechno je mu k dispozici a může to v
klidu prohlížet či modifikovat.
K UNIXovým systémům bývá dodávána spousta velmi mocných
utilit na zpracování textu a tak je možno pružně konfigurovat
a kontrolovat systém.
Co bych řekl závěrem?
Zkuste si sami a uvidíte, jestli se vám Linux bude líbit nebo
ne - názor si nakonec budete muset udělat sami.
Ale pokud chcete jenom klikat a ne
systému porozumět, pak to raději ani nezkoušejte ... hmm, takoví
mezi vámi asi nejsou , protože "klikači" a "lůzři"
by tento článek asi nedočetli až do konce
(leda že jsou to lůzři, kteří nechtějí lůzry zůstat,
v tom případě ať vítají do světa Linuxu)
Danny