Operačný systém

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é.

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.
Prvotné súborové systémy mali obmedzenú kapacitu, rýchlosť, a tiež obmedzené možnosti názvov súborov a adresárových štruktúr, ktoré používali. Tieto obmedzenia často odrážali obmedzenia v operačných systémoch, pre ktoré boli navrhnuté. Bolo tak zložité pre operačný systém podporovať viac než jeden súborový systém.
Zatiaľ, čo mnohé jednoduchšie operačné systémy podporujú len obmedzené množstvo možností pre prístup k úložnému systému, moderné OS ako UNIX a Linux podporujú technológiu známu ako virtuálny súborový systém alebo VFS (od virtual file system). Tieto OS podporujú tiež veľký rozsah úložných zariadení, bez ohľadu na ich návrh či súborový systém, pretože sa k nemu pristupuje pomocou application programming interface (API). Preto už nie je nevyhnutné, aby programy mali akékoľvek informácie o zariadení, ku ktorému pristupujú. VFS umožňuje operačnému systému poskytnúť programom prístup k neobmedzenému množstvu zariadení s nekonečnou množinou súborových systémov, prostredníctvom špecifických ovládačov.
K pripojenému úložnému zariadeniu ako hard disk je možné pristupovať pomocou ovládača tohto zariadenia. Ovládač rozumie špeciálnemu jazyku toho ktorého zariadenia a je schopný preložiť ho do štandardného jazyku, ktorý používa operačný systém. Na UNIXe je toto jazyk blokových zariadení (block devices).
Keď má jadro OS príslušný ovládač na svojom mieste, môže potom pristupovať k obsahu disku v neupravenom formáte, ktorý môže obsahovať jeden alebo viac súborových systémov. Ovládač preloží príkazy, používané k prístupu ku každému špecifickému súborovému systému, do štandardnej množiny príkazov, ktoré používa OS na komunikáciu so všetkými súborovými systémami. Programy s nimi potom môžu pracovať na základe názvov súborov a adresárov, obsiahnutých v určitom hierarchickom usporiadaní. Môžu taktiež vytvárať, zmazúvať, otvárať a zatvárať súbory, či získavať rôzne informácie ako prístupové práva, veľkosť, zostávajúce voľné miesto, a dátumy vytvorenia a modifikácie.
Kvôli mnohým rozdielom medzi súborovými systémami je zložité podporovať ich všetky. Dovolené znaky v názvoch súborov, citlivosť na veľké a malé písmená, prítomnosť rôznych druhov atribútov robia implementáciu jediného rozhrania pre všetky súborové systémy takmer nemožnou. MS Windows v súčasnosti podporuje len NTFS a FAT súborové systémy, spolu so sieťovými súborovými systémami zdieľanými inými počítačmi.
Vizuálna reprezentácia súborov a ciest sa taktiež líši pod rôznymi platformami, hoci toto je už viac otázkou rozhodnutia, a má málo spoločného so samotným súborovým systémom. UNIX oddeľuje časti cesty lomkou (/) a túto konvenciu nasledovali aj ďalšie OS ako Linux, Amiga OS a Mac OS X. MS-DOS taktiež napodobňoval túto vlastnosť, no mal už zaužívanú inú konvenciu používania lomiek (pre prídavné možnosti v príkazoch), takže namiesto toho používal spätnú lomku ako oddeľovač komponentov v ceste. MS Windows ho nasledovalo, pričom japonské edície Windowsu používajú ¥ a kórejské ₩. Pred príchodom Mac OS X, používali verzie Mac OS dvojbodku (:) ako oddeľovač. RISC OS používa bodku (.).
UNIX a jemu podobné operačné systémy povoľujú používať v názvoch súborov takmer všetky znaky, okrem lomky (/) a znaku NULL. Avšak umožnenie používania aj rôznych kontrolných znakov robí podporu tohto súborového systému pod MS Windows veľmi zložitou. UNIX-ové názvy súborov sú citlivé na veľkosť písma, čo umožňuje vytvoriť niekoľko rôznych súborov, ktoré sa budú v názve líšiť len veľkosťou písmen. Naopak, názvy súborov v MS Windows nie sú implicitne citlivé na veľkosť písmen, aj keď NTFS to podporuje na úrovni súborového systému. Windows taktiež obsahuje väčšiu množinu interpunkčných znamienok, ktoré nie sú povolené v názvoch súborov, z ktorých väčšina bola zdedená od obmedzení pôvodného FAT súborového systému.
Súborové systémy môžu poskytovať protokolovanie (journaling), ktoré zabezpečuje bezpečné obnovenie v prípade pádu systému. Takýto súborový systém zapisuje informácie dvakrát – raz do protokolu, ktorý je vlastne záznam operácií vykonávaných v súborovom systéme, a potom na ich správne miesto vo filesystéme. Protokolovanie je spravované systémovým ovládačom a ukladá informácie o každej operácii, ktorá menila obsah disku. V prípade pádu, systém môže byť obnovený do konzistentného stavu znovuvykonaním časti uloženého protokolu. Mnoho UNIXových súborových systémov podporuje protokolovanie zahŕňajúc ReiserFS, JFS, a Ext3.
Na rozdiel od toho, neprotokolované súborové systémy musia byť po páde systému prekontrolované nejakou utilitou ako fsck či chkdsk, aby sa zistili prípadné inkonzistencie. Jemné aktualizácie (soft updates) sú alternatívou k protokolovaniu, ktorá zabraňuje prebytočným zápisom tak, že starostlivo plánuje poradie aktualizačných operácií. Zápisovo štrukturované (log-structured) súborové systémy a ZFS sa líšia od tradičných protokolovaných systémov tým, že vždy zapisujú nové kópie dát namiesto toho aby aktualizovali staré, a tak zabraňujú inkonzistenciám.
Mnoho distribúcií Linuxu podporuje niektoré, alebo všetko z ext2, ext3, ReiserFS, Reiser4, GFS, GFS2, OCFS, OCFS2, a NILFS. Linux taktiež plne podporuje XFS, JFS spolu s FAT a NTFS.
Microsoft Windows obsahuje podporu pre FAT12, FAT16, FAT32 a NTFS. Súborový systém NTFS je najefektívnejší a najspoľahlivejší zo štyroch windowsových súborových systémov, hoci detaily jeho návrhu nie sú známe. Na Windows Vista je NTFS jediný súborový systém, ktorý môže byť nainštalovaný. Windows Embedded CE 6.0 zaviedol ExFAT, súborový systém vhodný pre flashové zariadenia.
Mac OS X podporuje HFS+ s protokolovaním, ako svoj primárny súborový systém. Ten je odvodený od Hierarchického súborového systému (Hierarchical File System) prvotného Mac OS. Mac OS X dokáže čítať aj zapisovať FAT16, FAT32, NTFS, UDF, a iné súborové systémy, ale nemôžu byť na ňom priamo nainštalované. Taktiež, ako pozostalosť UNIX-u, Mac OS X podporuje všetky súborové systémy podporované UNIX VFS.
Súborové systémy FAT sú zvyčajne používané na disketách, flash pamäťových kartách, v digitálnych kamerách a iných prenosných zariadeniach kvôli svojej jednoduchosti. ISO 9660 a Universal Disk Format sú formáty používané v CD a DVD. Mount Rainier je novšie rozšírenie UDF, podporované v Linuxe 2.6 a Windows Vista, pomocou ktorého je možné prepisovať DVD tým istým spôsobom ako diskety.

