Hledat:

Invia.cz Pojeďte do Egypta Kanárské ostrovy Dovolená - Turecko Dominikánská republika Madeira Last minute
 

Operační systém

Vztah mezi operačním systémem, hardwarem, aplikačním softwarem a uživatelem

Operační systém je v informatice označení pro základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho startu a zůstává v činnosti až do jeho vypnutí. Skládá se z jádra (kernel) a pomocných systémových nástrojů. Hlavním úkolem operačního systému je zajistit uživateli možnost ovládat počítač, vytvořit pro procesy aplikační rozhraní (API) a přidělovat jim systémové zdroje (procesor, paměť, přístup k souborům atd). Jeho vývoj je náročný na bezchybnost a efektivitu. Nachází na mnoha zařízeních, která obsahují „počítač“ a provádějí různé úkoly najednou, například mobilní telefon, herní konzole, server. Mezi nejznámější zástupce patří Microsoft Windows, Linux, macOS.

Historie

První počítače operační systém neměly. Zárodky operačních systémů lze vysledovat v knihovnách pro obsluhu vstupních a výstupních zařízení. Na počátku 60. let 20. století výrobci počítačů dodávali propracované nástroje pro řízení dávkového zpracování spouštěných programů. První operační systémy byly dodávány k sálovým počítačům (mainframe). V roce 1967 byl firmou IBM vydán operační systém MFT, který podporoval v omezené míře multitasking. Návrh a vývoj operačního systému Multics (1964) vycházel z myšlenky dodávky výpočetního výkonu podobným způsobem, jako jsou realizovány dodávky elektřiny, plynu nebo vody. Multics přinesl řadu nových myšlenek a stal se inspirací pro vytvoření operačního systému Unix, který je používán dodnes, a který se dále stal inspirací pro pozdější systémy (CP/M, DOS, Microsoft Windows, macOS, Linux atd.).

Typy operačních systémů

Neexistuje univerzální operační systém, který by mohl splnit všechny požadavky, protože mnoho z požadavků je protichůdných. U některých zařízení je dokonce operační systém nežádoucí (např. řízení kávovaru, některé vestavěné systémy).

Desktop

Desktop je počítač sloužící uživateli na stole. Patří mezi ně osobní počítače (PC, Mac Pro, notebooky). Cílem systému je nabídnout jednoduchost, univerzálnost, práci s mnoha aplikacemi. Mezi nejznámější operační systémy pro desktopové počítače patří Microsoft Windows, MacOS od firmy Apple, Linux.

Mobilní zařízení

Mobilní zařízení jsou konstruována jako přenosné počítače. Cílem systému pro mobilní zařízení je snadnost obsluhy v terénu (z ruky), úspora energie akumulátoru, univerzálnost: telefonování, e-mail, Internet, sociální sítě, specializované aplikace (bankovní, navigační), bezpečnost (v případě krádeže, útoku) atd. Mobilních zařízení je na světě už více než klasických desktopových počítačů a dále se jejich počet zvyšuje. Tím vzrůstá důležitost systémů pro takové počítače, mezi které patří Android a iOS.

Servery

Servery obsluhují uživatele Internetu a provádějí složité výpočty. Cílem systému je nabídnout vysoký výpočetní výkon, snadnou údržbu, odolnost proti počítačovým útokům, možnost úpravy systému, škálování. Mezi nejpoužívanější systémy patří Linux a servery z řady Windows NT.

Řízení v reálném čase

Pro řízení chodu některých strojů (např. motor automobilu) jsou používány počítače, jejichž cílem je co nejrychlejší reakce na probíhající události. Jsou pro ně vyvíjeny speciální operační systémy reálného času. Do této kategorie by mohly patřit i systémy řídící virtuální realitu.

Bezpečnost

Pro počítačové systémy, na které jsou kladeny vysoké bezpečnostní požadavky, existují speciální operační systémy. Obvykle jsou založeny na mikrojádře.

Funkce operačního systému

Operační systém plní tři základní funkce: ovládání počítače, abstrakce hardware a správa prostředků.

Ovládání počítače

Při definici operačního systému se obvykle omezuje ovládání počítače na schopnost spustit program, předat mu vstupní data a umožnit výstup výsledků na výstupní zařízení. Někdy je však pojem operační systém rozšířen i na grafické uživatelské rozhraní, což může být z důvodů marketingových, ale i problému nejasné hranice mezi operačním systémem a aplikacemi.

U systémů, které disponují jediným grafickým rozhraním (Microsoft Windows, Symbian OS, …) je často grafické rozhraní zahrnováno do operačního systému. U systémů, kde je uživatelské rozhraní možné vytvořit několika nezávislými způsoby nebo různými aplikacemi, je běžné nepovažovat ho za součást systému (unixové systémy).

Abstrakce hardware

Operační systém skrývá detaily ovládání jednotlivých zařízení v počítači (tzv. hardware) a definuje standardní rozhraní pro volání systémových služeb[1] tak, že vytváří abstraktní vrstvu s jednoduchými funkcemi (tzv. API), které využívají programátoři aplikací. Tím nejen zjednodušuje programátorům vytváření programů, ale umožňuje programům pracovat i se zařízeními, které v době vzniku programu neexistovaly (například z hlediska programátora není rozdíl mezi otevřením souboru na pevném disku, CD, DVD, flash, síťovém disku nebo Blu-ray). Někdy je uvnitř operačního systému vytvářena podobná abstraktní mezivrstva, která usnadňuje programování ovladačů jednotlivých zařízení (tzv. HAL, anglicky Hardware Abstraction Layer).

Správa prostředků

Operační systém přiděluje spuštěným programům systémové prostředky (operační paměť, procesor, pevný disk, vstupně-výstupní zařízení). V případě potřeby může operační systém procesům přidělené prostředky násilně odebrat (preempce). Operační systém využívá schopnosti procesoru k ochraně sebe samého, ale i k oddělení pracovního prostoru jednotlivých procesů.

Příklady operačních systému

Operační systém Unix a systémy založené na Unix

Více na: Unix

