Wikipedista:PablaCZ/Pískoviště3

Z Wikipedie, otevřené encyklopedie

Komponenty[editovat | editovat zdroj]

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)[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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í[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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ěť[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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í[editovat | editovat zdroj]

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

Ovladač zařízení je specifický typ počítačového softwaru vyvinutého pro umožnění interakce s hardwarovými zařízeními. Typicky to představuje rozhraní pro komunikaci se zařízením přes konkrétní počítačovou sběrnici nebo komunikační subsystém, ke kterému je hardware připojen, poskytující příkazy a / nebo přijímání dat ze zařízení a na druhém konci potřebná rozhraní k operačnímu systémových a softwarových aplikací. Jedná se o specializovaný počítačový program, který je také specifický pro operační systém, který umožňuje jinému programu, obvykle operačnímu systému nebo aplikačnímu softwarovému balíčku nebo počítačovému programu spuštěnému pod jádrem operačního systému, transparentně komunikovat s hardwarovým zařízením a obvykle poskytuje potřebná manipulace s přerušeními nutná pro všechny potřebné asynchronní časově závislé požadavky na rozhraní hardwaru.

Klíčovým cílem návrhu ovladačů zařízení je abstrakce. Každý model hardwaru (i v rámci stejné třídy zařízení) je jiný. Novější modely jsou také vydávány výrobci, kteří poskytují spolehlivější nebo lepší výkon a tyto novější modely jsou často ovládány odlišně. Od počítačů a jejich operačních systémů nelze očekávat, že budou ovládat všechna zařízení, a to jak nyní, tak i v budoucnosti. K vyřešení tohoto problému operační systémy v podstatě diktují, jak by měl být řízen každý typ zařízení. Funkce ovladače zařízení pak převede tyto funkční volání do operačního systému, do hovorů specifických pro zařízení. Teoreticky by nové zařízení, které je řízeno novým způsobem, mělo fungovat správně, pokud je k dispozici vhodný ovladač. Tento nový ovladač zajišťuje, že se zdá, že zařízení funguje jako obvykle z hlediska operačního systému.

Ve verzích systému Windows před verzí systému Windows a verzích Linux před verzí 2.6 byla veškerá práce s ovladači kooperativní, což znamená, že pokud řidič vstoupil do nekonečné smyčky, zmrazil by systém. Novější verze těchto operačních systémů zahrnují předběžnou výjimku jádra, kde jádro přerušuje ovladač, aby mu dělal úkoly, a poté se oddělí od procesu, dokud neobdrží odpověď z ovladače zařízení nebo mu udělí více úkolů.

XXX Pepa XXX

Operační systém reálného času[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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.

Zdroj:https://en.wikipedia.org/wiki/Operating_system#Components