Sieť

Súčasné operačné systémy podporujú množstvo sieťových protokolov, hardvéru a aplikácií na ich používanie. To znamená, že počítače používajúce rôzne OS môžu pracovať v tej istej sieti, a zdieľať súbory, tlačiarne, skenery používajúc drôtové alebo bezdrôtové pripojenia. Siete v zásade umožňujú prístup počítača ku zdieľaným prostriedkom vzdialeného počítača tak, ako keby boli pripojené priamo k nemu samotnému. Toto zahŕňa všetko od jednoduchej komunikácie, cez používanie sieťových súborových systémov až po zdieľanie grafického, či zvukového hardvéru. Niektoré sieťové služby umožňujú transparentne pristupovať k prostriedkom počítača, ako napríklad SSH, ktoré dovoľuje priamy prístup užívateľom siete k príkazovému riadku.
Sieť typu klient/server vyžaduje program na počítači, ktorý sa chce pripojiť cez sieť k inému počítaču, nazývanému server. Servery, zvyčajne bežiace pod UNIX alebo Linux, ponúkajú rôzne služby užívateľom siete. Tieto sú zvyčajne poskytované cez porty alebo číslované prístupové body za serverovou sieťovou adresou. Každé číslo portu je zvyčajne spojené s najviac jedným bežiacim programom, ktorý je zodpovedný za spracovanie požiadavky na danom porte.
Mnoho operačných systémov podporuje jeden alebo viac predajcom špecifikovaných, či otvorených sieťových protokolov, napríklad SNA na IBM systémoch, DECnet na systémoch od Digital Equipment Corporation, a Microsoft-špecifické protokoly na systémoch Windows. Niektoré protokoly pre špecifické úlohy môžu tiež byť podporované, ako napríklad NFS pre prístup k súborom. Protokoly ako Esound alebo esd môžu byť jednoducho rozšírené cez sieť a umožňujú prehrať zvuk z lokálnych aplikácií na vzdialenom počítači. Virtual3D umožňuje vzdialenému počítaču kontrolovať lokálny 3D hardware a tak hrať napríklad 3D hry po sieti.

