Apie

Operacinė sistema (OS) – speciali programinė įranga, užtikrinanti vartotojo sąsają ir kompiuterio techninės įrangos, taikomųjų programų bei duomenų valdymą. Moderniausios operacinės sistemos sudaro galimybę dirbti daugeliui vartotojų vienu metu daugialypėje aplinkoje, užtikrina bylų (failų) apsaugą, turi daug kitų naudingų savybių. Dauguma operacinių sistemų yra pirma programinė įranga, kurią pradeda vykdyti įjungtas kompiuteris.

Naudotojo aplinka

Kompiuterio naudotojo požiūriu, operacinė sistema veikia kaip aplinka, daugiau ar mažiau supaprastinanti darbą su:

  • Taikomosiomis programomis ar kita programine įranga – interneto naršyklėmis, teksto redagavimo ar internetinių pokalbių programomis.
  • Bylomis (failais) ir aplankais (katalogais)
  • Įvairiais vidiniais bei išoriniais įrenginiais – spausdintuvu, monitoriumi, pele, klaviatūra, skaitmeniniu fotoaparatu ir kitais.

Operacinės sistemos neretai skirstomos pagal paskirtį:

Asmeniniams kompiuteriams skirtos OS
labai supaprastina vartotojo darbą su kompiuteriu, turi grafinę aplinką, leidžia klausytis muzikos, žaisti žaidimus ir pan.
Darbo stotims skirtos OS
leidžia efektyviai panaudoti daugelį procesorių, itin didelius atminties kiekius ir pan.
Serveriams skirtos OS
leidžia efektyviai dirbti šimtams ar tūkstančiams programų vienu metu, turi geras darbo tinkle galimybes, vartotojų teisių valdymo priemones, efektyviai dirba su daugeliu vieno kompiuterio procesorių ir pan.
Realaus laiko OS
suteikia programoms vykdymo uždelsimo bei kompiuterių resursų garantijas, kurių dėka šios OS yra tinkamos automatinių įrenginių (palydovų, laivų, lėktuvų ir t.t.) valdymui.
Prietaisams skirtos (angl. embeded) OS
gali dirbti labai ribotas galimybes turinčiuose kompiuteriuose (mikrovaldikliuose), yra greitos, tačiau dažniausiai neturi išvystytų programų valdymo ir kitų galimybių.
Minimalistinės OS
šios OS gali tilpti tiek paprastame CD, tiek lanksčiajame diskelyje.
Delniniams kompiuteriams bei mobiliems telefonams skirtos OS
yra panašios į prietaisams skirtas, tačiau turi grafinę aplinką, pritaikytos eiliniam naudotojui.

——————————————————————————————————————–

UNIX failų sistemos

Norint naudoti failų sistemą UNIX OS, ją reikia primontuoti prie hierarchinio medžio. Šakninė failų sistema bus vadinama tėvu ir iš jos bus paveldima informacija. Šie duomenys ar procesai, kurie yra paveldimi, yra tik šakninės failų sistemos kopija.

Kiekvienas procesas gali sukurti daug „vaiko procesų“, bet jie visi turės tas pačias failų sistemas; jeigu „duomenys neturi tėvų“, tai reiškia, kad jie yra pradinis branduolyje. Kai kuriose sistemose, įskaitant Unix sistemą tokią kaip Linux, pirmieji procesai (vadinami pirminio paleidimo) pradėti branduolyje ne paleidimo metu ir yra nenutraukiami. (žr. „Linux“ paleisties procesas); kitos failų sistemos procesus gali vykdyti vartotojo aplinkoje. Jei viena failų sistema, esanti šakninė, lyginant su kita „miršta”, pastaroji, buvusi jo vaiku, tampa šaknine ir perima procesus bei duomenis.

Operacijų aplinka

  • Programuotojo ar administratoriaus požiūriu, operacinė sistema yra tam tikra programinė aplinka, abstrahuojanti kompiuterio aparatūrą ir vykdanti sistemines procesų/programų aptarnavimo funkcijas:
  • Programų/procesų paleidimo posistemė (angl. loader, liet. įkėlyklė, paleidyklė), užtikrinanti programų ar bibliotekų kodo perkėlimą į operacinę atmintį bei su tuo susijusius pagalbinius veiksmus (pvz., kodo išpakavimą).
  • Operacinės atminties adresų transliavimo posistemė (angl. linker, liet. saistyklė, liet. neįsitvirtinę pakaitalai: siejyklė, rišyklė), užtikrinanti simbolinių objektinio kodo adresų transliaciją į fizinius.
  • Procesų valdymo posistemė (angl. process manager), užtikrinanti procesoriaus, atminties ir pan. resursų paskirstymą, procesų valdymą ir pan.
  • Pagalbinės bibliotekos (angl. library, liet. biblioteka), suteikiančios programoms standartinę aplinką darbui su OS funkcijomis.
  • Tvarkyklės (angl. driver, liet. tvarkyklė, valdyklė), suteikiantys programoms standartizuotą interfeisą darbui su aparatine įranga.
  • Pagalbinės posistemės, pvz., virtuali atmintis, failų sistema ir pan.

Skirstymas architektūros požiūriu

  • Tradiciškai OS skirstomos pagal branduolio struktūrą:
  • Monolitinės turi vientisą, visas funkcijas atliekantį branduolį, kurį, keičiant aparatūrą, reikia perkompiliuoti.
  • Generatyvinės turi branduolį, veikiantį, kaip monolitinis, tačiau branduolys generuojamas jo pakrovimo metu.
  • Modulinės artimos generatyvinėms, tačiau turi branduolius, susidedančius iš modulių, kuriuos galima keisti OS darbo metu.
  • Mikrobranduolius turinčios veikia, kaip minimalūs branduoliai, atiduodantys OS funkcijas įprastiems procesams.