Unix byl původně napsán v nízko úrovňovém jazyce. Ken Thompson napsal programovací jazyk B, založený především na BCPL, na základě svých zkušeností s projektem MULTICS. Programovací jazyk B byl nahrazen programovacím jazykem C a Unixem, přepsaný v C,a tím se dostal do rodiny vzájemně propojených operačních systémů, které měly vliv na každý moderní operační systém.

Rodina Unix je rozsáhlá skupina operačních systémů s několika hlavními podskupinami, například systémem Unix V, BSD či Linuxem. Název "UNIX" je vlajková loď společnosti The Open Group, která licencuje použití v ​​jakémkoliv operačním systému, který byl prokázán, že vyhovuje jejich distribuci. "UNIX-like" se běžně používá k označení velké sady operačních systémů, které se podobají původnímu systému UNIX. Systémy typu Unix běží na široké škále počítačových architektur. Je často používaná pro servery při podnikání, stejně jako počítače v akademickém a technickém prostředí. Bezplatné varianty systému UNIX, jako Linux a BSD jsou díky tomu poměrně hodně oblíbené.

Čtyři z operačních systémů jsou certifikovány společností Open Group jako Unix. Systémy firem HP HP-UX a IBM AIX vychází z původního Unix V a jsou navrženy tak, aby fungovaly pouze na hardwaru jejich dodavatele. Naproti tomu Solaris společnosti Sun Microsystems může pracovat na různých typech hardwaru, včetně serverů x86 a Sparc, a počítačů. Další varianta systému, Apple MacOS, nahrazující starší Apple (non-Unix) Mac OS, je hybridní jádro, založené na BSD s variantou odvozenou z NeXTSTEP, Mach a FreeBSD. Unixová interoperabilita byla vyhledávána v závislosti na zavedení standardu POSIX. Standard POSIX lze aplikovat na libovolný operační systém, i když byl původně vytvořen pro různé varianty Unixu.

BSD a jeho distribuce

Více na: BSD

První server pro World Wide Web běžel na platformě NeXTSTEP založené na BSD.

Podskupina Unix je spojena s Berkeley Software Distribution (BSD), která zahrnuje FreeBSD, NetBSD a OpenBSD. Tyto operační systémy se nejčastěji nacházejí na webových serverech, ačkoli mohou fungovat také jako počítače. Internet je z velké části postaven na BSD, protože mnoho protokolů běžně používaných počítači pro připojení, odesílání a přijímání dat přes síť bylo z velké části rozvinuto v BSD. Světová síť byla také poprvé demonstrována na řadě počítačů s operačním systémem založeným na BSD nazvaném NeXTSTEP.

V roce 1974 Kalifornská univerzita v Berkeley nainstalovala svůj první Unix systém. V průběhu času studenti a zaměstnanci v oddělení informatiky začali přidávat nové programy, které usnadňují práci, jako jsou textové editory. Když univerzita Berkeley obdržela v roce 1978 nové počítače VAX s instalovaným Unixem, vysokoškolští studenti modifikovali Unix ještě víc, aby využili možnosti hardwaru počítače. Agentura pro obranné výzkumy ministerstva obrany v USA se rozhodla tento projekt financovat. Mnoho škol, korporací a vládních organizací si této skutečnosti všimlo a začalo používat verzi Berkeley Unix místo oficiální verze distribuované společností AT&T.

Steve Jobs, po opuštění společnosti Apple Inc. v roce 1985, vytvořil společnost NeXT, která vyráběla špičkové počítače běžící na BSD s názvem NeXTSTEP. Jeden z těchto počítačů používal Tim Berners-Lee jako první webový server k vytvoření World Wide Web.

Vývojáři, například Keith Bostic, posunuli projekt k tomu, aby nahradil non-free code, který pochází z Bell Labs. Ihned po dokončení, AT&T žaloval. Po dvou letech soudních sporů vznikl projekt BSD s řadou bezplatných rozšíření, jako jsou NetBSD a FreeBSD (v roce 1993), a OpenBSD (od NetBSD v roce 1995).

MacOS

Více na: MacOS

MacOS (dříve "Mac OS X" a později "OS X") je řada otevřených grafických operačních systémů vyvinutých firmou Apple, nejnovější z nich je na všech počítačích Macintosh. MacOS je nástupcem původního klasického Mac OS, který byl primárním operačním systémem Applu od roku 1984. Na rozdíl od svého předchůdce, MacOS je operační systém UNIX postaven na technologii, která byla vyvinuta pro NeXT. Společnost Apple koupila firmu počátkem roku 1997. Operační systém byl poprvé vydán v roce 1999 jako Mac OS X Server 1.0, následovaný v březnu 2001 klientskou verzí (Mac OS X v10.0 "Cheetah"). Od té doby bylo vydáno šest dalších "klientských" a "serverových" edic MacOS, dokud nebyly tyto dva sloučeny v systému OS X 10.7 "Lion".

Před spojením s macOS byla serverová edice - macOS Server - architektonicky identická se svým uživatelským protějškem a obvykle běžela na počítačích Apple Macintosh. Server macOS zahrnoval nástroje pro správu a nastavení práv pro skupiny, které poskytují zjednodušený přístup ke klíčovým síťovým službám, včetně přenosu pošty, serveru Samba, serveru LDAP a dalších. S operačním systémem Mac OS X v10.7 Lion byly všechny aspekty serveru Mac OS X Server integrovány do verze klienta a produkt byl přeznačen jako "OS X". Serverové nástroje jsou nyní nabízeny jako aplikace.

Linux

Více na: Linux

Linuxové jádro vzniklo v roce 1991 jako projekt Linuse Torvaldse, zatímco studoval ve Finsku. Informace o svém projektu zveřejnil v diskuzní skupině pro studenty a programátory a získal podporu a pomoc od dobrovolníků, kterým se podařilo vytvořit kompletní a funkční jádro.