Bezpečnosť

Bezpečnosť počítača závisí od mnohých technológií a ich správnej funkčnosti. Moderný operačný systém poskytuje prístup k mnohým prostriedkom, ktoré sú prístupné bežiacim programom a externým zariadeniam prostredníctvom jadra.
Operačný systém musí byť schopný rozlišovať medzi požiadavkami, ktoré môžu, a ktoré by nemali byť vykonané. Kým niektoré systémy jednoducho rozlišujú medzi privilegovanými a neprivilegovanými procesmi, iné zvyčajne využívajú určitú formu „identity žiadateľa“, niečo ako meno užívateľa. Na vybudovanie identity slúži proces autentifikácie, pri ktorom je potrebné uviesť užívateľské meno, a každé užívateľské meno môže mať svoje heslo. Existujú aj iné metódy autentifikácie, napríklad magnetické karty, či biometrické dáta. V niektorých prípadoch, špeciálne pri používaní sieťových prostriedkov, môže byť prístup bez autentifikácie úplne zamietnutý.
Vnútornú bezpečnosť, alebo bezpečnosť práve vykonávaného programu, je možné zabezpečiť iba tak, že všetky potenciálne nebezpečné požiadavky budú vykonané pomocou prerušení jadrom OS. Ak programy priamo môžu pristupovať k hardvéru a iným prostriedkom, nemôžu byť bezpečné. MS Windows bol silne kritizovaný za mnohoročnú neschopnosť ochrániť jeden bežiaci program pred iným, avšak odkedy windows-y nie sú všeobecne používané ako servery, je tento nedostatok považovaný za nie tak závažný. V posledných rokoch Microsoft pridal limitované užívateľské kontá a bezpečnejšie prihlasovanie. Avšak, mnoho ľudí stále používa svoje počítače cez administrátorské konto, čo úplne neguje všetky vylepšenia, ktoré sa dosiahli týmito zmenami.
UNIX a Linux majú dvojúrovňovú bezpečnosť, ktorá umožňuje akékoľvek zmeny týkajúce sa systému len root užívateľovi, čo je špeciálne užívateľské konto na všetkých UNIXových systémoch. Zatiaľ čo root má neobmedzené možnosti vykonávania systémových zmien, programy bežného užívateľa majú vymedzené miesto, kam môžu ukladať svoje súbory a ku akému hardvéru môžu pristupovať. Toto značne obmedzuje škody, ktoré môže bežný užívateľ v systéme spôsobiť, pričom mu stále poskytuje dostatočnú slobodu robiť čokoľvek, okrem systémových zmien. Nastavenia užívateľa sú uložené v časti súborového systému, nazývaného domáci adresár (home directory), ktorý poskytuje priestor, kde si môže užívateľ ukladať svoju prácu, podobne ako Moje Dokumenty v systéme Windows. Keď chce užívateľ inštalovať software, alebo vykonávať systémové zmeny, musí vložiť potrebné root-ovské heslo, čo mu umožní spúšťať určité programy ako root.
Aj keď bežné užívateľské kontá na Linuxe poskytujú dostatok slobody na každodenné aktivity, potreba vkladať heslo pri inštalácii softvéru bola príčinou kritiky mnohých Windowsových užívateľov, ktorí boli zvyknutí mazať, meniť, vytvárať a premenúvať súbory kdekoľvek v systéme, čím sa veľmi ľahko dali zmazať dôležité súbory, alebo infikovať operačný systém vírusmi. Windows Vista sa pokúsil spraviť vylepšenia v tejto oblasti, ale takisto nasledovala vlna kritiky za jej zvedavý prístup a pýtanie sa užívateľa na potvrdenie jeho voľby aj pri bežných aktivitách, ktoré sotva môžu ohroziť bezpečnosť.
Vonkajšia bezpečnosť zahrňuje požiadavky z vonkajšieho prostredia počítača, ako napríklad prihlásenie na pripojenej konzole, alebo nejaký druh sieťového spojenia. Vonkajšie požiadavky musia často prejsť ovládačom zariadenia do jadra OS, odkiaľ môžu byť posunuté príslušným aplikáciám, alebo priamo vykonané. Bezpečnosť operačných systémov bola dlho znepokojivou záležitosťou, pretože v počítačoch boli uložene veľmi citlivé dáta, či už komerčného, alebo vojenského charakteru. Ministerstvo obrany USA vytvorilo kritériá (Trusted Computer System Evaluation Criteria - TCSEC), ktoré sa stali štandardom a určujú základné požiadavky pre určenie efektívnosti bezpečnosti. Toto sa stalo životne dôležitým pre tvorcov operačných systémov, pretože TCSEC bol použitý na ohodnotenie a výber operačných systémov použítých na spracúvanie a ukladanie citlivých informácií.
Sieťové služby ponúkajú zdieľanie súborov, tlačiarní, prístup k emailu, web stránkam, či použitie FTP, z čoho väčšina nemusí mať požadovanú úroveň bezpečnosti. Hlavným prvkom bezpečnosti je hardvérové zariadenie známe ako firewall. Na úrovni operačného systému existuje množstvo softvérových firewallov, tak isto ako aj antivírových programov. Väčšina moderných operačných systémov obsahuje softvérový firewall, ktorý je implicitne zapnutý. Môže byť nastavený tak, aby púšťal, resp. zastavil premávku na sieti smerujúcu od, alebo ku určitej službe či aplikácii bežiacej v operačnom systéme. Z toho dôvodu, keď nainštalujeme a spustíme nie bezpečnú službu, ako napríklad telnet alebo FTP, nemusíme sa báť ohrozenia spôsobeného bezpečnostnou dierou, pretože firewall odmietne všetku premávku pokúšajúcu sa pripojiť k danej službe, na danom porte.