Taip pat, OS neretai skirstomos pagal daugelį kitų parametrų, pvz., procesų valdymo metodus (pranešimų eile ar procesų perjungimu pagrįstos), aparatūros abstrakciją (virtualizuojančios ir nevirtualizuojančios), sistemines funkcijas (pvz., Monitorius (OS)), galimybes dirbti tinkle, istoriškai susiklosčiusias savybes (pvz., UNIX, Windows) ir pan.

——————————————————————————————————————–

Pertraukimai

Pertraukimai yra svarbus aspektas operacinėje sistemoje, tai yra veiksmingas būdas operacinei sistemai bendrauti su aplinka. Alternatyva – leisti operacinei sistemai „stebėti“ (angl. watch), tai galima rasti senesnėse sistemose su labai maža laikinosios informacijos saugykla (50-60 baitų), tačiau tai gana neįprasta modernioms sistemoms su didelėmis laikinosiomis informacijos saugyklomis. Pertraukimą tiesiogiai palaiko dauguma šiuolaikinių procesorių. Pertraukimai teikiami kompiuteriams su automatiniu vietos taupymu kontekstų registre, reaguojant į įvykius veikiamas specialus kodas. Net ir paprasčiausių kompiuterių techninė įranga dirba su pertraukimais, kai programuotojas suveda specialų kodą, kuris paleidžiamas tik tada kai jo reikia. Kai nutraukiamas vykdomos programos veiksmas, kompiuterio techninė įranga kompiuterio techninė įranga automatiškai sustabdo veikiančią programą, išsaugo joje esančią informaciją ir vykdomas pertraukimo kodas. Moderniose operacinėse sistemose perkrovimą apdoroja operacinės sistemos branduolys. Pertraukimai gali ateiti iš bet kokios kompiuterio techninės įrangos ar paleistos programos. Kai įrenginio techninė įranga įjungia pertraukimą, operacinės sistemos branduolys nusprendžia, kaip elgtis tokiu atveju, paprastai yra vykdomas duomenų apdorojimo kodas. Kodas priklauso nuo nutraukimo. Techninės įrangos procesorius paleidžia iš naujo užduotį, kuri gali būti viena iš operacinės sistemos branduolio dalių, kita programa arba abiejų. Tada įvairiais būdais įrenginių tvarkyklė (angl. driver) perduoda informaciją programai. Programa taip pat gali sukelti operacines sistemos perkrovimą. Jie programa nori naudotis technine įranga, pavyzdžiui, ji gali perkrauti operacinės sistemos branduolį. Po pertraukimo kontrolė turi būti gražinta branduoliui. Branduolys gali pakartoti procesą. Jei programa turi papildomų resursų, pavyzdžiui, atminties, ji bus atiduoda branduolio resursams.

Apsaugos aplinka ir prižiūrėtojo aplinka

Šiuolaikiniai procesorius palaiko du darbo režimus. Dėl to procesoriai naudoja dvi aplinkas: apsaugotą režimą ir prižiūrėtojo aplinką, kurios leidžia tam tikroms centrinio procesoriaus funkcijoms būti kontroliuojamoms ir paveiktoms tiktai operacinės sistemos branduolio. Čia, apsaugos aplinka nesiunčia specialiai į 80286 (Intel x86 16 bitų mikroprocesorius) centrinio procesoriaus ypatybę, nors apsaugos aplinka yra labai panaši į tai. CPU galėtų turėti kitas aplinkas, panašias į 80286 apsaugos aplinką, tokias kaip virtuali 8086 aplinka iš 80386 (Intel x86 32 bitų mikroprocesorius ar i386).

Tačiau, sąlygos plačiau naudojamos operacinės sistemos teorijoje sietinoje su visomis aplinkomis, kurios riboja programų gebėjimą, veikiančių toje aplinkoje, aprūpinanti sistemų kaip virtualioji atmintis adresavimas ir prieigų, ribojant prieiga pagrindinės įrangos aplinkoje, programos nustatyme, veikiančios prižiūrėtojo aplinkoje. Panašios aplinkos egzistavo superkompiuteriuose, mini kompiuteriuose, ir centriniuose kompiuteriuose, kadangi jos yra tikrai būtinos, pavyzdžiui, UNIX daugelio vartotoju operacinės sistemos palaikymui.

Kai kompiuteris pirmą kartą įjungiamas, tai automatiškai pasileidžia prižiūrėtojo aplinkoje. Pirmos kelios programos, paleidžiamos kompiuterio, yra BIOS, paleidyklė (angl. boot loader) ir operacinė sistema, jos turi neribotą prieigą prie operacinės įrangos – ir tai reikalinga todėl, kad, iš esmės, inicijuojama apsaugotą aplinką gali būti įjungta tiktai už jų ribų. Tačiau, kai operacinė sistema perduoda kontrolę į kitą programą, tai gali perjungti centrinį procesorių į apsaugotą režimą.

Apsaugotame režime programos gali turėti prieigą prie labiau apriboto centrinio procesoriaus instrukcijų komplekto. Vartotojų programa gali palikti apsaugotą režimą tiktai sukeldama pertrauktį, priversdama perduoti kontrolę atgal į branduolį. Tokiu būdu operacinė sistema gali palaikyti išskirtinę kontrolę kaip prieiga prie pagrindinės įrangos ir atminties.

Terminas „apsaugos aplinkos ištekliai“ apskritai siejasi su vienu ar daugiau centrinio procesoriaus registru, kuris turi savyje informaciją, kuri veikiančiai programai neleidžia nieko pakeisti. Pastangos pakeisti šituos išteklius apskritai sukelia persijungimą į prižiūrėtojo aplinką, kur operacinė sistema gali susitvarkyti su neteisėta operacija, kurią programa stengėsi įvykdyti (pavyzdžiui, ištrindama programą).

Atminties valdymas