Linux je založen na Unixu, ale byl vyvinut bez použití jakéhokoliv unixového kódu, na rozdíl od BSD a jeho variant. Vzhledem k otevřenému licenčnímu modelu je kód jádra Linuxu k dispozici pro studium a modifikaci, což vedlo k jeho použití na širokém spektru zařízení od superpočítačů až po chytré hodinky (smart watch). Ačkoli odhady naznačují, že Linux je používán pouze na 1,82% všech počítačů, byl široce přijat pro použití na serverech, na mobilních telefonech a dalších zařízeních. Linux nahradil Unix na mnoha platformách a používá se na většině superpočítačů. Linux je běžně používán i na jiných malých energeticky úsporných zařízeních, jako jsou smartphony a chytré hodinky (smart watch). Linuxové jádro se používá v některých populárních distribucích, jako jsou Red Hat, Debian, Ubuntu, Linux Mint, Android a Chrome OS.

Microsoft Windows

Více na: Microsoft Windows

Microsoft Windows je součástí proprietárních operačních systémů navržených společností Microsoft a primárně zaměřených na počítače založené na architektuře Intel s odhadovaným podílem na celkovém počtu zařízení 88,9%. Nejnovější verze Windows je Windows 10.

V roce 2011 Windows 7 překonal Windows XP coby nejpoužívanější verzi OS.

Microsoft Windows byl poprvé vydán v roce 1985 jako operační prostředí běžící na MS-DOS, což byl standardní operační systém používaný na většině osobních počítačů architektury Intel v té době. V roce 1995 byl vydán Windows 95, který používal pouze systém MS-DOS jako bootstrap. Windows ME, vydaný v roce 2000, byl poslední distribucí používající Win9x. Pozdější verze byly založeny na jádře systému Windows NT. Aktuální verze systému Windows běží na IA-32, x86-64 a 32bitových ARM mikroprocesorech.

Serverové edice systému Windows jsou hodně rozšířené. V posledních letech společnost Microsoft vynaložila hodně peněz ve snaze podpořit používání systému Windows coby operačního systému pro servery, kde se systém Windows snaží konkurovat Linuxu a BSD. Použití systému Windows na serverech však není tak rozšířené jako u klasických PC.

ReactOS je alternativní operační systém Windows, který je vyvíjen na principu Windows - bez použití kódu společnosti Microsoft.

Jiné

V tomto směru bylo vytvořeno mnoho operačních systémů, které nejsou tak známé, jako například AmigaOS, OS/2 od firem IBM a Microsoft, klasický Mac OS, non-Unix odvozený od Apple MacOS, BeOS, XTS-300, RISC OS, MorphOS, Haiku, BareMetal a FreeMint. Některé jsou stále používány a nadále se vyvíjejí jako menší platformy pro komunity nadšenců a pro specializované aplikace. OpenVMS, dříve od DEC, je vyvíjen stále aktivní společností Hewlett-Packard. Jiné operační systémy se používají téměř jedině v akademické sféře, pro výuku operačních systémů nebo pro výzkum konceptů operačních systémů. Typickým příkladem systému, který splňuje obě role, je MINIX, zatímco například Singularity se používá výhradně pro výzkum. Dalším příkladem je systém Oberon navržený v ETH Zürich Niklaus Wirth, Jürgem Gutknechtem a skupinou studentů bývalého Computer Systems Institute, který byl používán hlavně pro výzkum, výuku a každodenní práci ve Wirthově skupině.

Jiné operační systémy nedokázaly získat významný podíl na trhu, ale zavedly inovace, které ovlivnily dnešní operační systémy.

Komponenty

Komponenty operačního systému slouží k tomu, aby různé části počítače spolupracovaly. Veškerý uživatelský software musí procházet operačním systémem, aby mohl používat hardware, ať už je jednoduchý jako myš nebo klávesnice, nebo je tak složitý jako internetové komponenty.

Kernel (Jádro)

Více na: Jádro operačního systému

S pomocí ovladačů firmwaru a zařízení, poskytuje jádro nejzákladnější úroveň kontroly všech hardwarových zařízení počítače. Spravuje přístup k paměti pro programy v paměti RAM, určuje, které programy získají přístup ke zdrojům hardwaru, nastavuje nebo obnovuje provozní stavy procesoru pro optimální provoz a organizuje data pro dlouhodobé, energeticky nezávislé, ukládání dat se systémy souborů na takových médiích, jako jsou disky, pásky, flash paměť atd.

Spuštění programu

Více na: Proces (informatika)

Operační systém poskytuje rozhraní mezi aplikačním programem a počítačovým hardwarem, takže aplikační program může komunikovat s hardwarem pouze dodržováním pravidel a postupů naprogramovaných v operačním systému. Operační systém je také soubor služeb, které zjednodušují vývoj a spouštění programů. Spuštění programu zahrnuje vytvoření procesu jádrem operačního systému, které přiřazuje paměťový prostor a další zdroje, stanoví prioritu procesu ve víceúlohových systémech, načte programový binární kód do paměti a spustí provádění programu, který pak spolupracuje s uživatelem a hardwarovými zařízeními.

Přerušení

Více na: Přerušení

Přerušení jsou pro operační systémy klíčová, neboť poskytují efektivní způsob, jakým může operační systém komunikovat a reagovat na prostředí. Alternativa - operačním systémem "sledovat" různé zdroje vstupů pro události (polling), které vyžadují akci - lze nalézt ve starších systémech s velmi malými stacky (50 nebo 60 bajtů), ale je neobvyklý v moderních systémech s velkými stacky. Programování založené na přerušení je přímo podporováno většinou moderních procesorů. Přerušení poskytuje počítači způsob, jak automaticky ukládat místní kontexty registru a spouštět určitý kód v reakci na události. Dokonce i velmi základní počítače podporují přerušení hardwaru a umožňují programátorovi zadat kód, který může být spuštěn, když k tomu dojde.

Při přijetí přerušení se hardware počítače automaticky pozastaví. Jakýkoli program, který je aktuálně spuštěn, uloží svůj stav a spustí počítačový kód, dříve přidružený k přerušení, to je analogické k umístění záložky v knize, jako odpověď na telefonní hovor. V moderních operačních systémech jsou přerušení zpracovávány jádrem operačního systému. Přerušení mohou pocházet buď z hardwaru počítače nebo z běžícího programu.