Grafické užívateľské rozhrania

Dnes väčšina moderných operačných systémov obsahuje grafické užívateľské rozhrania. V niektorých systémoch je priamo integrované v jadre systému – napríklad v pôvodnej implementácii MS Windows a Mac OS, grafický podsystém bol v skutočnosti časťou jadra. Iné operačné systémy, niektoré staršie, niektoré novšie, sú modulárne, oddeľujú grafický podsystém od jadra a operačného systému. V 1980 UNIX, VMS a mnoho iných boli vybudované práve týmto spôsobom. Dnes Linux a Mac OS fungujú tiež na tomto princípe.
Mnoho OS umožňuje užívateľovi nainštalovať, alebo vytvoriť grafické rozhranie podľa jeho požiadaviek. X Window System v spojení s GNOME alebo KDE je bežné nastavenie na väčšine UNIX-ových systémov. Mnohé na unixe založené grafické užívateľské rozhrania existujú už dlhší čas, väčšinou sú zdedené od X11. Súťaženie medzi rôznymi predajcami unixu (HP, IBM, Sun) viedlo k mnohým rozdeleniam, čo spôsobilo zlyhanie snahy o štandardizáciu podľa COSE a CDE v 1990-tom.
Grafické užívateľské rozhrania sa časom vyvíjajú. Napríklad, Windows modifikuje svoje GUI vždy, keď je vydaná nová verzia OS Windows, a rozhranie Mac OS bolo dramaticky zmenené s príchodom Mac OS X v roku 2001.