(Multiprograminių) operacinių sistemų branduolys atsakingas už visos sistemos atminties, naudojamos procesų, valdymą. Tai apsaugo procesus nuo svetimos atminties naudojimo, ir leidžia efektyviau išnaudoti esamą atmintį. Procese darbo metu, kiekviena procesas privalo turėti nepriklausomą priėjimą prie atminties.

Bendras atminties valdymas, naudojamas daugelyje ankstesnių operacinių sistemų, veikė su prielaida, kad visi procesai savanoriškai naudojasi branduoliu atminties valdymui, ir neviršija jiems skirtos atminties kvotų. Tačiau tai nepasiteisino, nes procesai dažnai dėl klaidų viršydavo jiems skirtos atminties kvotas, taip paveikdamos ir kitus procesus, kurių atmintį užimdavo. Kenkėjiški procesai ar virusai galėjo kryptingai keisti kito proceso atmintį ar net pačia operacinę sistemą. Kooperacinės atminties valdymui pakaktų tik vienos blogos programos, kad nulaužtų sistemą.

Atminties apsauga leidžia branduoliui apriboti proceso priėjimą prie kompiuterio atminties. Egzistuoja įvairūs atminties apsaugos metodai, įskaitant atminties segmentaciją ir puslapiavimą. Visi metodai reikalauja tam tikros techninės įrangos palaikymo lygio (pavyzdžiui, 80.286 MMU), kuris neegzistuoja visuose kompiuteriuose.

Ir segmentacijoje, ir puslapiavime, kai apsaugoto režimo registrai apibrėžti procesoriuje, atminties adresas turi sutikti duoti priėjimą veikiančioms programoms. Bandymas prieiti prie kitų adresų, iššauks pertraukimą, kuris perves sistemą į apsaugotą režimą, perduodamas valdymą branduoliui. Tai vadinama segmentavimo pažeidimu arba trumpiau – SEG-V. Dažniausiai tai yra klaidos ženklas, ir branduolys paprastai pašalins tai padariusį procesą ir praneš apie klaidą.

Windows 3.1-Me turi keletą atminties apsaugos lygių, bet programos gali lengvai juos apeiti. Pagal Windows 9x visų MS-DOS programų, kurios veikia apsauginiu režimu, suteikiant joms beveik neribotą kompiuterio valdymą. Pagrindinės atminties gedimas parodys, kokie įvyko segmentavimo pažeidimai, vis dėlto, bet kokiu atveju sistema dažnai bus nulaužiama.

Daugumoje Linux sistemų, dalis kietajame diske yra skirta virtualiai atminčiai, kai operacinė sistema bus įdiegiama. Ši dalis yra žinoma kaip „swap“ erdvė. Windows sistema naudoja „swap“ bylą vietoj padalijimo.

Virtualioji atmintis

Pagrindinis straipsnis – Virtualioji atmintis.

Virtualiosios atminties adresavimų (tokie kaip puslapiavimas, ar segmentavimas) naudojimas leidžia operacinės sistemos branduoliui pasirinkti kokią atminties sritį kiekviena programa gali naudoti bet kuriuo metu, kas operacinei sistemai sudaro galimybę naudoti tas pačias atminties sritis kelioms užduotims.

Jei programa bando naudoti atmintį, kuri nėra jai prieinamos atminties srityje, bet vis tiek buvo skirta jai, operacinės sistemos branduolys bus pertrauktas taip pat, lyg programa bandytų naudoti daugiau atminties nei jai yra skirta. Unix operacinėje sistemoje šis pertraukimas yra vadinamas „puslapio klaida“ (angl. Page fault).

Jei operacinės sistemos branduolys aptinka „puslapio klaidą“, jis pakeis virtualiosios atminties sritį programai, kuri šią klaidą sukėlė, skirdamas jai prašomą atminties sritį. Tai suteikia operacinės sistemos branduoliui galimybę skirti kiekvienai programai atminties sritį, bei nustatyti jos vietą.

Moderniose operacinėse sistemose, atmintis, kuri naudojama rečiau, gali laikinai būti saugoma diske, ar kitoje atminties laikmenoje, atlaisvinant tą atminties vietą kitoms programoms. Tai yra vadinama „keitimu“ (angl. Paging swapping), nes daugiau nei viena programa gali naudoti tą pačią atminties sritį, keičiant tos atminties srities turinį pagal pareikalavimą.

Programos vykdymas

Pagrindinis straipsnis – Procesas (informatika).

Operacinė sistema veikia kaip sąsaja tarp vartotojo ir techninės įrangos. Vartotojas bendrauja su technine įranga iš „kitos barikadų pusės“. Operacinė sistema servisų programinei įrangai rinkinys, suteikiantis PĮ galimybę abstrahuotis nuo techninės įrangos. Iš esmės, patį programos vykdymą galima susieti su operacinės sistemos kuriamu procesu, t. y. branduolys kuria procesus padalindamas atmintį bei kitus resursus, nustato procesų eiliškumą (sistemose, kuriose vienu metu yra vykdoma keletą užduočių), perduoda programos kodą į atmintį, bet vykdo pačią programą. Tuomet programa yra tarpininkas tarp vartotojo ir įrenginių bei vykdo jai numatytas funkcijas.

Kompiuterinis tinklas

Šiuo metu operacinės sistemos palaiko daug įvairių tinklo protokolų, techninės įrangos ir susijusios programinės įrangos. Tai reiškia, kad kompiuteriai, valdantys skirtingas operacines sistemas, gali dalyvauti bendrame tinkle (angl. network) tam, kad galėtų pasidalytų ištekliais: skaičiavimų pajėgumais (angl. Computing), rinkmenomis, spausdintuvais ir skaitytuvais, naudodami laidinį ar belaidį ryšį. Potencialiai, tinklai leidžia operacinei sistemai gauti prieigą prie nutolusio kompiuterio išteklių, suteikiančių tą pat funkcionalumą, kuri suteiktų tie ištekliai prijungti tiesiogiai prie kompiuterio. Tai gali būti paprasta komunikacija, tinklinės failų (rinkmenų) sistemos ar net naudojimasis kito kompiuterio grafine ar garsine technine įranga. Kai kurios tinklo paslaugos suteikia galimybę išteklius tinkle pasiekti kaip esančius toje pačioje sistemoje, pvz., SSH (SSH), kuris suteikia tinklo vartotojams tiesioginę prieigą prie kompiuterio tekstinės komandinės aplinkos (CLI).