Když hardware zařízení spustí přerušení, jádro operačního systému rozhodne, jak se s touto událostí vypořádat, obecně tím, že spustí nějaký kód zpracování. Množství spuštěného kódu závisí na prioritě přerušení (například: osoba obvykle reaguje na alarm detektoru kouře před odpovědí na telefon). Zpracování přerušení hardwaru je úloha, která je obvykle delegována na software nazývaný ovladač zařízení, který může být součástí jádra operačního systému, součástí jiného programu nebo obojího. Ovladače zařízení pak mohou přenášet informace do běžícího programu různými způsoby.

Program také může spustit přerušení operačního systému. Pokud chce program například přistupovat k hardwaru, může přerušit jádro operačního systému, což způsobí, že se kontrola přenese zpět do jádra. Jádro potom zpracuje požadavek. Pokud si některý program přeje další zdroje (nebo si přeje zbavit zdrojů), jako je například paměť, spustí přerušení, aby získalo pozornost jádra.

Režimy

Více na: User space

Moderní mikroprocesory (CPU nebo MPU) podporují více režimů provozu. CPU s touto schopností nabízejí alespoň dva režimy: uživatelský režim a režim supervizora. Obecně řečeno, režim supervizora umožňuje neomezený přístup ke všem strojním zdrojům včetně všech instrukcí MPU. Režim uživatelského režimu nastavuje limity pro použití instrukcí a obvykle zakazuje přímý přístup k strojním zdrojům. CPU mohou mít i jiné režimy podobné uživatelskému režimu, například virtuální režimy, aby emulovali starší typy procesorů, například 16bitové procesory na 32bitovém nebo 32bitové procesory na 64bitové.

Po zapnutí nebo resetování začne systém v režimu supervizora. Po načtení a spuštění jádra operačního systému lze vytvořit hranici mezi režimem uživatele a režimem supervizora (také známým jako režim jádra).

Režim supervizora se používá jádrem pro úkoly s nízkou úrovní, které vyžadují neomezený přístup k hardwaru, jako je například kontrola přístupu k paměti a komunikace se zařízeními, jako jsou diskové jednotky a zařízení pro zobrazování videa. Uživatelský režim se naopak používá téměř pro všechno ostatní. Aplikační programy, jako jsou textové procesory a správci databází, pracují v uživatelském režimu a mají přístup pouze ke strojním prostředkům tím, že převádějí ovládání na jádro, což způsobí přepnutí do režimu supervizora. Přenos řízení do jádra je typicky dosažen provedením instrukce pro přerušení softwaru, například instrukce Motorola 68000 TRAP. Přerušení softwaru způsobí, že mikroprocesor přepne z uživatelského režimu do režimu supervizora a spustí provádění kódu, který umožní jádru převzít kontrolu.

V uživatelském režimu mají programy obvykle přístup k omezené sadě instrukcí mikroprocesoru a obecně nemohou provádět žádné pokyny, které by mohly potenciálně způsobit narušení provozu systému. V režimu supervizora jsou obvykle odstraněny pokyny k provádění instrukcí, což umožňuje jádru neomezený přístup ke všem strojním zdrojům.

Termín "prostředek uživatelského módu" obecně odkazuje na jeden nebo více registrů CPU, které obsahují informace, které běžící program nesmí měnit. Pokusy o změnu těchto zdrojů obecně způsobí přepnutí do režimu supervizora, kde se operační systém může vypořádat s nelegální činností, o kterou se program pokoušel, například násilným ukončením ("zabíjením") programu).

Správa paměti

Více na: Správa paměti

Kromě jiného musí být jádro operačního systému s více programy, programem odpovědným za správu všech systémových pamětí, které jsou v současné době používány. To zajistí, že program nenaruší paměť, kterou již používá jiný program. Vzhledem k tomu, že programy sdílejí čas, každý program musí mít nezávislý přístup k paměti.

Kooperativní správa paměti, používaná mnoha ranými operačními systémy, předpokládá, že všechny programy využívají správce paměti jádra a nepřekračují alokovanou paměť. Tento systém správy paměti není moc používán, protože programy často obsahují chyby, které mohou způsobit, že překročí alokovanou paměť. Pokud program selže, může dojít k ovlivnění nebo přepsání používané paměti. Škodlivé programy nebo viry mohou pozměnit data v paměť jiného programu nebo mohou ovlivnit provoz samotného operačního systému.

Ochrana paměti umožňuje jádru omezit přístup procesu k paměti počítače. Existují různé způsoby ochrany paměti, včetně segmentace paměti a stránkování. Všechny metody vyžadují určitou úroveň hardwarové podpory (například 80286 MMU), která ve všech počítačích neexistuje.

V segmentaci a stránkování, chráněný režim registrů určuje CPU, jakou adresu paměti má běžícím programům zpřístupnit. Pokusy o přístup k jiným adresám způsobují přerušení, které způsobí, že procesor znovu vstoupí do režimu supervizora a přesune jádro do primárního módu. Toto se nazývá porušení ochrany paměti (segmentation violation), zkráceně Seg-V, a protože je obtížné přiřadit k takové operaci smysluplný výsledek a jelikož je to obvykle známka chybného programu, jádro ukončí program, který se porušil předpisy a nahlásí chybu.

Windows verze 3.1 až ME měla jistou úroveň ochrany paměti, ale programy mohly snadno obcházet přiřazení potřebné paměti. Byla vytvořena obecná chyba ochrany, což naznačuje, že došlo k narušení segmentace. Systém i tak často spadnul.

Virtuální paměť

Více na: Virtuální paměť

Použití adresování virtuální paměti (jako je stránkování nebo segmentace) znamená, že jádro si může zvolit, jakou paměť může používat každý program v daném okamžiku, což umožňuje operačnímu systému používat stejné paměti pro více úkolů.

Pokud se program pokusí přistupovat k paměti, která není v dosavadním rozsahu dostupné paměti, ale přesto byla přidělena, je jádrem přerušen stejným způsobem, jako kdyby program překročil přidělenou paměť. (Viz část týkající se správy paměti.) Pod UNIXem se tento druh přerušení označuje jako chyba stránky.

Když jádro zjistí chybu stránky, obecně upraví rozsah virtuální paměti programu, který ji spustil, a poskytl jí přístup k požadované paměti. To dává jádru diskrétní pravomoc, kde je uložena paměť konkrétní aplikace, nebo dokonce, zda byla nebo nebyla dosud přidělena.