Ovládače zariadení

Ovládač zariadenia je špeciálny typ počítačového softvéru, ktorý umožňuje interakciu s hardvérovými zariadeniami. Toto zvyčajne predstavuje rozhranie pre komunikáciu so zariadením prostredníctvom určitej počítačovej zbernice ku ktorej je hardvér pripojený. Toto rozhranie poskytuje príkazy na posielanie dát od a ku zariadeniu, a tak je nevyhnutné pre operačný systém a softvérové aplikácie. Ovládač je hardvérovo závislý počítačový program, ktorý je špecifický pre určitý OS, a umožňuje iným programom, typicky operačnému systému, pracovať transparentne s hardvérovým zariadením a zvyčajne poskytuje nevyhnutné spracúvanie prerušení.
Hlavným cieľom návrhu ovládačov zariadení je abstrakcia. Každý model hardvéru je odlišný. Novšie modely sú upravené výrobcami tak, aby poskytovali väčšiu spoľahlivosť alebo vyšší výkon a tieto novšie modely sú často ovládané odlišne. Počítače a ich operačné systémy nemôžu dopredu vedieť, ako používať každé zariadenie – či už súčasné alebo budúce. Aby sa vyriešil tento problém, operačné systémy určujú, ako by mal byť určitý typ zariadenia ovládaný. Funkciou ovládača je potom preložiť tieto operačným systémom určene funkcie do špecifických funkcií daného zariadenia. Teoreticky, keď sa objaví nové zariadenie, ktoré funguje novým spôsobom, by malo pracovať správne ak je dostupný príslušný ovládač. Tento nový ovládač zaistí, že z pohľadu OS zariadenie vyzerá že pracuje tak, ako zvyčajne.

Mikropočítače

Prvé mikropočítače nemali potrebnú kapacitu aby mohli používať operačné systémy navrhnuté pre strediskové počítače. Prvý významný diskovo-založený OS bol CP/M, ktorý bol podporovaný na mnohých prvotných mikropočítačoch a napodobňoval MS-DOS, ktorý sa stal populárnym operačným systémom vybraným pre počítače IBM PC a jeho nasledovníci spravili z Microsoftu jednu z najúspešnejších svetových spoločností. V 80. rokoch Apple Computer Inc. opustili od svojej populárnej Apple II série mikropočítačov aby zaviedli Apple Macintosh počítač s novým inovovaným grafickým užívateľským rozhraním v Mac OS.
Predstavenie Intel 80386 CPU s 32-bitovou architektúrou a stránkovaním umožňovali osobným počítačom podporu operačných systémov s multitaskingom tak ako u predošlých minipočítačov a mainframov. Microsoft odpovedal na tento postup prijatím Dave Cutler-a, ktorý vyvinul VMS systém pre Digital Equipment Corporation. On mal viesť vývoj operačného systému Windows NT, ktorý slúžil ako základ operačných systémov Microsoftu. Steve Jobs, spoluzakladateľ Apple Inc., založil NeXT Computer Inc., ktoré vyvinulo unixový systém NEXTSTEP. Ten bol neskôr získaný spoločnosťou Apple Inc. a spolu s kódom od FreeBSD bol použitý ako jadro Mac OS X.
Minix, akademický vzdelávací nástroj, ktorý mohol bežať len na prvotných počítačoch, bol inšpiráciou pre ďalšiu reimplementáciu UNIX-u, nazývanú Linux. Prácu začal študent Linus Torvalds a v spolupráci s dobrovoľníkmi z internetu vyvinul jadro, ktoré bolo skombinované s nástrojmi z projektu GNU. The Berkeley Software Distribution, známe ako BSD, je UNIX-ová odvodenina distribuovaná Kalifornskou univerzitou v Berkeley. Voľne distribuovaná a prenosná na mnohé minipočítače nakoniec získala využitie aj na osobných počítačoch, hlavne ako FreeBSD, NetBSD a OpenBSD.

Microsoft Windows