Klientas/serveris atveju kliento programa per tinklą jungiasi prie kito kompiuterio – serverio. Serveris teikia įvairias paslaugas kitiems tinkle esantiems kompiuteriams ir vartotojams. Šios paslaugos suteikiamos per tam skirtas jungtis ar numeruotus prieigos punktus serveryje esančiame kažkokiu tai tinklo adresu (angl. Network address). Dažniausiai jungtis susiejama tik su vienu procesu, dažnai vadinamu demonu, atsakingu už duomenų, patenkančių ta jungtimi, apdorojimą, pvz., tinklalapių serveris dažniausiai atsakingas už 80-ąją jungtį. Demonas, savo ruožtu turi prieigą prie tam tikrų vietinių techninės ir programinės įrangos išteklių, ir gali atlikti kažkokius veiksmus per operacinės sistemos branduolį.

Daugelis operacinių sistemų palaiko vieną ar daugiau atvirų tinklo protokolų, pavyzdžiui, SNA (angl. Systems Network Architecture), IBM operacinėse sistemose, DECnet (angl. Digital Equipment Corporation) sistemose, ir specifiniai Microsoft protokolai (angl. SMB – Server message block). Windows operacinėse sistemose. Taip pat gali būti palaikomi specifiniai protokolai specifinėms užduotims, pvz., NFS (angl. Network file system) prieigai prie tinkle esančių rinkmenų. Protokolai kaip ESound, ar esd gali būti lengvai išplėsti per tinklą, kad lokali programinė įranga galėtų atkurti garsą naudodama nutolusią techninę įrangą.

Saugumas

Kompiuteris saugumas priklauso nuo teisingo technologijų veikimo bei taikymo. Šiuolaikinė operacinė sistema aprūpina prieigą prie daugybės išteklių, kurie yra pasiekiami programinei įrangai, esančiai sistemoje, ir į išorinius įrenginius tinklais per branduolį.

Operacinė sistema turi gebėti atskirti užklausas, kurias galima apdoroti, ir kiti, kurie negalimi apdoroti. Tuo metu, kuomet kai kurios sistemos gali tiesiog skirti privilegijuoto tarp neprivilegijuoto vartotojo, sistemos paprastai turi metodus identifikuoti vartotoją, pvz., vartotojo vardą. Kad nustatytume tapatumą, atliekamas autentifikavimas. Dažnai vartotojo vardas turi būti patikrintas, ir kiekvienas vartotojo vardas gali turėti slaptažodį. Taip pat, naudojami kiti autentifikavimo metodai: magnetinės kortelės ar biometriniai duomenys vietoje įprasto slaptažodžio. Kai kuriais atvejais, ypač ryšiams tarp tinklų, prie išteklių galima gauti prieigą be autentifikavimo (tokio kaip bendrų rinkmenų skaitymas per tinklo). Taip pat, apimta registruoto tapatumo sąvoka yra leidimas; tam tikros paslaugos ir išteklių, prieinami per užklausimą, vieną kartą registruotą į sistemą, yra surišti ar registruojami vartotojų pranešimu ar įvairiai formuotoms grupėms vartotojų, kuriems užklausimas priklauso.

Be to, į leisti/atmesti saugumo modelį, sistema su saugumo aukštu lygiu taip pat pasiūlys tikrinimo pasirinkimą. Jie leistų sekti prieigos prašymą prie išteklių (toks kaip, „kas skaitė šią rinkmeną?“). Vidaus saugumas, ar saugumas nuo jau veikiančios programos yra tiktai galimas, jei visi galbūt žalingi prašymai turi būti atlikti per įtraukimą į operacinės sistemos branduolį . Jei programos gali tiesiogiai gauti prieigą prie aparatinės įrangos ir išteklių, jie negaunami.

Išorinis saugumas apima prašymą iš išorės kompiuterio, tokio kaip registracijos vardas susijusiame pulte ar tam tikrame tinklo ryšyje. Išorinius prašymus dažnai perduoda per prietaiso vairuotojus į operacinės sistemos branduolį , kur juos gali perduoti paraiškomis, ar atlikti tiesiogiai. Operacinių sistemų saugumas ilgai buvo įmonė dėl labai jautrių duomenų, laikėsi kompiuteriai, abi komercinės ir karinės aplinkos. Jungtinių Valstijų Vyriausybės Gynybos departamentas (angl. Department of Defense, DoD) sukūrė Patikėtus Kompiuterinės sistemos Įvertinimo Kriterijus (TCSEC), kurie yra standartas, nustatantis pagrindinius reikalavimus tam, kad įvertintų saugumo efektyvumą. Tai nutiko didelei svarbai operacinės sistemos gamintojams, todėl, kad TCSEC buvo panaudotas, kad įvertintų, klasifikuotų ir išrinktų kompiuterines sistemas, svarstytas apdirbimui, laikymui ir jautrios ar slaptos informacijos paieškai (angl. Classified information).