V moderních operačních systémech může být paměť, ke které se přistupuje méně často, dočasně uložena na disku nebo na jiném médiu, aby byl prostor dostupný pro jiné programy. Toto se nazývá výměna(swapping), protože oblast paměti může být používána více programy, a co tato paměťová oblast obsahuje, lze "swappnout" nebo vyměnit na požádání.

"Virtuální paměť" poskytuje programátorovi nebo uživateli pocit, že v počítači je mnohem větší množství operační paměti (RAM) než tam skutečně je.

Multitasking

Více na: Multitasking, Změna kontextu, Preempce (informatika)

Multitasking se týká provozování více nezávislých počítačových programů ve stejném počítači; což naznačuje, že provádí úkoly současně. Vzhledem k tomu, že většina počítačů může dělat nejvýše jednu nebo dvě věci najednou, je to obvykle prováděno prostřednictvím sdílení času, což znamená, že každý program používá ke spouštění část "času" počítače.

Jádro operačního systému obsahuje plánovací program, který určuje, kolik času každý proces využije při provádění a v jakém pořadí budou procesy prováděny. Řízení předává proces jádru, které dovoluje programu přístup k CPU a paměti. Později je kontrola vrácena do jádra pomocí nějakého mechanismu, takže může být povoleno použít jiný program CPU. Toto tzv. Předávání kontroly mezi jádrem a aplikacemi se nazývá kontextový přepínač.

Prvotní model, který řídil přidělování času na programy, se nazýval kooperativní multitasking.

Moderní operační systémy rozšiřují koncepty předběžné aplikace na ovladače zařízení a "jádrový" kód, takže operační systém má předběžnou kontrolu nad interními run-times.

Filozofií, která řídí předběžný multitasking, je zajistit, aby všechny programy byly na CPU poskytovány řádně. To znamená, že všechny programy musí být omezeny v tom, kolik času mohou trávit na CPU bez přerušení. Za tímto účelem využívají moderní jádra operačního systému časované přerušení. Časovač chráněného režimu je nastaven jádrem, které po uplynutí nastaveného času spouští návrat do režimu superuživatele. (Viz výše uvedené části o přerušení a provozu s duálním režimem.)

Na mnoha operačních systémech pro jednotlivé uživatele je kooperativní multitasking dokonale adekvátní, protože domácí počítače obecně provozují malý počet dobře testovaných programů. AmigaOS je výjimkou, která má předběžný multitasking od své první verze. Windows NT byla první verzí systému Microsoft Windows, která vynucovala předběžný multitasking, ale nedosáhla na trh s domácími uživateli, dokud nevyšel Windows XP (protože Windows NT byl zaměřen na profesionály).

Přístup k diskům a souborovým systémům

Více na: Virtuální souborový systém

Přístup k datům uloženým na discích je ústředním prvkem všech operačních systémů. Počítače uchovávají data na discích pomocí souborů, které jsou strukturovány specifickými způsoby, aby umožnily rychlejší přístup, vyšší spolehlivost a lépe využívaly dostupný prostor disku. Konkrétní způsob, jakým jsou soubory uloženy na disku, se nazývá souborový systém a umožňuje souborům mít jména a atributy. Umožňuje také ukládání do hierarchie adresářů nebo složek uspořádaných ve stromovém adresáři.

Včasné operační systémy obecně podporují jeden typ diskové jednotky a jediný druh souborového systému. Systémy časných souborů byly omezeny kapacitou, rychlostí a druhy názvů souborů a adresářových struktur, které by mohly používat. Tato omezení často odrážejí omezení v operačních systémech, pro které byly navrženy, a proto je pro operační systém velmi obtížné podporovat více než jeden souborový systém.

Zatímco mnoho jednodušších operačních systémů podporuje omezený rozsah možností pro přístup k úložným systémům, operační systémy jako UNIX a Linux podporují technologii známou jako virtuální souborový systém nebo VFS. Operační systém, jako je UNIX, podporuje širokou škálu paměťových zařízení, bez ohledu na jejich design nebo souborové systémy, což jim umožňuje přístup prostřednictvím společného aplikačního programovacího rozhraní (API). Tím je zbytečné, aby programy měly nějaké znalosti o zařízení, ke kterému přistupují. VFS umožňuje operačnímu systému poskytovat programy přístup k neomezenému počtu zařízení s nekonečnou řadou souborových systémů, které jsou na nich instalovány, pomocí konkrétních ovladačů zařízení a ovladačů souborového systému.

Připojené úložné zařízení, například pevný disk, je přístupné pomocí ovladače zařízení. Ovladač zařízení rozumí konkrétnímu jazyku jednotky a dokáže tento jazyk přeložit do standardního jazyka používaného operačním systémem pro přístup ke všem diskovým jednotkám. V systému UNIX je to jazyk blokových zařízení.

Pokud má jádro správný ovladač zařízení, pak může přistupovat k obsahu disku v syrovém formátu, který může obsahovat jeden nebo více souborových systémů. Ovladač souborového systému se používá k překládání příkazů používaných pro přístup ke každému konkrétnímu souborovému systému do standardní sady příkazů, které může operační systém používat ke komunikaci se všemi systémy souborů. Programy pak mohou zpracovávat tyto systémy souborů na základě názvů souborů a adresářů / složek obsažených v hierarchické struktuře. Mohou vytvářet, odstraňovat, otevírat a zavírat soubory, stejně jako shromažďovat různé informace o nich, včetně oprávnění k přístupu, velikosti, volného místa a údajů o vytvoření a úpravách.

Různé rozdíly mezi souborovými systémy ztěžují podporu všech souborových systémů. Povolené znaky v názvech souborů, citlivost případů a přítomnost různých druhů atributů souborů činí implementaci jediného rozhraní pro každý souborový systém náročnou úlohou. Operační systémy obvykle doporučují používat (a tak podporovat nativně) souborové systémy speciálně určené pro ně; například NTFS v systému Windows a ext3 a ReiserFS v Linuxu. Ovšem v praxi jsou většinou ovladače třetích stran k dispozici pro podporu nejpoužívanějších souborových systémů ve většině operačních systémů s obecným účelem (například NTFS je k dispozici v Linuxu přes NTFS-3g a ext2 / 3 a ReiserFS jsou k dispozici v systému Windows prostřednictvím softwaru třetí strany).

