thumb|Pozícia operačného systému v počítači. Operačný systém (OS) je softvér, ktorý spravuje zdroje počítača a poskytuje programom rozhranie na prístup k týmto zdrojom. Operačný systém tiež spracúva systémové dáta a vstupy od používateľa a odpovedá alokovaním a spravovaním úloh a interných zdrojov počítača ako služby pre užívateľa. OS vykonáva základné úlohy ako kontrola a alokovanie pamäte, pridelenie priority sykontrola vstupných a výstupných zariadení, umožnenie pripojenia do siete a správa súborov. Operačné systémy môžeme nájsť takmer vo všetkom, čo obsahuje integrované obvody, od osobných počítačov, cez internetové servery, mobilné telefóny, hudobné prehrávače, routre, switche, herné konzoly, digitálne kamery, až po šijacie stroje či teleskopy.
Vo väčšine prípadov operačný systém nie je prvým kódom, ktorý sa spúšťa v počítači pri bootovaní. Inicializačný kód, vykonávaný v počítači, je zvyčajne nahratý z firmvéru, ktorý je uložený vo Flash ROM, niekedy označovaný aj ako BIOS alebo boot ROM. Firmvér nahrá a spustí jadro operačného systému (zvyčajne z disku, niekedy aj cez sieť) a zobrazí prvý grafický alebo textový výstup, ktorý užívateľ uvidí.
Najbežnejšie súčasné desktopové operačné systémy sú Microsoft Windows, macOS, Linux, FreeBSD a Solaris. Windows je najpopulárnejší desktopový OS, pričom Linux je najpoužívanejší v serverových prostrediach. Linux, Mac OS X aj Microsoft Windows majú všetky nielen osobné, ale aj serverové varianty. S výnimkou MS Windows, dizajny všetkých spomenutých operačných systémov boli inšpirované, alebo priamo zdedené, z operačného systému Unix. Unix bol vyvinutý v Bell Labs v 60. rokoch a bol základom vzniku mnohých voľných, ale aj komerčných operačných systémov.
Delenie OS:
Podľa počtu používateľov (jedno alebo viac-používateľské)
Podľa režimu, v ktorom pracuje (grafický alebo textový)
Podľa počtu úloh, ktoré dokáže vykonávať "súčasne" (jedno alebo viacúlohový (multitasking))
Základné technológie Operačný systém je súbor technológií, ktoré boli navrhnuté, aby umožnili počítaču vykonávať určité funkcie. Tieto technológie môžu (ale aj nemusia) byť prítomné v každom OS, a často sa vyskytujú rozdiely v ich implementácii. Avšak, ako bolo spomenuté vyššie, väčšina súčasných moderných operačných systémov bola odvodená od rovnakých predchodcov, a tak sú v základe podobné.
Vykonávanie programu Najbežnejšia funkcia operačného systému je podpora aplikácií spustených užívateľom. Na operačných systémoch s podporou multiprogramovania, sú bežiace programy označované ako procesy. Správa procesov využíva prostriedky poskytované operačným systémom na umožnenie vytvorenia, vykonania a ukončenia procesov, a zabezpečenie rôznych interakcií. Túto funkcionalitu zabezpečuje jadro operačného systému v spojení s príslušným hardvérom.
Vykonanie programu zahŕňa vytvorenie procesu operačným systémom. Jadro vytvorí proces a buď ho odloží na neskoršie použitie, alebo mu alokuje určitú časť pamäte, nahrá programový kód z disku alebo inej časti pamäte do novo-alokovanej oblasti a spustí jeho beh. Jadro OS ukladá rôzne informácie o bežiacich procesoch. Medzi tieto informácie môže patriť: Jedinečný identifikátor, nazývaný identifikátor procesu (PID) Zoznam pamäte, ktorú program používa, alebo má k nej povolený prístup PID programu, ktorý vyžiadal jeho spustenie, alebo ID rodičovského procesu Meno súboru resp. cesta z ktorej bol program nahratý Súbor registra, obsahujúci posledné hodnoty všetkých CPU registrov Program counter – počítadlo ukazujúce na aktuálnu pozíciu v programe
Prerušenia Prerušenia sú ústrednou časťou operačného systému a umožňujú mu vysporiadať sa s neočakávanými aktivitami bežiacich programov. Sú základnou formou, akou operačný systém prideľuje čas bežiacim procesom a bývajú priamo podporované väčšinou vyrábaných CPU. Prerušenia poskytujú počítaču spôsob, ako automaticky spustiť určitý kód ako odpoveď na rôzne udalosti. Dokonca aj veľmi jednoduché počítače podporujú hardwarové prerušenia, a umožňujú tak programátorovi špecifikovať kód, ktorý sa má vykonať keď nastane určitá udalosť.
Keď dôjde k prerušeniu, hardware počítača automaticky zastaví bežiaci program a uloží jeho registre a program counter (ukazovateľ aktuálnej pozície v programe). Je možné si to predstaviť ako uloženie záložky do knižky, keď čitateľa preruší telefonát.
V moderných operačných systémoch sú prerušenia spracúvané jadrom operačného systému. Prerušenie môže prísť buď od hardvéru počítača, alebo od bežiaceho programu. Keď nejaké hardvérové zariadenie vyvolá prerušenie, jadro operačného systému sa rozhodne, ako s touto udalosťou naloží, vo všeobecnosti ako reakciu buď spustí nejaký kód, alebo udalosť odignoruje. Spracovanie hardvérových prerušení je úloha, ktorá je zvyčajne pridelená programu nazývaný ovládač zariadenia, ktorý môže byť súčasťou operačného systému, alebo iného programu, alebo oboje. Ovládače potom môžu ďalej predať informáciu bežiacemu programu rôznymi spôsobmi.
Program môže tiež vyvolať prerušenie v operačnom systéme. Napríklad keď chce pristúpiť k hardvéru počítača, môže vyvolať prerušenie, čo spôsobí odovzdanie kontroly jadru operačného systému. To potom vykoná požiadavku, ktorá obsahuje inštrukcie, ktoré odovzdá hardvéru alebo ovládaču zariadenia. Keď si program žiada alokovať viac pamäte, spustiť alebo komunikovať s iným programom, alebo oznámiť, že už viac nepotrebuje CPU, robí to pomocou prerušení.
Chránený mód a mód jadra Moderné CPU podporujú technológiu nazývanú duálny mód. CPU s touto možnosťou používajú dva módy: chránený mód a mód jadra, ktoré zabezpečujú, že určité funkcie CPU môžu byť kontrolované a ovplyvňované len jadrom operačného systému. Tu chránený mód neoznačuje vlastnosť CPU 80286-tky, aj keď vo všobecnosti sú mu chránené módy veľmi podobné. CPU môžu mať taktiež iné módy, podobné 80286-tkovému chránenému módu, napríklad virtuálny 8086 mód 80386-tky.
Avšak, výraz chránený mód je tu použitý všeobecnejšie v teórii operačných systémov, a označuje všetky módy, ktoré obmedzujú možnosti bežiaceho programu, poskytujú prostriedky ako adresovanie virtuálnej pamäte, či obmedzenie prístupu k hardvéru spôsobom určeným programom, ktorý beží v móde jadra. Podobné módy existujú aj u superpočítačov, minipočítačov, či strediskových počítačov, pretože sú nevyhnutné pre podporu UNIX-ových multiužívateľských operačných systémov.
Keď je počítač spustený, najprv sa automaticky spustí v režime jadra. Prvých niekoľko programov spustených na počítači sú BIOS, bootloader, a operačný systém majú neobmedzený prístup k hardvéru. Keď však operačný systém odovzdá riadenie inému programu, prepne CPU do chráneného módu.
V chránenom móde majú programy prístup iba k obmedzenému množstvu CPU inštrukcií. Užívateľský program môže opustiť chránený mód iba vyvolaním prerušenia, ktoré odovzdá kontrolu opäť jadru systému. Týmto spôsobom si operačný systém udržiava výlučnú kontrolu prístupu k hardvéru, či k pamäti.
Termín “prostriedok chráneného módu” vo všeobecnosti označuje jeden alebo viac CPU registrov, ktoré obsahujú informácie, ku ktorým program nemá povolený prístup. Pokusy o zmenu týchto prostriedkov zvyčajne spôsobia prepnutie do režimu jadra.
Správa pamäte Okrem iných vecí, jadro multiprogramového OS je zodpovedné za kontrolu všetkej systémovej pamäte, ktorá je používaná programami. Toto zabezpečuje, že program nemôže narábať s pamäťou, ktorá je už používaná iným programom. Odkedy je možné striedať programy pomocou prerušení, musí mať každý program nezávislý prístup do pamäte.
Kooperatívna správa pamäte, používaná mnohými prvotnými operačnými systémami, predpokladá, že všetky programy budú dobrovoľne využívať správcu pamäte operačného systému, a nebudú presahovať svoju alokovanú pamäť. Tento systém správy pamäte sa už teraz takmer nikde nevyskytuje, keďže programy často obsahujú chyby, ktoré zapríčiňujú, že sa program pokúša zasiahnuť aj mimo svojej alokovanej pamäte. Keď potom program spadne, môže spôsobiť prepísanie pamäte používanej inými programami. Zlomyseľné programy alebo vírusy takto môžu zámerne meniť pamäť iného programu alebo ovplyvniť činnosť samotného operačného systému. U kooperatívnej správy pamäte teda stačí jediný zlý program na pád celého systému.
Ochrana pamäte umožňuje jadru obmedziť procesom prístup do pamäte. Existujú viaceré metódy ochrany pamäte, napríklad segmentácia pamäte a stránkovanie. Všetky metódy vyžadujú určitú úroveň hardvérovej podpory, ktorá nemusí existovať vo všetkých počítačoch.
V oboch metódach – segmentácia aj stránkovanie, registre chráneného módu určujú, ku ktorým pamäťovým adresám môže program pristupovať. Pokusy adresovať inú časť pamäte vyvolajú prerušenie, ktoré spôsobí, že CPU znovu vstúpi do režimu jadra a kontrola bude odovzdaná jadru OS. Toto je nazývané porušenie segmentácie, skrátene seg-V od anglického segmentation violation, a keďže je zvyčajne znakom zlomyseľného programu, jadro ho zvyčajne ukončí a zahlási chybu.
Windows 3.1 – Me mal určitú úroveň ochrany pamäte, ale programy ju mohli veľmi jednoducho obísť. Pod Windows 9x všetky MS-DOS-ovské aplikácie bežali v móde jadra, a tak mali takmer neobmedzenú kontrolu nad počítačom. Chyba všeobecnej ochrany vznikne pri výskyte porušenia segmentácie, avšak systém aj napriek tomu často spadne.
Metódy multitaskingu Multitasking označuje beh viacerých nezávislých programov na jednom počítači, pričom sa javia, že sú vykonávané naraz. Keďže väčšina počítačov v skutočnosti môže naraz vykonávať len jednu, či dve činnosti, je toto zdanie spôsobené „zdieľaním času“, čo znamená, že každý program využíva časť procesorového času na svoj beh.
Jadro operačného systému obsahuje softvér nazývaný scheduler – plánovač, ktorý určuje, koľko času ktorý program dostane na svoje vykonávanie, a v akom poradí sa programy dostanú na rad. Kontrola je odovzdávaná procesu jadrom operačného systému, ktorý zároveň umožní programu prístup k CPU a k pamäti. Neskôr je kontrola opäť odovzdaná naspäť operačnému systému, a zas ďalší program môže využívať CPU a pamäť. Toto predávanie kontroly medzi jadrom a aplikáciami je nazývané prepínanie kontextu (context-switch).
Prvotný model, ktorý priraďoval čas bežiacim programom sa nazýval kooperatívny multitasking. V tomto modeli, keď je kontrola raz odovzdaná programu, tak sa môže vykonávať ako dlho chce, bez toho aby musel vracať kontrolu späť operačnému systému. To znamená, že nesprávne fungujúci program mohol zabrániť ostatným aplikáciám používať CPU.
Filozofia preemptívneho multitaskingu bola zabezpečiť, že všetkým programom bude pridelený rovnaký čas používania CPU. To znamená, že všetky programy musia mať vyhradený limitovaný čas, počas ktorého môžu využívať CPU bez prerušenia. K dosiahnutiu tohto používajú moderné operačné systémy časované prerušenia. Časovač chráneného módu je spustený jadrom, ktoré po uplynutí určitého času vyvolá návrat do módu jadra.
Na mnohých monoužívateľských operačných systémoch je kooperatívny multitasking vhodným riešením, napríklad na domácich počítačoch zvyčajne beží len malé množstvo dobre otestovaných programov. Windows XP Home Edition bola prvá verzia MS Windows pre domáce použitie, ktorá používa plne preemptívny multitasking, hoci už predtým bol použitý vo Windows NT. UNIX, ktorý bol navrhnutý pre viacero užívateľov, podporoval preemptívny multitasking už desaťročia, pokiaľ to hardvér dovoľoval.
Súborový systém Prístup k súborom uloženým na disku je základná črta všetkých operačných systémov. Počítače ukladajú dáta na diskoch, pričom používajú súbory, ktoré sú rôzne štruktúrované tak, aby zabezpečili rýchlejší prístup, vyššiu spoľahlivosť a lepšie využitie diskového priestoru. Charakteristický spôsob, akým sú súbory na disku uložené, sa nazýva súborový systém a umožňuje súborom nastaviť mená a atribúty. Okrem toho tiež umožňuje uložiť súbory v hierarchii adresárov usporiadaných do adresárového stromu.