Tinklo paslaugos apima pasiūlymą tokį, kaip bendras rinkmenų naudojimas, spausdina paslaugas, elektroninis paštas , žiniatinklio svetainės, ir rinkmenos perdavimo protokolai (angl. File transfer protocol) (FTP), iš kurių dauguma galėjo saugumą nukreipti į pavojų. Saugume yra aparatinės įrangos prietaisai, žinomi kaip gaisrasienės ar įsibrovimo susekimo/prevencijos sistemos (angl. Firewalls). Operaciniame sistemos lygmenyje, yra daug pasiekiamų programinės įrangos gaisrasienių, taip pat kaip įsibrovimo susekimo/prevencijos sistemos. Dauguma šiuolaikinių operacinių sistemų apima programinės įrangos gaisrasienę, kuri yra įgalinta neatvykus. Programinės įrangos gaisrasienė gali būti formuota, kad leistų ar paneigtų tinklo eismą į ar nuo paslaugos ar paraiškos, esančios operacinėje sistemoje. Todėl, kiekvienas gali įdiegti ir valdyti nesaugią paslaugą, tokią kaip Telnet ar FTP ir, kad būtų įmanomas saugumo pažeidimas. Todėl, kad gaisrasienė paneigia visą eismą, bandantį jungtis prie to uosto paslaugos.

Alternatyvi strategija, ir vienintelė smėliadėžės (angl. sandbox) strategija, pasiekiama sistemose, kurios nesutinka Popek ir Goldberg virtualizacijų reikalavimai (angl. Popek and Goldberg virtualization requirements), yra operacinė sistema, nevaldanti vartotojų programas kaip artimas kodas, bet vietoj to, ar mėgdžioja procesorių ar apsirūpina, šeimininkas p-kodui (angl. p-code) įkūrė sistemą tokią kaip Java.

Vidaus saugumas yra ypač tinkamas multivartotojų sistemoms; tai leidžia kiekvienam sistemos vartotojui turėti privačias rinkmenas, prie kurių kiti vartotojai negali kištis ar perskaityti. Vidaus saugumas yra taip pat gyvybinis, jei tikrinimas turi duoti kokios nors naudos, kadangi programa gali potencialiai apeiti operacinę sistemą, imtinai apeiti tikrinimą.

Daugiaprogramis apdorojimas

Daugiaprogramis apdorojimas (angl. Computer multitasking) nurodo kelių nepriklausomų programų veikimą tame pačiame kompiuteryje; suteikia vaizdą, kad vykdomos programos tuo pačiu metu. Kadangi daugelis kompiuterių gali padaryti daugiausiai vieną ar du dalykus tuo pačiu metu, tai paprastai daroma per laiko pasiskirstymą (angl. Time-sharing), tai reiškia, kad kiekviena programa naudoja dalį kompiuterio laiko įvykdymui.

Operacinės sistemos branduolys yra dalis programinės įrangos, vadinamos planuokle (angl. Scheduler), kuri nustato kiek laiko kiekviena programa naudos vykdymui ir kokia tvarka vykdymo kontrolė turi būti perduota į programas. Procesui valdymas perduodamas branduoliu, kuris leidžia patekti programai į procesorių ir atmintį (angl. Memory). Vėliau, kontrolė grįžta į branduolį per tam tikrą mechanizmą, taigi taip kita programa gali naudotis procesoriumi. Šis kontrolės perėjimas tarp branduolio ir taikymai vadinami konteksto keitimu (angl. Context switch).

Ankstesnis modelis, kuris valdė laiko pasiskirstymą programose buvo vadinamas kooperuotu daugiaprogramiu apdorojimu (angl. Cooperative multitasking). Pagal šį modelį, kai kontrolė perduodama programai per branduolį, ji gali būti vykdoma tiek ilgai, kol bus grąžinama į branduolį. Tai reiškia, kad neužbaigta arba blogai funkcionuojanti programa gali ne tik užkirsti kelią kitai programai pasinaudoti procesoriumi, bet ir pakabinti visą sistemą jei ji patenka į begalinį ciklą (angl. Infinite loop).

Požiūris vadovaujamas prioritetiniu daugiaprogramiu apdorojimu (angl. Preemptive multitasking) yra toks, kad svarbu užtikrinti, kad visoms programoms būtų teikiamas reguliarus laikas procesoriuje. Tai reiškia, kad visos programos turi būti ribojamos laiko atžvilgiu, kurį praleidžia procesoriuje be nutraukimo. Norint tai užbaigti, modernios operacinės sistemos branduolys pasinaudoja laiko nutraukimu. Saugaus režimo (angl. Protected mode) laikmatis nustatomas pagal branduolį, kuris sukelia grįžimą į peržiūros režimą (angl. supervisor mode) po nurodyto laiko praėjimo.

Daugeliui vartotojų operacinės sistemos kooperuotas daugiaprogramis apdorojimas yra visiškai pakankamas, kai namų kompiuteriuose paprastai valdo keletas gerai išbandytų programų. Windows NT buvo pirmoji versija Microsoft Windows, kuris vykdomas prioritetiniu daugiaprogramiu apdorojimu, tačiau jis nepasiekė namų vartotojų rinkos iki Windows XP, (nuo to laiko Windows NT buvo skirta specialistams.)

Branduolio pertraukimo palaikymas

Pastaraisiais metais yra kilęs didelis susirūpinimas dėl uždelsimo, siejamo su operacinės sistemos branduolio (angl. kernel) vykdymu, pavyzdžiui, kartais sistemose su vientisais branduoliais (angl. momonolithic kernel) neveiklus laikas trunka 100 milisekundžių arba ir daugiau. Ši delsa dažnai sukuria pastebimą sulėtėjimą stalinėse sistemose ir gali trukdyti operacinei sistemai atlikti laikui jautrius procesus, kaip tarkim garso įrašymas ar komunikacija.

