K čemu slouží operační systém
Proč vlastně vznikla myšlenka operačních systémů a proč je potřebujeme?
Zkusme si sestavit takový fiktivní počítač. Nejdříve tu máme procesor. To je výkonná jednotka schopná provádět příkazy, které si postupně načítá z paměti. Posloupnosti příkazů říkáme program. Připojíme tedy k procesoru programovatelnou paměť ROM, do které předem zapíšeme program pomocí zapisovacího zařízení. No a samozřejmě připojíme nějaké periferie, s jejichž pomocí bude procesor komunikovat s okolním světem. Spustíme-li takový počítač, procesor začne vykonávat instrukce programu a vše funguje perfektně. Takto bychom vytvořili jednoúčelové zařízení založené na jednočipovém procesoru.
Na osobní počítač jsou však kladeny vyšší nároky. Jako uživatelé budeme chtít, abychom mohli měnit program, který procesor zpracovává. V nejjednodušším případě budeme vyměňovat ROM paměť s programem, což je případ herních konzolí. Větší variability dosáhneme, budeme-li nahrávat program z nějakého vnějšího paměťového zařízení. Program zavedeme do paměti RAM, což je paměť s proměnlivým obsahem. Využijeme nejběžnější záznamové zařízení, kterým je (či spíše do nedávna byl) kazetový magnetofon. Mnozí z vás si jistě zavzpomínají na staré klasické osobní počítače typu ZX Spectrum. K uložení programu na kazetu použijeme modulovaný zvukový signál.
Abychom mohli programy z kazety načítat, nevystačíme si pouze s pamětí RAM, procesor by zůstal k datům z magnetofonu hluchý. Potřebujeme zaváděcí program v paměti ROM (zvaný firmware), který zajistí, že procesor program z kazety do RAM načte a poté ho spustí. Do programu v ROM můžeme umístit i další užitečné funkce, jako je možnost editace paměti v HEX kódu a zápis programu na kazetu, čímž máme již ucelený systém pro tvorbu i používání programů.
Při vývoji našeho počítače ovšem nemůžeme počítat s tím, že počítač bude hned napoprvé to nej a že ho již nikdy nebudeme chtít měnit. Bohužel opak je pravdou - namísto kazeťáku budeme chtít použít rychlejší disketovou mechaniku, přidáme lepší zobrazovací jednotkou, myš a nevím co ještě. Můžeme to vyřešit tak, že budeme mít tolik variant programů, kolik je variant vybavení počítače. To byl případ 8-bitových počítačů. Když se nakonec vymotáme z tohoto Babylonu variant, sáhneme po mnohem efektivnější variantě - programové rozhraní zařízení.
O vytvoření dobrého programového rozhraní zařízení usilovali všichni výrobci osobních počítačů - funkce pro výstup znaku na displej, vstup znaku z klávesnice, načtení a uložení programu. Ale opravdový zlom znamenal až vznik počítače IBM PC s dostatečně propracovaným programovým rozhraním zařízení nazývaným BIOS (Basic Input-Output System). K zavádění programů do paměti sloužily disketové mechaniky a tzv. "Boot loader".
Máme tedy celkem přijatelné programové rozhraní zařízení. Postupem času, s narůstající složitostí programů, narazíme na další nepříjemnou věc - programy jsou příliš složité a ve všech se opakují stále stejné části. To nás vede k další myšlence - když se ukázalo být tak výhodné programové rozhraní zařízení, což takhle vytvořit aplikační programové vybavení pro často se opakující funkce a toto rozhraní dávat k dispozici všem programům? Nejdříve zavedeme do paměti aplikační programové rozhraní a to se pak již postará o zavedení programu, kterému bude aplikační programové rozhraní dávat k dispozici své funkce. No a máme tu operační systém.
První operační systémem pro počítače IBM PC se nazýval DOS (Disk Operating System). Obstarával takové funkce, jako je obsluha disků (přístup k souborům a adresářům), práce s datem a časem, vstup z klávesnice, výstup na displej. Stal se jedním z nejrozšířenějších operačních systémů všech dob.
Nebyli bychom lidé, kdybychom se spokojili se současným stavem a nechtěli stále více. Aplikační programové rozhraní je hezká věc, ale... Co když píši na PC dopis a chci si najít v databázi adresu? Musím editor ukončit a spustit databázi a pak zase zpět. Nebo co když mi běží program se složitými výpočty, během té doby nemohu na PC ani sáhnout? Kéž by bylo možné spouštět více programů najednou! Může to zajistit operační systém?