Podpora souborových systémů je mezi moderními operačními systémy velmi rozmanitá, i když existuje několik běžných souborových systémů, které téměř všechny operační systémy obsahují podporu a ovladače. Operační systémy se liší podle podpory souborového systému a formátů disků, na kterých mohou být nainstalovány. V systému Windows je každý systém souborů obvykle omezen v aplikaci na určitá média; například CD musí používat ISO 9660 nebo UDF a od systému Windows Vista je NTFS jediným souborovým systémem, na kterém může být nainstalován operační systém. Je možné instalovat Linux na mnoho typů souborových systémů. Na rozdíl od jiných operačních systémů umožňují Linux a UNIX používat libovolný souborový systém bez ohledu na médium, které je uloženo, ať už jde o pevný disk, disk (CD, DVD ...), USB flash disk v rámci souboru umístěného na jiném souborovém systému.

Ovladače zařízení

Více na: Ovladač zařízení

Ovladač zařízení je specifický typ počítačového softwaru výhradně pro umožnění interakce s hardwarovými zařízeními. Typicky se jedná o rozhraní pro komunikaci se zařízením přes počítačovou sběrnici nebo komunikační subsystém ("podsystém"), ke kterému je hardware připojen, poskytuje příkazy nebo přijímá data ze zařízení a na druhém konci rozhraní - z operačního systému a jeho softwarových aplikací (programů).

Prvotním cílem návrhu ovladačů zařízení je abstrakce. Každý model hardwaru (i v rámci "stejného" zařízení) je jiný. Novější modely jsou také vydávány výrobci, jelikož poskytují například vyšší spolehlivost nebo lepší výkon a tyto novější modely mají často odlišný způsob ovládání. Od počítačů a jejich operačních systémů nemůžeme očekávat, že budou ovládat všechny zařízení (periferie). K vyřešení tohoto problému operační systémy v podstatě "diktují", jak by mělo být ovládáno každé zařízení (periferie). Teoreticky by nové zařízení, které je řízeno odlišným způsobem, mělo fungovat správně, pokud je k dispozici vhodný ovladač. Tento nový ovladač zajišťuje, že zařízení (periferie) pracuje v souladu s operačním systémem.

Ve verzích systému Windows před verzí Vista a u operačního systému Linux před verzí 2.6 byla veškerá práce s ovladači kooperativní.

Sítě

Více na: Počítačová síť

Většina operačních systémů v současné době podporuje celou řadu síťových protokolů. To znamená, že počítače odlišnými operačními systémy mohou být napojeny na jednu společnou síť pro sdílení periferií, a to i počítačů, souborů, tiskáren a skenerů, a to buď pomocí kabelového nebo bezdrátového připojení. Sítě mohou v podstatě umožnit operačnímu systému počítače přístup k vzdálenému počítači. To zahrnuje vše od jednoduché komunikace až po používání síťových systémů, souborů nebo dokonce sdílení grafického nebo zvukového vybavení jiného počítače. Některé síťové služby umožňují transparentní přístup k prostředkům počítače, jako je SSH, který umožňuje uživatelům v síti přímý přístup k rozhraní formou příkazového řádku počítače.

Síť klient / server umožňuje programu v počítači, připojit se přes síť k jinému počítači nazvanému server. Servery nabízejí různé služby ostatním počítačům připojeným přes síť. Tyto služby jsou obvykle poskytovány prostřednictvím portů nebo očíslovaných přístupových bodů mimo IP adresu serveru. Každé číslo portu je obvykle přiděleno maximálně jednomu běžícímu programu, který je zodpovědný za zpracování požadavků na daném portu.

Mnoho operačních systémů podporuje jeden nebo více dodavatelských nebo otevřených síťových protokolů, jako například SNA v systémech IBM, DECnet na systémech od společnosti Digital Equipment Corporation a protokolů specifických pro Microsoft (SMB) v systému Windows. Mohou být podporovány také specifické protokoly pro konkrétní úkoly, jako například NFS (Network File System) pro přístup k souborům. Protokoly jako ESound nebo esd lze snadno nahrát na síť, aby poskytovaly zvuk z lokálních aplikací na zvukovém hardwaru vzdáleného zařízení.

Bezpečnost

Více na: Počítačová bezpečnost

Bezpečnost počítače, závisí na správném fungování mnoha technologií.

Operační systém musí být schopen rozlišovat žádosti, které se mají provést a žádosti které by se měli zamítnout. Zatímco některé systémy mohou jednoduše rozlišovat mezi "privilegovanými" a "ne privilegovanými", tak ostatní musí rozlišovat na základě některých údajů například uživatelské jméno. Ke kontrole totožnosti může existovat proces autentizace. Ve většině případů probíhá proces autentizace formou zadání uživatelského jména popřípadě hesla. Jsou i jiné možnosti autentizace jako například: magnetické karty nebo biometrické údaje (otisky prstů, snímání oční duhovky). Některé aplikace mohou být omezeny pro některé uživatele i po jejich autentizaci a to z důvodu nedostatečných práv.

Externí zabezpečení zahrnuje žádost mimo počítač, například přihlášení na připojené konzoli nebo nějaké síťové připojení. Externí požadavky jsou často předávány prostřednictvím ovladačů zařízení k jádru operačního systému, kde mohou být předávány přímo do aplikací nebo prováděny přímo. Bezpečnost operačních systémů je již dlouho velké téma jelikož na počítačích uchováváme i dost citlivé informace, a to jak komerční, tak vojenské.

Síťové služby zahrnují nabídky jako sdílení souborů, tiskové služby, e-mail, webové stránky a protokoly přenosu souborů (FTP), většina těchto služeb může znamenat bezpečnosti "díru". Základním systémovým zabezpečením je "firewall". Na úrovni operačního systému je k dispozici řada firewallů, antivirů a pod. Většina moderních operačních systémů obsahuje firewall, který je v základním nastavení PC zapnut. Firewall může být nastaven tak, aby blokoval určitý typ síťové komunikace, nebo například i některé softwary běžící na operačním systému. Proto je možné instalovat a používat nezabezpečenou síťovou službu, jako je například Telnet nebo FTP a nemusíme se bát nežádaného narušení, jelikož zapnutá brána firewall zablokuje všechnu nevyžádanou komunikaci na daném portu.