Modernios operacinės sistemos pratęsia laikino proceso pertraukiamumo koncepciją įrangos tvarkyklėmis (angl. drivers) ir operacinės sistemos branduolio kodui (angl. kernel code), taigi suprantama, kad operacinės sistemos turi paskirstymo kontrolę vidiniams procesams. Operacinė sistema Windows Vista – įžanga į Windows vaizdo tvarkyklės modelį (angl. Windows Display Driver Model), įdiegia šią galimybę vaizdo tvarkyklėms (angl. display drivers). Operacinėje sistemoje Linux laikinai pertraukiamas branduolio modelis pradėtas naudoti nuo 2.6 – osios versijos leidžia visoms įrangos tvarkyklėms ir keletui branduolio kodo dalių naudotis pranašumais, gaunamais iš paskirstomo daugiaprogramio apdorojimo (angl. multi-tasking). Operacinėse sistemose Windows, prieš atsirandant operacinėms sistemoms Windows Vista ir Linux 2.6 versijai, visos tvarkyklės vykdymas buvo glaudus, kas reiškė sistemos sustingimą vykdant įrangos tvarkyklių įvedimą begaliniu ciklu.

Disko prieiga ir failų sistema

Pagrindinis straipsnis – Virtuali failų sistema.

Prieiga prie saugomų duomenų diske yra pagrindinis visų operacinių sistemų bruožas. Kompiuteriai kaupia duomenis diskuose (angl. Disk) naudodami failus (angl. File) sudarytus tam tikrų metodų pagalba, leidžiančius greičiau gauti prieigą didesniu patikimumu, ir geriau panaudoti disko laisvą vietą. Metodas, kuriuo failai yra saugomi diske, vadinamas failų sistema (angl. File system). Ji leidžia failams turėti vardus ir atributus, taip pat juos laikyti katalogų hierarchijoje arba aplankus išdėstyti katalogų medyje (angl. Directory tree).

Pirmosios operacinės sistemos paprastai palaikė vienos rūšies diską ir failų sistemą. Jų pajėgumas, greitis, rinkmenų pavadinimai ir katalogų struktūros buvo ribojami. Šie apribojimai atsispindėjo operacinėse sistemose, kuriose jie buvo suprojektuoti, todėl sunkiai palaikė daugiau nei vieną failų sistemą.

Nors daug paprasčiau operacinės sistemos palaiko ribotas galimybes patekti į atmintį, operacinės sistemos, kaip UNIX ir Linux palaiko technologiją, žinomą kaip virtual file system|virtuali failų sistema (angl. Virtual file system) arba VFS. Operacinės sistemos, tokios kaip UNIX palaiko daugelį duomenų saugojimo įtaisų, nepriklausomai nuo jų konstrukcijos, o failų sistemos turi būti prieinamos pere bendrąją taikomųjų programų sąsają (angl. Application programming interface) (API). Dėl to nebūtina programoms gauti daugiau informacijos apie prietaisą, nes ji yra prieinama. VFS leidžia operacinei sistemai suteikti prieigą neribotam prietaisų skaičiui ir daugybei įvairių failų sistemų, įdiegtų iš specifinio tvarkyklės įrenginio ir failų sistemos tvarkyklės.

Prijungti saugojimo įrenginiai (angl. Storage device) tokie kaip kietasis diskas (angl. Hard drive) yra prieinami per tvarkyklės įrenginį. Tvarkyklė supranta konkrečią įrenginio kalbą ir gali ją išversti į standartinę, naudodama operacinės sistemos prieigą prie visų įrenginio diskų. UNIX – tai grupinių įrenginių kalba (angl. Block devices).

Kai branduolys yra tinkamai įdiegtas tvarkyklėje, jis gali patekti į diską iš neapdoroto tvarkinio, kuris gali apimti vieną ar daugiau failų sistemą. Failų sistemos tvarkyklė naudojama versti komandoms, naudojant prieigą prie kiekvienos konkrečios failų sistemos į standartinį komandų rinkinį, kuriame operacinės sistemos gali naudotis visomis failų sistemomis. Programos gali spręsti šias failų sistemas remiantis vardais, katalogais/ aplankais esančiais hierarchinėje struktūroje. Jos gali kurti, naikinti, atidaryti ir uždaryti failus, taip pat surinkti įvairios informacijos apie juos, įskaitant prieigos teises, dydį, laisvą vietą, kūrimo ir modifikavimo datas.