Rodina operačných systémov firmy Microsoft vznikla ako rozšírenie staršieho operačného systému MS-DOS, ktorý bol používaný v IBM PC. Novodobé verzie sú založené na novšom jadre Windows NT, ktoré bolo pôvodne zamýšľané pre OS/2 a prenesené od VMS. Windows bežia na x86, x86-64 a Itániových procesoroch. Staršie verzie bežali taktiež na DEC Alpha, MIPS, Fairchild (neskôr Intergraph) Clipper a PowerPC architektúrach.
Dlhodobo patrí Microsoftu veľká časť celosvetového trhu s desktopovými operačnými systémami. Windows je tiež používaný na serveroch, pričom podporuje aplikácie ako webové či databázové servery. V uplynulých rokoch Microsoft investoval značnú časť peňazí na reklamu, výskum a vývoj aby ukázal, že Windows je schopný spustiť akúkoľvek aplikáciu, čo viedlo k výraznej akceptácii u mnohých firiem.
Rozšírenou verziou z rodiny MS Windows bol Windows XP, vydaný v októbri 2001.
V novembri 2006 prišla Windows Vista. Výraznou zmenou prešlo užívateľské rozhranie a vizuálny štýl nazývaný Windows Aero.
V roku 2009 Microsoft vydal novú verziu operačného systému pod názvom Windows 7, ktorý sa výrazne zmodernizoval oproti predchodcovi.
Nástupcom Windowsu 7 je Windows 8, ktorý bol vydaný v októbri 2012. O rok neskôr Microsoft vydal vylepšenú verzia Windows 8.1 a v roku 2015 Windows 10.

Plan 9

Ken Thompson, Dennis Ritchie a Douglas McIlroy z Bell Labs navrhli a vyvinuli programovací jazyk C, v ktorom mal byť napísaný operačný systém Unix. Programátori z Bell Labs pokračovali ďalej a vyvinuli Plan 9 a Inferno. Plan 9 bol od začiatku navrhnutý ako sieťový OS a mal zabudovanú grafiku, na rozdiel od Unixu, ktorý pridal tieto grafické črty neskôr. Plan 9 je v súčasnosti vydávaný pod licenciou Lucent Public License. Inferno bol predaný Vita Nuova Holdings a vydaný pod GPL/MIT licenciou.

Unix a Unixové systémy

Ken Thompson vyvinul jazyk B, hlavne založený na BCPL, ktoré potom použil na napísanie Unixu, založenom na skúsenostiach v projekte MULTICS. B bolo neskôr nahradené C, a Unix sa vyvinul do veľkej, komplexnej rodiny operačných systémov, ktorá ovplyvnila každý moderný operačný systém.
Rodina Unixových systémov je odvodená skupina operačných systémov, s niekoľkými hlavnými podkategóriami ako System V, BSD, a Linux. Názov UNIX je ochrannou známkou The Open Group, ktorá pod ňou vydá akýkoľvek systém, ktorý bude spĺňať jej definície. Termín unixový (unix-like) je bežne používaný na označenie veľkej skupiny operačných systémov, ktoré sa podobajú pôvodnému Unixu.
Unixové systémy bežia na širokej škále počítačových architektúr. Vo veľkom množstve sa využívajú ako servery v komerčnej sfére, ako aj pracovné stanice na akademickej pôde. Voľne šíriteľné Unixové varianty ako Red Hat alebo Novell sú používané prevažne spoločnosťami, ale aj domáci užívatelia ich môžu používať. Historicky, domáci užívatelia si inštalovali distribúcie sami, ale v roku 2007 Dell začal ponúkať Ubuntu na domácich počítačoch. Linux na desktopoch je populárny hlavne vo vývojárskej komunite.
Štatistiky trhu voľne dostupných operačných systémov sú zvyčajne nepresné, keďže väčšina voľných OS sa nekupuje a tak je ich odhadovaný počet nízky. Na druhej strane, štatistiky vychádzajúce z počtu stiahnutí operačných systémov sú často nafúknuté, keďže užívateľ si často stiahne aj viac systémov, vyskúša ich a až potom sa rozhodne, ktorý bude používať.
Niektoré Unixové varianty ako HP-UX od HP a AIX od IBM sú navrhnuté tak, aby fungovali len s určitým dodaným hardvérom. Iné, ako napríklad Solaris, môžu bežať na viacerých typoch hardvéru, vrátane x86 serverov a osobných počítačov. Mac OS X od Apple s hybridným jadrom odvodeným od NeXTSTEP, Mach a FreeBSD nahradil predchádzajúci (ne-unixový) Mac OS.
Unixová prevádzkyschopnosť bola hľadaná pri zakladaní štandardu POSIX. POSIX štandard môže byť aplikovaný na akomkoľvek OS, hoci bol pôvodne vytvorený pre rôzne Unixové varianty.

