Operační systém , zkr. OS ( anglicky operační systém, OS ) je komplex vzájemně propojených programů určených ke správě počítačových zdrojů a organizaci uživatelské interakce.
V logické struktuře typického výpočetního systému zaujímá operační systém pozici mezi zařízeními s jejich mikroarchitekturou, strojovým jazykem a případně jejich vlastními (vestavěnými) mikroprogramy (ovladači) na jedné straně a aplikačními programy na straně druhé.
Vývojářům softwaru umožňuje operační systém abstrahovat od detailů implementace a provozu zařízení a poskytuje minimální nezbytnou sadu funkcí (viz: rozhraní pro programování aplikací ).
Ve většině počítačových systémů je operační systém hlavní, nejdůležitější (a někdy i jedinou) součástí systémového softwaru . Od 90. let 20. století jsou nejběžnějšími operačními systémy Windows , Unix a systémy podobné UNIXu .
Za předchůdce operačních systémů je třeba považovat obslužné programy (zavaděče a monitory), stejně jako knihovny často používaných podprogramů , které se začaly vyvíjet s příchodem sálových počítačů 1. generace (konec 40. let 20. století ). Obslužné programy minimalizovaly fyzickou manipulaci operátora se zařízením a knihovny umožnily vyhnout se opakovanému programování stejných akcí (provádění I/O operací , výpočty matematických funkcí atd.).
V 50. a 60. letech byly formovány a implementovány hlavní myšlenky, které určovaly funkčnost operačního systému: dávkový režim , sdílení času a multitasking, oddělení pravomocí, reálný čas, struktury souborů a systémy souborů .
Potřeba optimálního využití drahých výpočetních zdrojů vedla ke vzniku konceptu „dávkového režimu“ provádění programu. Dávkový režim předpokládá existenci fronty programů ke spuštění a systém dokáže zajistit nahrání programu z externích datových nosičů do RAM bez čekání na dokončení provedení předchozího programu, čímž se zabrání prostojům procesoru.
I dávkový režim ve své pokročilé verzi vyžaduje rozdělení času procesoru mezi provádění několika programů.
Potřeba sdílení času (multitasking, multiprogramování) se stala ještě silnější s rozšířením dálnopisů (a později terminálů s katodovými paprsky) jako vstupně-výstupních zařízení ( 60. léta 20. století ). Vzhledem k tomu, že rychlost zadávání dat z klávesnice (a dokonce i čtení z obrazovky) operátorem je mnohem nižší než rychlost zpracování těchto dat počítačem, používání počítače v „exkluzivním“ režimu (s jedním operátorem) by mohlo vést k výpadkům drahé výpočetní prostředky.
Time-sharing umožnil vytvoření „víceuživatelských“ systémů, ve kterých byla k mnoha terminálům připojena jedna (obvykle) centrální procesorová jednotka a blok RAM. Současně lze některé úlohy (jako je zadávání nebo editace dat operátorem) provádět v dialogovém režimu, zatímco jiné úlohy (jako masivní výpočty) lze provádět v dávkovém režimu.
Rozšíření víceuživatelských systémů si vyžádalo vyřešení problému dělby moci, což umožňuje vyhnout se možnosti záměny spustitelného programu nebo dat jednoho programu v paměti počítače jiným programem (úmyslně či omylem) , stejně jako změna samotného systému aplikačním programem .
Implementaci oddělení pravomocí v operačních systémech podpořili vývojáři procesorů, kteří navrhli architektury se dvěma provozními režimy procesoru – „skutečný“ (ve kterém je spustitelný program k dispozici celý adresní prostor počítače) a „chráněný“ (ve kterém dostupnost adresního prostoru je omezena na rozsah přidělený při spuštění programu).
Využití univerzálních počítačů pro řízení výrobních procesů vyžadovalo implementaci „real time scale“ („real time“) – synchronizace provádění programu s vnějšími fyzickými procesy.
Zařazení funkce škálování v reálném čase umožnilo vytvářet řešení, která současně slouží výrobním procesům a řeší další úkoly (v dávkovém režimu a/nebo v režimu sdílení času).
Postupné nahrazování médií se sekvenčním přístupem ( děrné pásky , děrné štítky a magnetické pásky ) za mechaniky s náhodným přístupem ( magnetické disky ).
Souborový systém je způsob ukládání dat na externí úložná zařízení.
Hlavní funkce:
Další funkce:
Existují dvě skupiny definic operačního systému: „soubor programů, které řídí hardware“ a „soubor programů, které řídí jiné programy“. Oba mají svůj přesný technický význam, který souvisí s otázkou, v jakých případech je vyžadován operační systém.
Existují výpočetní aplikace, pro které jsou operační systémy redundantní. Například vestavěné mikropočítače , obsažené v mnoha domácích spotřebičích, autech (někdy jich je v každém tucet), nejjednodušších mobilních telefonech, neustále provádějí pouze jeden program, který se spustí po zapnutí. Mnoho jednoduchých herních konzolí - také specializovaných mikropočítačů - se obejde bez operačního systému a po zapnutí spouští program uložený na vložené "cartridge" nebo CD .
Potřebné operační systémy:
Moderní univerzální operační systémy lze tedy charakterizovat především jako:
Multitasking a rozdělení pravomocí vyžaduje určitou hierarchii oprávnění komponent v samotném operačním systému. Operační systém se skládá ze tří skupin komponent:
Většina programů, jak systémových (obsažených v operačním systému), tak aplikačních programů, se spouští v neprivilegovaném ("uživatelském") režimu procesoru a získává přístup k hardwaru (a v případě potřeby k dalším zdrojům jádra a také zdroje jiných programů) pouze prostřednictvím systémových volání . Jádro běží v privilegovaném režimu: v tomto smyslu se říká, že systém (přesněji jeho jádro) řídí hardware.
Při určování složení operačního systému je důležité kritérium provozní integrity (uzavření): systém musí umožňovat plné využití (včetně modifikace) jeho součástí. Kompletní složení operačního systému proto zahrnuje sadu nástrojů (od textových editorů po kompilátory, debuggery a linkery).
Jádro je centrální částí operačního systému, která řídí provádění procesů , zdroje výpočetního systému a poskytuje procesům koordinovaný přístup k těmto zdrojům. Hlavními zdroji jsou čas procesoru , paměť a I/O zařízení . Přístup k souborovému systému a síťové propojení lze také implementovat na úrovni jádra.
Jako základní prvek operačního systému představuje jádro nejnižší úroveň abstrakce pro aplikace pro přístup k prostředkům výpočetního systému nezbytným pro jejich provoz. Jádro zpravidla poskytuje takový přístup ke spustitelným procesům odpovídajících aplikací pomocí mechanismů meziprocesové komunikace a volání aplikací do systémových volání OS.
Popsaná úloha se může lišit v závislosti na typu architektury jádra a způsobu její implementace.
Objekty jádra OS:
Do konce 60. let vytvořil průmysl a vědecká a vzdělávací komunita řadu operačních systémů, které implementují všechny nebo část funkcí popsaných výše. Patří mezi ně Atlas ( University of Manchester ), CTTSa ITS( Massachusetts Institute of Technology , MIT), THE ( Eindhoven University of Technology ), RS4000 ( Aarhus University ) a další (v provozu bylo více než sto různých OS).
Nejpokročilejší operační systémy, jako OS/360 ( IBM ), SCOPE ( CDC ) a Multics ( MIT a Bell Labs ), které byly dokončeny v 70. letech 20. století , umožňovaly běh na víceprocesorových počítačích.
Eklektický charakter vývoje operačních systémů vedl k nárůstu krizových jevů, souvisejících především s přílišnou složitostí a velikostí vytvářených systémů. Systémy byly špatně škálovatelné (jednodušší nedokázaly využít všechny možnosti velkých výpočetních systémů; vyvinutější nebyly na malých optimálně spouštěny nebo na nich nebylo možné spustit vůbec) a vzájemně zcela nekompatibilní, jejich vývoj a zdokonalování byl zpožděn.
Operační systém UNIX (původně UNICS, který hrál pod názvem Multics), který v roce 1969 navrhl a implementoval Ken Thompson s pomocí několika kolegů (včetně Dennise Ritchieho a Briana Kernighana ), absorboval mnoho funkcí dřívějších systémů, ale měl řadu vlastnosti, které jej odlišovaly od většiny předchůdců:
UNIX si díky své pohodlnosti především jako nástrojové prostředí (vývojové prostředí) získal oblibu nejprve na univerzitách a poté v průmyslu, který získal prototyp jediného operačního systému, který by bylo možné použít na nejrůznějších výpočetních systémech a navíc , lze rychle a s minimálním úsilím přenést na jakoukoli nově vyvinutou hardwarovou architekturu.
Na konci 70. let provedli zaměstnanci Kalifornské univerzity v Berkeley řadu vylepšení zdrojového kódu UNIX, včetně zpracování protokolů TCP/IP . Jejich vývoj vešel ve známost jako BSD (Berkeley Software Distribution).
Richard Stallman , zakladatel projektu GNU , si také stanovil za úkol vyvinout nezávislou implementaci stejné architektury (podle autorských práv Bell Labs) .
Vzhledem ke konkurenceschopnosti implementací se architektura UNIX nejprve stala de facto oborovým standardem a poté získala status právní normy - ISO / IEC 9945 [1] (POSIX).
Název UNIX mohou používat pouze systémy, které jsou v souladu se specifikací Single UNIX . Tyto systémy zahrnují AIX , HP-UX , IRIX , Mac OS X , SCO OpenServer , Solaris , Tru64 az /OS .
Operační systémy, které se řídí standardem POSIX nebo se na něj spoléhají, se označují jako „vyhovující POSIX“ (výraz „ UNIX-like “ nebo „ UNIX family “ je běžnější, ale je v rozporu se statusem ochranné známky „ UNIX “, vlastněné společností Konsorcium Open Group a vyhrazené pro označení pouze pro operační systémy přísně dodržující standard). Shoda se standardem je certifikována za poplatek, což způsobuje, že některé systémy neprojdou tímto procesem, ale jsou samy o sobě považovány za vyhovující POSIX.
Operační systémy podobné UNIXu zahrnují operační systémy založené na nejnovější verzi UNIX vydané Bell Labs ( System V ), na vývoji University of Berkeley ( FreeBSD , OpenBSD , NetBSD ), založené na Solaris ( OpenSolaris , BeleniX , Nexenta OS ), stejně jako Linux .vyvinutý z hlediska utilit a knihoven projektem GNU a z hlediska jádra komunitou vedenou Linusem Torvaldsem .
Standardizace operačních systémů má za cíl zjednodušit výměnu samotného systému nebo zařízení s vývojem výpočetního systému nebo sítě a zjednodušit přenos aplikačního softwaru (přísné dodržování standardu znamená plnou kompatibilitu programů na úrovni zdrojového kódu; k profilování standardu a jeho vývoji jsou ještě nutné některé změny, ale portování programu mezi systémy kompatibilními s POSIX je řádově levnější než mezi alternativními), stejně jako kontinuita uživatelské zkušenosti.
Nejpozoruhodnějším efektem existence tohoto standardu bylo efektivní zavedení internetu v 90. letech 20. století .
Tým, který vytvořil UNIX, vyvinul koncept sjednocení objektů operačního systému zahrnutím procesů a jakýchkoli dalších systémových, síťových a aplikačních služeb do původního konceptu UNIX „zařízení je také soubor“, čímž vytvořil nový koncept: „cokoli je soubor “. Tento koncept se stal jedním ze základních principů systému Plan 9 (název byl převzat ze sci-fi thrilleru Plan 9 from Outer Space od Edwarda Wooda Jr. ), který byl navržen tak, aby překonal základní chyby designu UNIX a nahradil UNIX System V. "workhorse" na počítačích v síti Bell Labs v roce 1992 .
Kromě implementace všech systémových objektů ve formě souborů a jejich umístění do jednoho a osobního prostoru (namespace) pro každý terminál počítačové sítě byla revidována další UNIXová architektonická řešení. Například v plánu 9 není žádný koncept „superuživatele“, a proto jsou vyloučena jakákoli porušení bezpečnostního režimu spojená s nezákonným získáním práv superuživatele v systému. Pro reprezentaci (ukládání, výměnu) informací vyvinuli Rob Pike a Ken Thompson univerzální kódování UTF-8 , které se dnes stalo de facto standardem. Pro přístup k souborům se používá jediný univerzální protokol 9P, který funguje přes síťový protokol (TCP nebo UDP) po síti. Neexistuje tedy síť pro aplikační software – přístup k místním a vzdáleným souborům je stejný. 9P je bajtově orientovaný protokol, na rozdíl od jiných podobných protokolů, které jsou blokově orientované. To je také výsledek konceptu: přístup bajt po bajtu k jednotným souborům, a ne přístup blok po bloku k různým zařízením, která se s rozvojem technologií výrazně mění. Pro řízení přístupu k objektům není vyžadováno žádné jiné řešení, kromě řízení přístupu k souborům, které již v operačním systému existuje. Nová koncepce úložného systému osvobodila správce systému od zdlouhavé práce s údržbou archivů a předpokládaných moderních systémů verzování souborů.
Operační systémy založené nebo inspirované UNIXem, jako je celá rodina BSD a linuxové systémy, postupně přejímají nové myšlenky z Bell Labs. Možná mají tyto nové nápady velkou budoucnost a uznání IT vývojářů.
Nové koncepty použil Rob Pike v Infernu .
Na základě plánu 9 ve Španělsku jsou vyvíjeny systémy Off ++ a Plan B , které mají experimentální povahu.
Snahy o vytvoření post-UNIX architektury mohou také zahrnovat vývoj programovacího jazyka a operačního prostředí Oberon na ETH Zurich pod vedením profesora Niklause Wirtha .
Operační systémy | |||||
---|---|---|---|---|---|
Pro servery nebo pracovní stanice |
| ||||
Vložené | |||||
jiný |
operačních systémů | Aspekty|||||
---|---|---|---|---|---|
| |||||
Typy |
| ||||
Jádro |
| ||||
Řízení procesů |
| ||||
Správa a adresování paměti |
| ||||
Nástroje pro načítání a inicializaci | |||||
skořápka | |||||
jiný | |||||
Kategorie Wikimedia Commons Wikibooks Wikibooks |