Įvairūs failų sistemų skirtumai apsunkina failų sistemų palaikymą. Deklaruoti failų vardų simboliai, didžiosios ir mažosios raidės (angl. Case sensitivity) ir failų atributai (angl. File attributes) taip pat apsunkina failų sistemų sąveikų įgyvendinimą. Operacinės sistemos rekomenduoja specialiai failų sistemoms sukurtą jų naudojimą (ir atitinkamai palaikymą); pavyzdžiui, NTFS Windows operacinėje sistemoje ir ext3 bei ReiserFS Linux operacinėje sistemoje. Tačiau, praktikoje, trečios grupės diskasukiai dažniausiai palaiko plačiausiai naudojamas failų sistemas bendros paskirties operacinėse sistemose (pavyzdžiui, NTFS prieinamas Linux operacinėje sistemoje per NTFS-3g, Ext2/3 ir ReiserFS prieinami Windows operacinėje sistemoje per FS tvarkyklę (FS-driver) bei Rfstool.

Įrenginių tvarkyklės

Pagrindinis straipsnis – Tvarkyklė.

Įrenginių tvarkyklė – tai specialaus tipo kompiuterinė programinė įranga sukurta kad būtų galima naudoti techninę įrangą. Paprastai tai yra bendravimo su prietaisu sąsaja, naudojanti specialią kompiuterinę ryšių posistemio įrangą, kuri skirta prijungti, teikti komandas arba priimti duomenis iš prietaiso, jos yra būtinos norint susieti techninę įrangą su operacine sistema ir programine įranga. Tai yra specializuota kompiuterinė programa priklausanti nuo techninės įrangos bei operacinės sistemos, kuri aktyvuoja kitą programą, paprastai operacinę sistemą, taikomosios programinės įrangos paketą ar kompiuterinę programą, kad užtikrintų bendravimą su techniniu įtaisu ir paprastai įsikiša valdant būtinus asinchroninius, priklausomus nuo laiko techninės įrangos sąsajos poreikius.

Esminė įrenginių tvarkyklių paskirtis yra techninės įrangos abstrakcija. Kiekvienas techninio įrenginio modelis (net tos pačios klasės prietaiso) yra skirtingas. Naujesni modeliai išleidžiami gamintojų, kurie suteikia daugiau patikimumo ar geresnių rezultatų ir šie naujesni modeliai dažnai yra kontroliuojami kitaip. Negalima tikėtis, kad kompiuteriai ir jų operacinės sistemos tiek dabar, tiek ateityje žinos, kaip kontroliuoti kiekvieną prietaisą. Kad išspręstų šią problemą, operacinės sistemos iš esmės nusako kaip turėtų būti kontroliuojamas kiekvieno prietaiso tipas. Tada įrenginio tvarkyklės funkcija yra versti operacinės sistemos numatytos funkcijos signalus į prietaiso specifinius signalus. Teoriškai naujas prietaisas, kuris yra kontroliuojamas nauju būdu, turėtų veikti tinkamai, jei tvarkyklė yra tinkama. Nauja tvarkyklė užtikrina, kad įrenginys atrodytų ir veiktų kaip įprasta, operacinės sistemos požiūriu.

Mobilumas ir pritaikomumas skirtingoms operacinėms sistemoms

Taikomoji programinė įranga paprastai kuriama specialioms operacinėms sistemoms, o kartais tik pasirinktai techninei įrangai. Tačiau skirtingi vartotojai gali turėti skirtingų poreikių, todėl kiekvienos operacinės sistemos kūrėjai, kartu su programinės bei techninės įrangos gamintojais siekia apjungti kuo daugiau skirtingų vartotojų ir kurti programas, kurios galėtų būti naudojamos keliose skirtingose OS. Toks funkcionalumas reikalauja, kad programinė įranga būtų suderinta ir mobili (angl. portability, liet. mobilumas).

Kadangi operacinės sistemos kuriamos tokios, kad veiktų su tam tikra aparatine įranga, tai operacinė sistema gali būti laikoma platforma (angl. software platforms, liet. platforma) kitoms programoms, kurios rašomos naudojantis operacinės sistemos teikiamomis priemonėmis. Yra programų, rašomų tam tikrai terpei – virtualiajai mašinai (angl. OS Virtual machine, liet. virtualioji mašina) (pvz., Javos virtualiajai mašinai). Tokių programų platforma gali būti nurodoma virtualiąja mašina (kadangi ji skirta tam tikrai operacinei sistemai, o tai reiškia ir aparatinei įrangai). Pavyzdžiai: „Microsoft Windows“ platforma, „Mac OS“ platforma, „Unix“ platforma, „Java“ platforma. Norint pasiekti geresnių rezultatų ir mažinant programinės įrangos savikainą, operacinės sistemos turi plačiai pritaikomas sistemines bibliotekas.

Dar vienas būdas didinti operacinių sistemų pritaikomumą – priimti standartus. Pavyzdžiui, POSIX ir OS lygmenų (angl. OS abstraction layers, liet. OS lygmenys) bendrumai, kad sumažinti perkėlimo išlaidas ir aptarnauti maksimalų vartotojų skaičių.

Rinkmenos išdėstymo sistemos palaikymas šiuolaikinėse operacinėse sistemose

Skirtingos operacinės sistemos dirba su skirtingomis rinkmenų išdėstymo sistemomis (nevartotinas: failų sistema), tačiau yra kelios bendros rinkmenų išdėstymo sistemos, su kuriomis gali dirbti dauguma operacinių sistemų ir tvarkyklių. Skirtingos operacinės sistemos gali būti įdiegtos tik tam tikruose diskų ir rinkmenų išdėstymo sistemose.

Linux

Dauguma Linux palaiko keletą iš visų ext2, ext3, ext4, ReiserFS, Reiser4, JFS, XFS, GFS, GFS2, OCFS, OCFS2 ir NILFS. Ext failų sistema – ext2, ext3 ir ext4 yra pagrindiniai originaliuose Linux failų sistemose. Kitos kompanijos buvo išvystytos jų specialiųjų norų ir pomėgių patenkinimui arba pritaikyti UNIX, Microsoft Windows ir kitoms operacinėms sistemoms. Linux visiškai palaiko XFS ir JFS su FAT (MS-DOS failų sistema) ir HFS, kuri yra pirminė Macintosh failų sistema.

Per paskutinius metus, Microsoft Windows NT palaikanti NTFS failų sistema, pasirodė ir Linux‘e ir dabar palaikomos su kitoms giminingomis UNIX failų sistemomis. ISO 9660 ir Universal Disk Format (UDN) yra palaikomos su standartinėmis failų sistemomis, naudojamos CD, DVD ir Blu-ray diskuose. Galima įdiegti Linux daugumoj šitų failų sistemų. Skirtingai nuo kitų operacinių sistemų, Linux ir Unix leidžia naudoti bet kokią failų sistemą, nepriklausomai nuo to, kokia masinė informacijos priemonė joje kaupiama. Kita vertus, yra standusis diskas, diskai (CD, DVD…), USB raktas arba net talpinama viduje failą, kuris yra kitoje failų sistemoje.

Solaris

Solaris operacinė sistema naudoja UFS kaip savo pagrindinę failų sistema. Iki 1998, Solario Unix failų systema neturėjo registravimo/katalogavimo pajėgumų, bet laikui bėgant OS įgavo juos ir kitus naujus failų tvarkymo pajėgumus.

Papildomos funkcijos yra Veritas (katalogavimas) VxFS, QFS iš Sun Microsystems, priedai prie UFS įskaitant daugiaterabaitinį palaikymą ir UFS duomenų valdymas buvo įtraukta kaip operacinės sistemos dalis ir ZFS (atvirosios, poolable, 128-bit, suspaudžiamosios ir klaidas taisančios).

Branduolio plėtiniai buvo pridėti prie Solaris, kad leistu užkraunamoms Veritas VxFS operacijoms. Registravimas arba katalogavimas buvo pridėtas prie UFS Solaris 7. Solaris 10, Solaris Express, OpenSolaris versijos ir kitos atvirosios Soliario versijos veliau palaikė užkraunamus ZFS.

Loginis duomenų valdymas leidžia paskleisti failų sistemą daugelyje prietaisų, kad galima butų padidinti perteklių, talpą, ir/arba pralaidumą. Į Solarį įeina Solaris Volume Manager (anksčiau Solstice DiskSuite.) Soleris yra viena iš daugelio operatyviųjų sistemų, kurios palaikomos Veritas Volume Manager. Moderni Solario operatyvioji sistema užtemdo duomenų valdymo nauda per skaičiavimus virtualių saugyklų iš ZFS.

Specialiosios paskirties failų sistema

FAT failų sistema dažniausiai naudojama lanksčiuosiuose diskeliuose, flash atminties kortelėse, skaitmeniniuose fotoaparatuose, ir daugelyje kitų kompiuterio prietaisų. Kadangi ji yra gana paprasta, FAT failų sistemos vykdomos užduotys, lyginant su kitomis failų sistemomis, yra gana negausios. Ji naudoja labai paprastas duomenų struktūras, atlieka failų operacijas bei palieka daugiau laisvos vietos diske, kai yra pateikiami nedideli failai. ISO 9660 ir Universal Disk Format yra du dažniausiai naudojami formatai, kurie taikomi CD ir DVD. Mount Rainier yra naujesnis išplėtimas UDF palaikomas Linux 2.6 versija ir Windows Vista, kuris palengvina perrašymą į DVD, naudodamas tokį būdą kaip su diskeliais.

Žurnalinės failų sistemos

Žurnalų failų sistema, sistemos nelaimės atveju numato saugų atkūrimą. Rašo tam tikrą informaciją du kartus: iš pradžių į žurnalą, kuri yra rasta operacinių sistemų, tada į jos reikiamą vietą įprastoje failų sistemoje. Žurnalinė valdoma greta tvarkyklės ir laikosi atokiau, neprisileidžianti kiekvienos operacinės, kad pasikeistų turiniu diske. Susidūrimo atveju sistema gali susigrąžinti pastovią būseną atrandant žurnalo dalis. Daugelis UNIX failo sistemų įskaitant ir ReiserFS, JFS,ir Ext3 aprūpina žurnalinę.

Priešingai, nežurnalinės failų sistemos kaip paprastai visumoje turi būti apžiūrėtos praktiškai, toks kaip fsck ar chkdk bet kokiems nesuderinamumams po netvarkingo uždarymo. Soft atnaujinimai yra alternatyva žurnalui išvengti nereikalingų žodžių, kuri kruopščiai vykdo atnaujinimų operacijas. Prisijungti struktūrizuotuose failų sistemose ir ZFStaip pat skiriasi nuo tradicinių žurnalinių failų sistemų, tuo kad jos išvengtų nesuderinamumų, vengiant in place atnaujinimų, visada rašomos naujos duomenų kopijos.

Grafinė naudotojo sąsaja

Pagrindinis straipsnis – Grafinė naudotojo sąsaja.

Dauguma šiuolaikinių kompiuterinių sistemų turi grafinę vartotojo sąsają (angl. GUI, liet. grafinė naudotojo sąsaja). Kai kuriose kompiuterinėse sistemose, pvz., Microsoft Windows ir Mac OS grafinė vartotojo sąsaja yra integruota į branduolį.

Nors techniškai grafinė vartotojo sąsaja nėra operacinės sistemos dalis, tačiau jos palaikymo branduolyje padaro ją greitesnę, nes sumažina konteksto perjungimui reikalingą laiką, reikalingą grafinei sąsajai atliekant išvedimo operacijas. Modulinėse operacinėse sistemose grafikos posistemės iškeltos iš branduolio ir operacinės sistemos. 1980 Unix, VMS ir daugelis kitų sistemų veikė būtent taip. Linux ir Mac OS X taip pat laikosi modulinės ideologijos. Šiuolaikinėse Microsoft Windows versijose, pavyzdžiui, Windows Vista įdiegta grafikos posistemė, kurios didžioji dalis yra vartotojo erdvėje, tačiau tarp versijų Windows NT 4.0 ir Windows Server 2003 grafikos paprogramės didžioji dalis buvo branduolyje. Windows 9x grafinė sąsaja ir branduolys beveik vientisi.

Daugelis kompiuterio operacinės sistemos leidžia vartotojui įdiegti arba sukurti jo pasirinktą vartotojo sąsają. X Window System kartu su GNOME ar KDE dažniausiai pasitaiko Unix ir Unix-pagrįstų (BSD, Linux, Solaris) sistemų. Taip pat buvo siūloma nemaža grafinės aplinkos pakaitalų standartinei Windows sąsajai, tačiau pati bazinė aplinka negali būti atskirta nuo Windows.

Yra ir buvo Unix grafinių vartotojų sąsajų, dauguma iš jų kilę iš X11. Konkurencija tarp Unix gamintojų (HP, IBM, Sun) sukėlė didelę fragmentaciją, ir nors 1990 m. bandymas standartizuoti COSE ir CDE nepavyko dėl įvairių priežasčių, ilgainiui visas kitas sąsajas nustelbė GNOME ir KDE. Iki to laiko, prieš atsirandant atviro kodo darbastalio aplinkoms ir įrankiams, Motif buvo labiausiai paplitęs įrankių / darbastalio derinys (jo pagrindu buvo sukurta CDE).

Grafinė vartotojo sąsaja vystosi einant laikui. Pavyzdžiui, Windows pakeičia savo vartotojo sąsają beveik kiekvieną kartą išleisdama naują Windows versiją, Mac OS grafinė vartotojo sąsaja dramatiškai pasikeitė išleidus Mac OS X 1999 metais.