Mac OS X

Mac OS X je rad patentovaných, graficky orientovaných operačných systémov, ktoré sú vyvinuté a predávané spoločnosťou Apple Inc a z ktorých najnovší je predinštalovaný na všetkých predávaných počítačoch Macintosh. Mac OS X je nasledovník pôvodného Mac OS, ktorý bol prvotným operačným systémom Applu od roku 1984. Na rozdiel od jeho predchodcu, Mac OS X je unixový operačný systém vybudovaný na technológii vyvinutej v NeXT počas druhej polovice 80. rokov, až kým Apple nekúpil danú spoločnosť v roku 1997.
Operačný systém bol prvýkrát vydaný v 1999 ako Mac OS X Server 1.0, s desktopovo orientovanou verziou (Mac OS X v10.0), ktorá nasledovala v marci 2001. Odvtedy bolo vydaných päť odlišných užívateľských aj serverových verzií, tá najnovšia je Mac OS X v10.5 a prvýkrát bola sprístupnená v októbri 2007. Vydania Mac OS X sú nazvané po mačkovitých šelmách, Mac OS X v10.5 býva označovaný ako Leopard.
Serverová verzia Mac OS X Server je architektonicky identická s desktopovou, s tým rozdielom, že zvyčajne beží na Macintosh serverovom hardvéri. Mac OS X Server zahrňuje správu pracovných skupín a administratívne softvérové nástroje, ktoré poskytujú zjednodušený prístup k sieťovým službám, vrátane mail transfer agenta, Samba serveru, LDAP serveru domain name serveru, a iných.

Embedded systémy

Embedded (vložené, integrované) systémy používajú množstvo jednoúčelových operačných systémov. V niektorých prípadoch je „operačný systém“ softvér priamo spojený s aplikáciou, ktorej výstup je jednoliaty, jednoúčelový program. V najjednoduchších vložených systémoch nie je žiadny rozdiel medzi operačným systémom a aplikáciou. Systémy s určitými požiadavkami na čas sú známe ako real-time operačné systémy.
Operačné systémy ako VxWorks, eCos a Palm OS nesúvisia ani s Unixom ani s Windows. Windows CE používa podobné API ako desktopové windows, ale nemá s nimi nič spoločné v oblasti kódu. Tiež existuje niekoľko vložených BSD a Linuxových distribúcií.

Vývoj operačných systémov ako hobby

Vývoj operačných systémov ako hobby má mnoho prívržencov. Napríklad OS Linux bol odvodený od takéhoto hobby projektu. Dizajn a implementácia operačného systému si vyžaduje veľa znalostí a odhodlania a toto označenie pokrýva všetko od základného „hello world“ pri bootovaní, až po plne funkčné jadro systému. Klasický príklad tohto je Minis operačný systém, ktorý bol navrhnutý na vzdelávacie účely ale bol často používaný „hobbystami“ predtým ako Linux získal svoju popularitu.

Ostatné

Medzi staršie operačné systémy, ktoré sa ešte stále používajú, patria OS/2 od IBM, Mac OS od Applu, BeOS; XTS-300. Niektoré, ako AmigaOS a RISC OS sú stále vyvíjané ako menšinové platformy pre komunity nadšencov. OpenVMS, kedysi DEC, je stále aktívne vyvíjaný spoločnosťou Hewlett-Packard.
Výskum a vývoj nových operačných systémov pokračuje. GNU Hurd je navrhovaný tak, aby bol spätne kompatibilný s Unixom, ale s vylepšenou funkcionalitou a architektúrou mikrojadra.
Singularity je projekt výskumu Microsoftu, ktorý má priniesť operačný systém s lepšou ochranou pamäte založenou na .Net modeli.