Na první pohled může být jen těžko nějaké téma banálnější než operační systém. Překvapivě jde ale o látku, se kterou mají kantoři často problém – má smysl se jí věnovat, jak ji uchopit? Častou variantou je, že se přistoupí k popisu aplikací nějakého operačního systém (např. příslušenství ve Windows), a má se za to, že je látka vyložená dostatečně. Tak tomu však není a myslím, že o operačních systémech je toho v takovém výkladu řečeno jen velmi málo.
My se proto pokusíme nabídnout určitý alternativní přístup k této problematice, který může být, snad, pro žáky zajímavý a přitom jim ukáže něco z tohoto značně komplexního oboru.
Pokud nemá zůstat jen u nějakého teoretického popisu operačních systémů, je nutné, aby se žáci seznámili s co největším množstvím těchto základních programů. Jistě je ideální, pokud škola používá více operačních systémů přímo v učebnách. Pak není příliš co řešit, neboť žáci s nimi budou pracovat poměrně přirozeně a vzniká tak dobrý prostor pro další teoretický popis či abstrakci.
Pokud je ale škola vybavena v učebnách jen jedním operačním systémem, pak doporučuji virtualizovat. Linux či Free Dos jsou zdarma, stejně jako VirtualBox pro běh virtualizovaných operačních systémů, a tak je možné různě experimentovat. Osobně doporučuji ukázat nejméně jeden druh MS Windows, Linux se dvěma grafickými prostředími a nějaké textové uživatelské prostředí – ať už Linux, FreeDos nebo cokoli jiného.
Se systémem naučíme žáky základní operace, jako jsou kopírování souborů, práce s hardwarovým příslušenstvím, textový editor, přístup na internet atp. Je možné toho samozřejmě probrat mnohem více. Rozhodně je také zajímavé ukázat možnosti spojení terminálu a grafického prostředí v Linuxu.
Častá bývá obava z toho, že je Linux složitým operačním systémem, se kterým se žáci nemohou naučit pracovat. Ale Ubuntu nebo Fedora jsou z uživatelského prostředí přinejmenším stejně komfortní jako Windows a osobně se domnívám, že třeba instalace aplikací z repozitářů či center softwaru je podstatně jednodušší. Není tedy důvod se těchto systémů bát. Naopak z vlastní zkušenosti mohu říci, že Linux žákům vůbec nevadí, spíše naopak – je pro ně exotický, zajímavý, neokoukaný. Může být tedy výbornou devizou pro učitele informatiky.
Až ve chvíli, kdy se žáci orientují ve více operačních systémech a chápou rozdíl mezi grafickým provedením a samotným systémem, je možné přistoupit k hlubší diskusi o tom, co operační systém je a k čemu slouží.
Pokud se podíváme do historie, tak zjistíme, že první počítače operačním systémem nedisponovaly. Zpracování dat bylo dávkové a programování probíhalo přímo na úrovni binárního zápisu. V roce 1967 byl vyvinut IBM operační systém MFT, který podporoval v omezené míře multitasking (běh více aplikací současně). Od roku 1964 byl vyvíjen Multics, který však Bellovy laboratoře přestaly vyvíjet v roce 1969, kdy byl v těchto laboratořích vytvořen první Unix. Ten slouží jako základ většiny operačních systémů dodnes, především pak Linuxu, MAC OS či BSD.
Operační systém nabízí tři základní prvky funkcionalit, pro které se původě začal vyvíjet. V dnešním kontextu je již situace poněkud jiná, ale k tomu se teprve dostaneme. Předně nabízí možnost ovládat počítač jinak než jen binárním kódem. Máme k dispozici jedno rozhraní, pomocí kterého přistupujeme k hardware. Vyvíjené programy jsou určené pro operační systém a v zásadě je příliš nezajímá, na kterém technickém zařízení pracují, což značně zjednodušilo programování. Konečně třetí a snad nejdůležitější rovina spočívá ve správě a distribuci prostředků. V rámci operačního systému může paralelně pracovat více programů, což optimalizuje výkon počítače a umožňuje práci na zcela nových úlohách.
Cílem operačního systému je tedy zajistit jednodušší a efektivnější práci pro učitele i programátory. V dnešní době si již většina lidí jen těžko představí počítač, který by operačním systémem nedisponoval.
Jak již bylo řečeno, není vůbec jednoduché nabídnout nějakou jednoduchou definici toho, co operační systém je. Jistou cestou, jak se k jeho alespoň částečnému popisu dopracovat, je definice pomocí tzv. generických komponent. Jde o sadu vlastností, které musí mít operační systém, aby mohl být operačním systémem vůbec nazýván. Jde o následující vlastnosti:
Již na první pohled je zřejmé, že jednotlivé komponenty spolu souvisejí, a je možné je proto rozčlenit do určitých skupin. Tou první by bylo možné označit nástroje pro komunikaci s hardwarem. Jednak je to správa procesorů, která se začala jevit jako velmi složitá především s příchodem vícejaderných a více procesorových výrobků. Operační systém musí umět jednotlivým procesům přiřadit vhodný čas na procesoru a je zde důležitá komunikace přímo s hardwarem, tak aby docházelo k maximálnímu využití integrovaných vlastností mikroprocesoru, jako jsou třeba vlákna, řazení instrukcí atp. Důležité také je, zda je procesor 32 či 64 bitový a zda s tímto parametrem koresponduje druh operačního systému. Podobně pro vstupní a výstupní operace nabízí operační systém jisté standardizované rozhraní pro uživatele i aplikace.
Pak jsou zde nástroje na správu a ovládání paměti – ať již vnější nebo vnitřní. Pro aplikace je důležité, že všechny tyto činnosti zajišťuje operační systém a ony se nemusí o nic starat. Pokud již hovoříme o správě paměti, pak zde důležitou roli hraje také správa souborů, což je to, s čím reálně uživatel přichází do styku. Patří sem pojmenování disků, jejich využívání, fragmentace dat atp. V této oblasti jsou mezi OS skutečně velké rozdíly.
Další část se týká procesů. Ty je možné si představit jako elementární části aplikací, které se mají provádět (možná je třeba analogie molekul a plynu – plyn je aplikace a molekuly jsou jednotlivé procesy). Obvykle mají poměrně jednoduchý charakter – něco načíst, někam uložit atp. Je zřejmé, že těchto procesů je prováděno velké množství současně. Systém pak musí mít soubor ochran, kterými zajišťuje, aby nedocházelo ke kolizím mezi jednotlivými procesy. Druhou úrovní ochran je pak definice toho, ke kterým datům mohou jednotlivé procesy přistupovat, jak s nimi mohou nakládat atp.
Networking zajišťuje možnost síťové komunikace. Ta je důležitá jako pro přístup k Internetu nebo lokální síti, ale také pro distribuované systémy. Jde o soubory počítačů, které spolu komunikují a pracují na jednom souboru výpočtů.
Interpret příkazů je komponenta, která nemá úplně přesné vymezení. Je jasné, že do ní bude patřit shell v Linuxu či command line v Dos či Windows. Obecně k němu řadíme také rozhraní pro aplikace a grafické prostředí. Někdy je do něj řazeno celé grafické prostředí, protože jeho prostřednictvím uživatel ovládá systém. Na druhé straně OS může bez grafického prostředí obecně fungovat velice dobře.
Zde již přichází na řadu smysluplnost dělení operačních systémů podle výstavby jádra. Můžeme mluvit o monolitických systémech, které mají všechny tyto komponenty integrované ve svém jádře, spolu s mnoha dalšími základními nástroji. Klasickým zástupcem této kategorie je DOS, ale postupně téměř všechny Windows, Linux a další. Nevýhodou je, že není možné příliš ovlivňovat nabídku služeb pro aplikace, snadno měnit nastavení nebo je obtížnější upgrade či update systému.
Druhou kategorií jsou mikrojaderné OS. Snahou je mít co nejmenší jádro a služby softwaru jsou řešené jako aplikace se zvláštní prioritou. Výhodou tohoto konceptu je, že se tyto aplikace dají upravovat a měnit. Oproti monolitickému jádru se ale platí nižším výkonem. Zástupci jsou například Symbian, Pike OS a další.
Oba přístupy se snaží dát dohromady hybridní či modulární operační systémy. Ty disponují poměrně malým jádrem, nad nímž jsou vybudovány služby pro aplikace, které ale stále s ním tvoří jednu vrstvu. Aplikace přistupují k službám a rozhraním, které pak samostatně komunikují se samotným jádrem. Na první pohled výhodné spojení, ale nikdy příliš nefungovalo. Jedinými zástupci byly Windows NT či pozdější verze Windows CE.
Všechna tato rozdělení mají výhody či nevýhody a žáci jsou schopni obvykle s trochou pomoci sami o nich diskutovat. Není od věci upozornit na to, že ač bylo monolitické jádro zprvu kritizováno, tak se k němu téměř všichni vracejí a to také z důvodu bezpečnosti, optimalizace či jednoduchosti na naprogramování.
Nyní je možné jít opět k jednotlivým operačním systémům a diskutovat o nich z hlediska uvedených parametrů. Pokud je užito virtualizace, pak je dobré zmínit také ji. Jestliže se dostaneme tak daleko, bude jistě na zvážení, zda nezmínit popis tvorby a života procesů, přepínání kontextu atp. Osobně se ale domnívám, že pro základní kurz by toho bylo příliš.
Je dobré, aby si žáci uvědomili, v čem se jednotlivé operační systémy liší a proč. Které to přináší výhody, která negativa. Jistě je možné se jich také zeptat, jak by měl podle nich vypadat ideální operační systém.
Na tomto místě by již měli žáci být schopni jasně odlišit aplikace od nezbytných prvků v operačních systémech, i když je zřejmý současný trend směrem k instalaci řady programů přímo s operačním systémem – od malování přes videoeditory, přehrávače hudby, prohlížečů webů atp. V poslední části článků se zaměříme na příklady některých operačních systémů a jejich základní charakteristiku. Pozornost bude věnována také tomu, že můžeme mluvit o operačních systémech pro desktopy, servery, mobilní telefony atp.
Dalším rozdělením podle velikosti či zaměření již pozornost věnovat nebudeme.
V této části si stručně představíme některé operační systémy, se kterými se mohou žáci nejčastěji setkat. V tomto panoramatu ukážeme dvě nejrozšířenější linuxové distribuce – Fedoru a Ubuntu. Ač jsou relativně odlišné, v základních charakteristikách se shodují – ať již jde o přítomnost repozitářů, adresářovou strukturu, možnost užívat terminál nebo přístupem k řízení a nastavování systému. Mezi další známé z Linuxu (či Unixu) vycházející operační systémy patří i níže popsaný Mac OS nebo třeba FreeBSD. Je vhodné porovnat přístupy k jednotlivým uživatelským činnostem na základě linuxového a windowsového paradigmatu a ukázat, v čem se oba přístupy liší.
Fedora je linuxová distribuce založená na grafickém prostředí Gnome a balíčkovacím systému rpm. Vychází z Red Hat a nabízí velice dobrou podporu moderního hardware. Jde o operační systém určený pro desktopy, ale je možné jej používat také na severech. Spojení s Red Hat z ní dělá ideální systém pro firemní stanice, ale je dobře použitelná také pro domácí prostředí.
Fedora 13. Fedora Project [cit. 2001-11-14]. Dostupný pod licencí GNU General Public License na WWW: <http://cs.wikipedia.org/wiki/Soubor:Fedora_13_GNOME.png> |
Ubuntu je linuxová distribuce založená na balíčkovacím systému deb, která vychází z Debianu. Jako grafické prostředí je užito Unity, které vychází z Gnome, ale je možné užít i KDE a další grafické prostředí. K dispozici je také verze pro servery. Cílem distribuce je snaha o co největší blízkost uživateli. Ten nemusí nic instalovat, nastavovat, používat terminál. Vše je mu nabízeno v maximálním možném jednoduchém provedení.
Fedora 13. Radu Cotescu. [cit. 2001-11-14]. Dostupný pod licencí GNU General Public License na WWW: <http://sk.wikipedia.org/wiki/S%C3%BAbor:Ubuntu_11.04.png> |
Mac OS X je aktuální operační systém pro počítače Macintosh, které vyrábí Apple. Jde tedy o přístup dokonalého spojení hardwaru a softwaru s cílem maximální rychlosti a kompatibility. Je založený na Unixu, ale čerpá i z jiných distribucí. Základem všeho je jednoduchost ovládání a moderní vzhled. Mezi typické estetické rysy patří například objectdoc. Zajímavostí je i využití hybridního jádra.
FreeDOS je otevřený, bezplatný, s MS DOS kompatibilní operační systém. Je složen z mnoha různých, oddělených programů, které se chovají jako „balíčky“ v celém projektu FreeDOS. Kompatibilita je téměř stoprocentní, s tím, že FreeDos nabízí některá vylepšení, jako je například podpora FAT 32 nebo nového hardware. Ač bylo cílem především podporovat starší procesory, nachází i dnes řadu využití, mj. také při virtualizaci, kdy umožňuje efektivní běh starších programů.
Fedora 13. [cit. 2001-11-14]. Dostupný pod licencí GNU General Public License na WWW: <http://cs.wikipedia.org/wiki/Soubor:BOO1.png> |
Nejrychleji rostoucím operačním systémem pro mobilní telefony je Android, který využívá jádra Linuxu, s tím, že se zaměřuje na omezení spojená s mobilními zařízeními – malou úhlopříčku, omezenou paměť či baterii. Součástí systému je i vlastní grafické prostředí a řada aplikací. Zajímavostí je, že často se správa procesů řeší jinak než oficiálním programem.
Systém Windows není asi třeba nijak představovat...
Zde uvedený výčet je velmi selektivní a určitě by si zasloužit hlubší komentář, jako jsou rozdělení linuxových distribucí podle balíčkovacích systémů, větší popis dosovských operačních systémů nebo k mobilním operačním systémům připojit projekty, jako jsou iOS, Bada, Black Barry, Windows 7 Mango a mnohé další. Také jsme se vůbec nezmínili o operačních systémech, jako jsou FreeBSD, Solaris, ReactOS a mnohých dalších. Žák, který se o danou problematiku zajímá, si vše potřebné jistě najde, pro ostatní jde již o pokročilejší partie.
Pokud nemáte v plánu nějaký hlubší exkurs do operačních systémů, tak věřím, že následující článek ukázal jistý minimální rámec toho, kde se lze pohybovat. Lze jít podstatně dále – jak v popisu generických komponent a jejich komparací, tak především v otázce práce s procesy, procesory a I/O zařízeními. Další možnosti rozšíření se pak ukazují v jednotlivých distribucích a OS.
Celkově by měl být ale důraz kladen na praxi a na to, aby si žáci byli schopni poradit s libovolným operačním systémem, se kterým přijdou do styku. Na téma operačních systémů by měla navazovat kapitola bezpečnost, která by se již mohla opírat o vybudované teoretické poznatky ze světa OS.
Všechny články jsou publikovány pod licencí Creative Commons BY-NC-ND.
Článek nebyl prozatím komentován.
Pro vložení komentáře je nutné se nejprve přihlásit.
Článek není zařazen do žádného seriálu.