Interní zabezpečení v systémech je důležité při práci více uživatelů na jednom zařízení, na příklad umožňuje každému uživateli mít soukromé soubory, se kterými ostatní uživatelé nemohou manipulovat, upravovat nebo i číst.

Uživatelské rozhraní (Shell)

Více na: Shell

Každý počítač, který má být ovládán uživatelem, vyžaduje uživatelské rozhraní. Uživatelské rozhraní je obvykle označováno jako shell a je nezbytné, pokud má se zařízením pracovat uživatel. Dvě nejčastější uživatelské rozhraní jsou rozhraní příkazového řádku (dnes už není skoro k vidění), kde jsou napsány příkazy počítače po řádcích a grafické uživatelské rozhraní, kde je přítomno vizuální prostředí (nejčastěji WIMP).

Většina moderních počítačových systémů podporuje grafické uživatelské rozhraní (GUI - "Graphical user interface"). V některých počítačových systémech, jako například u operačního systému Mac OS, je grafické rozhraní integrováno do jádra OS.

Grafické rozhraní se z technického hlediska nedá bát jako operační systém začleněný do podpory jádra OS který může umožnit, aby bylo grafické rozhraní více "citlivé" tím, že sníží počet kontextových přepínačů (context switch) potřebných pro výstupní funkce rozhraní. Jiné operační systémy jsou modulární, oddělují grafický subsystém od jádra a operačního systému. V osmdesátých letech UNIX, VMS a mnoho dalších měli operační systémy, které byly postaveny tímto způsobem. Linux a macOS jsou také postaveny tímto způsobem. Verze operačního systému Microsoft Windows, jako je Windows Vista, implementují grafický subsystém.

Mnoho operačních systémů podporují uživatele v instalovaní nebo vytvářet uživatelských rozhraní dle jejich představ. Systém X Window ve spojení s GNOME nebo KDE Plasma 5 je běžně instalovaným systémem na většině systémů Unix (BSD, Linux, Solaris). V systému Microsoft Windows byla vydána řada změn v shellu - v systému Windows, které nabízejí alternativy k zahrnutému shellu systému Windows, ale samotný shell nelze oddělit od systému Windows.

Grafické uživatelské rozhraní se neustále vyvíjí. Například systém Windows změnil své uživatelské rozhraní téměř vždy při vydání nové hlavní verze systému Windows a grafické uživatelské rozhraní Mac OS se v roce 1999 dramaticky změnilo zavedením systému Mac OS X.

Operační systém reálného času (Real-time operating systems)

Více na: Operační systém reálného času

Operační systém reálného času (RTOS) je operační systém určený pro aplikace s pevnými lhůtami (výpočty v reálném čase). Mezi takové aplikace patří některé malé vestavěné systémy, regulátory automobilových motorů, průmysloví roboti, kosmické lodě, průmyslová kontrola a některé rozsáhlé výpočetní systémy.

Prvním příkladem rozsáhlého operačního systému reálného času byla Transaction Processing Facility vyvinutá společnostmi American Airlines a IBM pro Saber Airline Reservations System.

Vestavěné systémy s pevnými termíny používají operační systém reálného času jako jsou VxWorks, PikeOS, eCos, QNX, MontaVista Linux a RTLinux. Windows CE je operační systém pracující v reálném čase. Symbian OS má také RTOS jádro (EKA2) od verze 8.0b.

Některé vestavěné systémy používají operační systémy jako Palm OS, BSD a Linux, ačkoli tyto operační systémy nepodporují výpočet v reálném čase.

Vývoj operačního systému jako hobby

Vývoj operačního systému je jednou z nejkomplikovanějších aktivit, do které se může počítačový fanoušek zapojit. Takovýto operační systém může být klasifikován jako ten, jehož kód nebyl přímo odvozený od existujícího operačního systému a má málo uživatelů a aktivních vývojářů.

V některých případech, je "hobby vývoj" považován jako podpora podomácku sestaveného počítače, například jednoduchý jednodeskový počítač poháněný mikroprocesorem 6502. Tento vývoj může mít široké využití pro různé architektury. Vývoj operačního systému může pocházet ze zcela nových nápadů, nebo může být zahájen upravováním stávajícího operačního systému. V obou případech je fanoušek jeho vlastním vývojářem, nebo může spolupracovat s malou, neorganizovanou skupinou lidí, kteří mají podobné zájmy.

Mezi příklady takového operačního systému patří Syllable.

Rozmanitost operačních systémů a přenositelnost

Aplikační software je obecně psán pro použití v konkrétním operačním systému a někdy dokonce i pro konkrétní hardware. Při přenosu aplikace na jiný operační systém mohou být funkce vyžadované touto aplikací implementovány odlišně tímto systémem (názvy funkcí, význam argumentů apod.), Které vyžadují úpravu, změnu nebo jinou údržbu aplikace.

Unix byl první operační systém, který nebyl napsán v assemblerovém jazyce, takže je velmi přenosný pro systémy odlišné od jeho původního PDP-11.

Tato cena při podpoře rozmanitosti operačních systémů může být vyloučena tím, že aplikace namísto zápisu do softwarových platforem, jako je Java nebo Qt. Tyto abstrakce již vznášely náklady na přizpůsobení konkrétním operačním systémům a jejich systémovým knihovnám.

Dalším přístupem je, aby dodavatelé operačních systémů přijali standardy. Například vrstvy abstrakce POSIX a OS poskytují společné funkce, které snižují náklady na přenos.

Stavba operačního systému

Operační systém se skládá z jádra (též označovaného jako kernel) a pomocných systémových nástrojů.

