Web o všem

O Linuxu

03.05.2009 14:14

Většina lidí si pod pojmem operační systém představí Microsoft Windows (98,2000,XP, Vista...), případně DOS. Další mohou používat například Mac OS, ten má však na našem trhu zanedbatelný podíl, populárnější je např. v USA. Linux je další, v poslední době šířící se operační systém. Pokud mluvíme o Linuxu (respektive GNU/Linux), máme na mysli jen jádro systému (tzv. kernel) a sadu základních systémových utilit. Na tom jsou postaveny jednotlivé distribuce. Distribuce je nejen vlastní operační systém, ale zpravidla i velmi rozsáhlá sbírka programů nejrůznějšího zaměření, vyladěná tak, aby navzájem hladce spolupracovala. Mezi více či méně známé distribuce se řadí například Xandros, Linspire/Freespire, Danix; mezi ty známější pak PCLinuxOS, Fedora, různé klony Ubuntu nebo Mandriva Linux (kterou používám já), Slackware, Debian anebo openSUSE. Dnešní distribuce mívají dvě stránky - krásně klikací pracovní prostředí, obvykle s 3D akcelerací aplikací i desktopu. Pod tím vším je ukryt výkonný systém s vlastní filozofií prověřenou lety vývoje.

Pohled do historie

Unix byl vytvořen Kenem Thompsonem a Dennisem Ritchiem roku 1969 v Bell Laboratories, kde byl vyvíjen až do konce sedmdesátých let. Původně vycházel ze systému Multics, který však bych ve své době příliš komplikovaný a nedělal, co by dělat měl. Vývoj byl zrušen, ale Ken Thompson a Dennis Ritchie systém Multics zjednodušili, pojmenovali ho Unix a vytvořili programovací jazyk C. Unix si totiž vytvořili, aby mohli hrát svoji oblíbenou hru Space Travel...

Proč tu mluvíme o unixu? Nu proto, že unix byl vzorem pro vytvoření linuxu. Linux je vytvořen podle stejné filozofie, mnoho linuxových nástrojů má stejné názvy i parametry jako jejich linuxové protějšky.

