Charakteristika OS
Operačný systém (OS) je softvér, ktorý spravuje zdroje počítača a poskytuje programátorom 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 systémovým požiadavkám, kontrola vstupných a výstupných zariadení, umožnenie pripojenia do siete a správa súborov. Operačné systémy môžme 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, Mac OS X, 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 60tych rokov a bol základom vzniku mnohých voľných ale aj komerčných operačných systémov.
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 priďeľ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 rekaciu 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é zazpeč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šoebecnejš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 sposobené „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 vracat kontrolu späť operačnému systému. To znamená, že nesprávvne 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 zariadenieniu 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 zďieľ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 lomítkom (/) 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 lomítok (pre prídavné možnosti v príkazoch), takže namiesto toho používal spätné lomítko 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 lomítka (/) 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 zahrňujú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é čislo 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 neprivilegovný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á neobmezdené 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 Windowsovský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 sú hardvérové zariadenia známe ako firewally. 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 postupom času 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.