Jádro je základním kamenem operačního systému. Zavádí se do operační paměti počítače při startu a zůstává v činnosti po celou dobu běhu operačního systému. Jádro může být naprogramováno různými způsoby a podle toho rozeznáváme:

  • monolitické jádro – jádro je jedním funkčním celkem
  • mikrojádro – jádro je velmi malé a všechny oddělitelné části pracují samostatně jako běžné procesy
  • hybridní jádro – kombinuje vlastnosti monolitického jádra i mikrojádra
Související informace naleznete také ve článku Kernel.

Grafické uživatelské rozhraní

Dnes již většina moderních operačních systémů obsahuje grafické uživatelské rozhraní. V některých systémech je přímo integrované v jádru systému – například v původní implementaci MS Windows a Mac OS byl grafický podsystém ve skutečnosti částí jádra. Jiné operační systémy, jak starší, tak novější, jsou modulární – oddělují grafický podsystém od jádra a operačního systému. Již v roce 1980 existovaly systémy UNIX, VMS a mnoho jiných, které byly vybudovány právě tímto způsobem. Dnes na tomto principu funguje také Linux a macOS.

Mnoho OS umožňuje uživateli nainstalovat nebo vytvořit grafické rozhraní podle jeho požadavků. X Window System, ve spojení s GNOME nebo KDE, je běžně dostupný pro většinu UN*Xových systémů. Mnohá na Unixu založená grafická uživatelská rozhraní existují již delší dobu, většinou jsou zděděná od X11. Soutěžení mezi různými prodejci Unixu (HP, IBM, Sun) vedlo k mnoha rozdílům, což způsobilo selhání snahy o standardizaci podle COSE a CDE v 90. letech 20. století.

Grafická uživatelská rozhraní se postupem času vyvíjejí. Například Windows modifikuje své GUI vždy, když je vydána nová verze, a rozhraní Mac OS bylo dramaticky změněno s příchodem Mac OS X v roce 1999.

Vymezení operačního systému

Do operačního systému obvykle zahrnujeme i základní systémové nástroje, které slouží ke správě počítače (formátování disků, kontrola integrity souborového systému, nastavení systémového času a podobně). Některé doplňující aplikace se však těmto nástrojům velmi blíží nebo je dokonce nahrazují (například součástí Microsoft Windows není diagnostika pevných disků, detailní nástroj na sledování procesů a dalších interních pochodů v systému apod.), a proto není vždy možné systémové nástroje a aplikace jednoznačně rozlišit.

Aplikace a jádro operačního systému můžeme rozlišit podle výše uvedených základních funkcí operačního systému nebo podle toho, jestli je daný spuštěný proces zpracováván v uživatelském nebo jaderném režimu (viz privilegovaný režim).

U operačních systémů s monolitickým jádrem (např. unixové systémy) je jasná hranice mezi systémovým voláním, knihovnami a procesy. Například souborový systém je u nich typická součást operačního systému. Naopak systémy s mikrojádrem (např. systémy Windows NT) tuto hranici jasnou nemají, protože výše zmíněná obsluha souborového systému je zde realizována jako samostatný proces v uživatelském prostoru (tzv. serverem).

Windows API slučuje systémová volání, ovládání uživatelského rozhraní i různé knihovní funkce, takže je obtížné rozpoznat, co je knihovní funkce a co je obdoba systémového volání monolitického jádra.

Vlastní uživatelské rozhraní počítače (příkazový řádek, textové nebo grafické) není obvykle do operačního systému zahrnováno. Nicméně je možné kvůli zvýšení výkonu některé typicky aplikační úkoly přenést do jádra operačního systému (například webový server, grafické uživatelské rozhraní, akcelerované funkce grafických karet apod.).

Tržní podíl operačních systémů na stolních počítačích

Operační systém 2009[2] 2010[3] 2011[4] 2012[5] 2013[6] 2014[7] 2015[8] 2016[9] 2017[10]
Windows 94,05 % 93,73 % 93,06 % 92,02 % 91,34 % 91,27 % 91,06 % 90,41 % 91,6 %
macOS 4,91 % 5,25 % 5,87 % 6,81 % 7,27 % 7,17 % 7,36 % 7,58 % 6,26 %
Linux 1,01 % 1,00 % 1,06 % 1,16 % 1,38 % 1,55 % 1,57 % 2,00 % 2,15 %
Ostatní 0,03 % 0,03 % 0,00 % 0,00 % 0,00 % 0,00 % 0,00 % 0,00 % 0,00 %

Reference

V tomto článku byl použit překlad textu z článku Operating system na anglické Wikipedii.

  1. KOLÁŘ, Petr. Operační systémy [online]. Liberec: 2005-02-01 [cit. 2008-09-07]. Dostupné online. 
  2. [1]
  3. [2]
  4. [3]
  5. [4]
  6. [5]
  7. [7 http://www.netmarketshare.com/report.aspx?qprid=8&qptimeframe=Y&qpsp=2014&qpch=350&qpmr=100&qpdt=1&qpct=3&qpcustomd=0&qpcid=fw795&qpf=1]
  8. [8 http://www.netmarketshare.com/report.aspx?qprid=8&qptimeframe=Y&qpsp=2015&qpch=350&qpmr=100&qpdt=1&qpct=3&qpcustomd=0&qpcid=fw795&qpf=1]
  9. Market share for mobile, browsers, operating systems and search engines | NetMarketShare. www.netmarketshare.com [online]. [cit. 2017-07-30]. Dostupné online. 
  10. Market share for mobile, browsers, operating systems and search engines | NetMarketShare. www.netmarketshare.com [online]. [cit. 2017-07-30]. Dostupné online. 

Související články

 
Tento článek je převzat z české wikipedie - otevřené encyklopedie, originální článek naleznete na adrese: „https://cs.wikipedia.org/w/index.php?title=Operační_systém&oldid=16753360
Stránka byla naposledy upravena 6. 12. 2018 v 08:02. Editovat celý článek Operační systém.
Text je dostupný pod licencí Creative Commons Uveďte autora – Zachovejte licenci 3.0 Unported, případně za dalších podmínek. Podrobnosti naleznete na stránce Podmínky užití.
Další služby: Portál | Katalog | Hledej | Zprávy | Počasí | Kurzy | Práce | Slovník | TV | Online hry | Java hry | SMS | Loga a melodie | Chat | Fórum | Kontakt | Set-top-boxy