V roce 1983 založil Richard Stallman projekt GNU (G NU's Not Unix), který nyní poskytuje základní část většiny linuxových systémů. Cílem projektu GNU je vyvinout kompletní unixový operační systém složený výhradně ze svobodného softwaru. Začátkem 90. let byly v rámci projektu GNU vytvořeny a shromážděny všechny potřebné součásti - knihovny (především glibc-vrstva nízkoúrovňových knihoven, které programátoři nemusejí vytvářet znovu), překladač (GCC), textový editor (Emacs), shell (bash) a další software, ale zatím ne samotné jádro systému, kernel.

V roce 1990 začal projekt GNU vyvíjet své vlastní jádro jménem GNU Hurd (po upuštění od předchozího pokusu jménem Trix). Podle Thomase Bushnella, původního architekta Hurdu, bylo původním plánem přepracovat jádro BSD 4.4-Lite. V ohlédnutí po letech řekl: „Dnes mi je jasné, jaký by toto jádro mohlo mít úspěch, a že by svět byl dnes jiný“. Přesto se Stallman, kvůli špatné spolupráci programátorů z Kalifornské univerzity v Berkeley, rozhodl použít mikrojádro Mach (takové jádro má siče řadu koncepčních výhod vyplývajícíh z jeho jednoduchosti, ale nevýhodou je jeho pomalost, kvůli architektuře procesoru-jedná se o dobu přepínání mezi chráněnými režimy). Ale, jak se později ukázalo, vývoj byl nečekaně složitý a pokračoval velmi pomalu.

Linus Torvalds, tvůrce linuxového jádra

Mezitím v roce 1991 započal vývoj jiného jádra, které nakonec dostalo jméno „Linux“. Původně ho začal psát finský student helsinské univerzity Linus Torvalds jako svůj koníček. Torvalds vycházel z Minixu, což byl zjednodušený klon Unixu napsaný Andrewem Tanenbaumem pro účely výuky návrhu operačních systémů. Avšak Tanenbaum nikomu nedal svolení k úpravám svého systému, a tak Torvalds napsal vlastní náhradu Minixu pro procesor 386. Postupně se systém za pomoci dalších nadšenců rozšiřoval a rychle se stal nezávislým samostatně fungujícím operačním systémem. Poté se začal pomalu rozvíjet v celé jádro operačního systému určené pro systémy kompatibilní se standardem POSIX (normy pro definici toho, jak se má systém chovat, díky tomu je poměrně jednoduché portovat aplikace pro jiné systémy).

První verze linuxového jádra (0.01) byla vydána na Internetu 17. září 1991, další následovala v říjnu téhož roku. Od té doby se na tomto projektu podílely tisíce vývojářů z celého světa.

Dnes má projekt jádra vlastní stránky www.kernel.org, kde je možné dozvědět se více.

 

Filosofie systému

Operační systém Unix vychází z filozofie, že na každou činnost by měl být vytvořen samostaný nástroj - dostatečně jednoduchý na vytvoření a údržbu, ale i dostatečně mocný na zajištění potřebné funkcionality. Nástroje také mají mezi sebou dokonale spolupracovat, takže výstup z jednoho programu/příkazu se může stát vstupem pro další program/příkaz a tak dále. Například příkaz cat umí vypsat obsah textového souboru. Chci si ze souboru vypsat jen řádky obsahující řetězec "rpm", abych zjistil, jaké programové balíčky jsem včera instaloval do systému. Od toho je v systému filtr s názvem grep. Nakonec to budu chtít vytisknout, a to zajistí příkaz lpr. Takže v čistě textovém prostředí tzv. terminálu (konzoly) napíšu následující příkaz: cat /var/log/user.log|grep RPM|lpr a mám na papíře přesně to, co potřebuji.

V grafickém prostředí lze samozřejmě využívat i komplexní aplikace typu Openoffice, programy pro editaci videa či zvuku, webové prohlížeče nebo 3D hry. Výše uvedený příklad měl jen demonstrovat tu skutečnost, že krátným zápisem lze dosáhnout velké efektivity.

Navíc to co jsem napsal do příkazového řádku terminálu můžu uložit do souboru jako tzv. script. Pokud tomu souboru dám práva ke spuštění (v linuxu neexistuje institut přípony *.exe), mohu tento a další příkazy sestavit do poměrně složitých konstrukcí, které jsou však složeny z jednoduchých a snadno pochopitelných příkazů. Asi chápete, jak to může zjednodušit některé opakující se úlohy.

Operační systémy (včetně linuxu) se obvykle znázorňují jednotlivými vrstvami:

jádro (kernel)

slouží zejména pro zpřístupnění hardware počítače, tj. pro přidělování jeho prostředků (zdrojů) různým uživatelům a různým úlohám. Zejména jde o přidělování:
  • času jednoho či více procesorů
  • operační paměti
  • diskového prostoru, ve kterém organizuje souborový systém
  • různých dalších periferií

knihovny

soubory funkcí po řešení opakujících se více či méně elementárních operací. Programátoři jednotlivých programů nemusí funkce obsažené v knihovnách vytvářet pro každou aplikaci znovu.

interpret příkazů (shell)

slouží ke komunikaci systému s jedním či více uživateli, zpravidla pomocí příkazové řádky. V shellu je startován celý systém, z shellu je zpravidla spuštěn i grafický server, který většina uživatelů používá.

aplikace (aplikační software)

nejrůznější programové vybavení, sloužící zejména jednak pro administraci (správu) vlastního systému, jednak pro vlastní užitečnou práci i neužitečnou práci

grafické uživatelské rozhraní

GUI, Graphic User Interface. S nástupem výkonnějších počítačů byla pro pohodlnější práci a pro zpracování grafických úloh vytvořena řada různých grafických prostředí. Nejznámější z nich je X Window System (1984) (neplést se známějšími Microsoft Windows - verze 1.0 z roku 1985). X Window systém dnes využívají tzv. správci obrazovky, tedy grafické nadstavby vybavené vlastními aplikacemi, klávesovými zkratkami a nerůznějšími utilitami. Mezi nejznámější patří např. KDE, Gnome, XFCE4, IceWM a další.

Výhody Linuxu

Mezi výhody linuxu patří:

  • Licence je kostruována tak, že kdokoliv může systém používat a kdokoliv může připrogramovat novou funkci programu a z toho těži potom všichni uživatelé. Je to možné proto, že licence GNU zajišťuje, že zdrojové soubory programů i jádra jsou volně k dispozici.
  • Linux vychází z Unixu a respektuje normy POSIX, tím pádem jsou pro linux dostupné všechny programy, které jsou podle těchto norem psány (tzv. přeportování je výrazně usnadněno).
  • Filozofie opensource programování vychází z omezených zdrojů a tak se zaměřila na maximální efektivitu programování. Z toho časem vyplynulo, že v Unixu vznikly sady relativně jednoduchých na jedné straně a zároveň na druhé straně stabililních programů, které po odladění chyb zůstávají dlouho funkční a není potřeba je dále vyvíjet (např. CVS-systém pro správu verzí, autor už je 20 let po smrti ale, program se používá, přestože zdrojový kód nikdo neupravuje, program funguje stále. Dalším takovým příkladem je TEX [čti "tech"], sázecí systém, kde byl vývoj licencí znemožněn, protože vše, co je potřeba pro sazbu umí a nemá smysl ho dále komplikovat. Nyní se provádějí pouze opravy chyb a vychází se z toho že vývoj typografie se ukončil cca v 16. století a od té doby se pouze používá, tak není potřeba typografické nástroje měnit :-).
  • Nad operačním systémem se vytváří vrstva knihoven (v linuxu glibc). Programátoři se nezabývají nízkoúrovňovými knihovnami. V případě používání balíčkovacího systému (udržuje přehled o veškerém nainstalovaném software) jsou všechny případné kolize oznámeny a programy, které by nefungovaly, nejsou nainstalovány. (V případě využívání tzv. repozitářů, tedy zdrojů balíčů pro konkrétní distribuci se to nestává). To přispívá k větší stabilitě a funkčnosti systému. Kromě toho v linuxu jsou součástí pojmenování knihoven i čísla verzí, takže lze mít pro programy vyžadující konkrétní knihovny v jednom adresáři jejich různé verze. Někdejší instalační proces tvz. „svatou trojicí“ (configure, make, make install) se již zpravidla nepoužívá.
  • Otevřený kód je psán zpravidla přehledně, protože jsou k tomu programátoři tlačeni. Kdokoliv má podle licence (GPL, BSD...) právo do kódu nahlédnout, a je v lidské přirozenosti ukázat na cizí chyby. Díky přehlednějšímu psaní se do kódu dostává méně chyb, je snazší ho ladit, hledat případné chyby a snadněji lze ke stávajícímu kódu přidávat nové funkce.
  • Další výhodou otevřeného kódu je to, že v případě potřeby si jednotliví uživatelé mohou použít neudržovaný software. Např. mám starší kartu a Windows Vista na ní nejde. Na Linuxu může kdokoliv vyrobit z opensource ovladačů instalační balíky a ty potom může využít celá komunita uživatelů.
  • V typické Linuxové distribuci, máme prakticky vše co pokrývá naši obvyklou potřebu. Navíc zdarma - až na vyjímky nemusíte další programy kupovat.
  • Důležitým faktorem je bezpečnost. Máme mnoho linuxových distribucí a každá má svoji bezpečnostní politiku. Cracker nemuže snadno napsat jeden škodlivý kód, který by se dostal do linuxových systémů. Není univerzálně transparentní. Výhodou také je používání opensource programů. Tyto programy jsou dostupné každému, a na světě se najde dostatek štouralů, kteří si zkontrolují jeho funkčnost, nebo jsou schopni zkontrolovat chybové stavy. Z toho vyplývá, že chyby se obvykle rychle odstaňují během hodin. Je tomu tak i proto, že velká část kódu vzniká na univerzitách. Kód prochází "kontrolou" spolužáků, procházejí ho učitelé, student za něj bývá hodnocen. Posléze se kódem zabývají správci programových balíků v jednotlivých distribucích.

Nevýhody Linuxu

  • Samozřejmě i Linux má své nevýhody, alespoň teoretické:
  • GPL licence – výhoda, ale i nevýhoda. Některé firmy nechtějí z obchodních důvodů otevřít zdrojové kódy, takže se linuxového vývoje neúčastní.
  • hardware - mnoho výrobců hardware i software s linuxem prostě nekomunikují. Nejnovější hardwar proto v linuxu ne vždy rozchodíte. Zpětné inženýrství vyžaduje čas, takže komunita pracující na vývoji daný ovladač vytvoří až po nějaké době.
  • Po instalaci některých distribucí Linuxu, které obsahují jen volně šiřitelný software, si většinou nepustíte mp3 skladby, nebo video. Důvodem jsou licenční podmínky, které neumožňují do volně šiřitelné distribuce dát tyto kodeky. Je pak volbou uživatele, zda mezi své zdroje zařadí i takové, jež obsahují potřebný software. Pak je doinstalování potřebných balíčků otázkou několika kliknutí.
  • Linux není Windows, takže na používání Win programů zapomeňte. Nebo ne tak docela. Existují určité aplikace, které umožňují spouštět buď win programy (např. wine) nebo lze spustit virtualizační software a do něj nainstalovat samotné Windows (nebo i jiné OS), např. komerční vmware, nebo free velmi schopný VirtualBox. Nicméně na 3D hry ve virtualizovaných systémech zapoměňte.

Rozdíly mezi Linux a Windows

  • cena - Windows za peníze, Linux zadarmo. Platí to ovšem jen částečně. Existují linuxové distribuce, které jsou za nemalé peníze. Přidanou hodnotou jsou nadstandardní možnosti, které takový systém umožňuje. Řada distribucí dává k dispozici free variantu (volně ke stažení z webu) a placenou s některými aplikacemi navíc, podporou atp.
  • adresářová struktura - Linux má jeden jen kořenový adresář a žádné disky C:/, D:/ ap. Všechny disky, diskové oddíly, CD a DVD mechaniky, flash paměti a další úložná zařízení se připojují na patřičné místo v adresářové struktuře. CD například najdete v /media/cdrom. Ve Windows máme písmenko pro každé fyzické zařízení.

 

Aplikace a hry

Užitečné aplikace:

Firefox, Opera - Oblíbené webové prohlížeče ve verzi pro Linux.

Konqueror - Defaultní prohlížeč a správce souborů pro prostředí KDE 3.5x.
Kmail - Poštovní klient nahrazující v KDE 3.5 Outlook nebo Thunderbird.
Digikam - velmi kvalitní program pro správu digitálních fotografií.

K3b - vynikající vypalovací program pro grafické rozhraní s maximálním komfortem připomínající Nero.
Corel photo-paint 9 - Komplexní foto-editor, určený k tvorbě obrázků na profesionální úrovni.
OpenOffice - Oblíbený kancelářský balík, alternativa k Microsoft Office. OpenOffice je často používaný i ve ve Windows, hlavně, protože je na rozdíl od MS Office zdarma. Nevýhodou ve Windows je jeho relativní zpomalenost. OpenOffice je také dostupný pro systémy Solaris (SPARC), MacOS X, OS/2 (komerční verze). Ve verzi 2.3 je však už OpenOffice rychlejší než jeho konkurent MS Office 2007

Gimp - Oblíbený bitmapový grafický program, a to i u uživatelů Windows. Funkcemi je podobný jako Adobe Photoshop.

Knotes – Žluté papírky které můžete připíchnout na plochu
Amarok - Slouží k přehrávání hudby - obdobou Windows Media Playeru. Amarok je však přehlednější, méně zatěžuje systém a je jednodušší na ovládání.
Kaffeine - Jeden z mnoha přehrávačů videa. Pustíte na něm jak dvd formáty tak obyčejná videa divx (musíte mít kodeky).
mplayer - Video přehrávač podporujcí snad každý myslitelný audio či video kodek, funguje v grafickém prostředí i v příkazovém řádku.

Xmms - Asi jeden z nejznámějších hudebních přehrávačů pro Linux obecně. Xmms je vlastně zkratkou pro X MultiMedia System. Podporuje mnoho pluginů pro výstup zvuku, pro různé formáty souborů, vizualizace a efekty. Z vestavěných vlastností jmenujme Streaming/Shoutcast(1.0/1.1), Equalizer, Playlist, jednořádkový mód ala WinShade in WinAmp, podpora WinAmpích skinů.
Midnight Commander - textově orientovaný souborový manažer. Velmi šikovný při práci v konsoli.
Valknut - Asi nejpoužívanější software pro sdílení souborů s síti Direct Connect pod linuxovou platformou.
Kopete - Komunikační klient pro celou řadu protokolů (ICQ, MSN, Jabber,...)
XnView - Slouží k prohlížení a konverzi obrázků.
Kdevelop - Luxusní prostředí pro programování.

 

Hry:

 
Racer - Údajně jeden z nejrealističtějších závodních simulátorů s grafikou na velmi vysoké úrovni.
Return to castle Wolfenstein: Enemy Territory - Výborná akční first person multiplayer-only střílečka na enginu Quake3/Return to castle Wolfenstein.
Stratagus – Strategie podobající se Warcraftu.
Battle of Wesnoth - Velmi návyková tahová strategie
Quake 4 - Střílečka známá z Windows ve verzi pro Linux.
Zpět

Vyhledávání

© 2009 by technik