# Operacinė sistema

*Kitos reikšmės – Os.*
**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.

## Paskirtis

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

#### Skirstymas naudotojo požiūriu

Operacinės sistemos neretai skirstomos pagal paskirtį:

Asmeniniams kompiuteriams skirtos OSlabai supaprastina vartotojo darbą su kompiuteriu, turi grafinę aplinką, leidžia klausytis muzikos, žaisti žaidimus ir pan.
Darbo stotims skirtos OSleidžia efektyviai panaudoti daugelį procesorių, itin didelius atminties kiekius ir pan.
Serveriams skirtos OSleidž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 OSsuteikia 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. *embedded*) OSgali dirbti labai ribotas galimybes turinčiuose kompiuteriuose (mikrovaldikliuose), yra greitos, tačiau dažniausiai neturi išvystytų programų valdymo ir kitų galimybių.
Delniniams kompiuteriams bei mobiliems telefonams skirtos OSyra panašios į prietaisams skirtas, tačiau turi grafinę aplinką, pritaikytos eiliniam naudotojui.
## UNIX failų sistemos

UNIX failų sistema yra kertinis visos operacinės sistemos komponentas – „viskas yra failas“. Ji nėra vien būdas duomenims saugoti: čia pasiekiami išoriniai įrenginiai (/dev direktorijuje yra failai klaviatūrai, pelei, video kamerai), jos pagalba (iš tiesų nieko į diską nerašydami) informacija keičiasi kartu vykdomi procesai, pateikiama įvairi papildoma informacija (pavyzdžiui, iš */proc/uptime* galima perskaityti kiek laiko, sekundėmis, praėjo nuo sistemos starto). Visa UNIX failų sistema yra viename direktorijuje – **/** – kurio subdirektorijuose pasiekiami visi prijungti diskai, kiti įrenginiai bei pačios sistemos komponentai. Windows tokių direktorijų dažniausiai būna daugiau – **C:\, D:\** ir panašiai).

## 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ų eilę 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.

## Žinomesnės operacinės sistemos

### Asmeniniams kompiuteriams skirtos sistemos

* Amiga OS
* Haiku
* KolibriOS
* macOS
* Windows
* Linux
	+ Debian
	+ Baltix
	+ Ubuntu
	+ Fedora Workstation
	+ Gentoo Linux
	+ openSUSE
* Minix
* BSD

### Delniniams kompiuteriams skirtos sistemos

* Linux
* iOS
* Android

### Serveriams bei darbo stotims skirtos sistemos

* Linux
	+ Archlinux
	+ Debian
		- Ubuntu
	+ Fedora Server
	+ Gentoo Linux
	+ Red Hat Enterprise Linux
	+ SUSE Linux Enterprise
* Unix
	+ BSD
		- FreeBSD
		- macOS
		- NetBSD
		- OpenBSD
	+ System V
		- AIX
		- HP-UX
		- Solaris
* GNU Hurd
* Microsoft Windows
* OpenVMS
* Plan 9
* z/OS (OS/390)

### Realaus laiko sistemos

* Lynx OS
* QNX
* VxWorks

### Kitos sistemos

* DOS
	+ DR-DOS (Open DOS)
	+ FreeDOS
	+ MS-DOS
	+ PC-DOS
	+ PTS-DOS

## Savybės

### 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 vykdomas specialus kodas.
Net ir paprasčiausių kompiuterių techninė įranga dirba su pertraukimais. Kai nutraukiamas vykdomos programos veiksmas, kompiuterio techninė įranga automatiškai sustabdo veikiančią programą, išsaugo joje esančią informaciją ir vykdomas pertraukimo apdorojimo kodas. Moderniose operacinėse sistemose pertraukimą apdoroja operacinės sistemos branduolys. Pertraukimai gali ateiti iš bet kokios kompiuterio techninės įrangos ar paleistos programos. Kai 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 operacinės sistemos perkrovimą. Jei programa nori naudotis technine įranga, pavyzdžiui, ji gali perkrauti operacinės sistemos branduolį. Po pertraukimo kontrolė turi būti grąžinta branduoliui. Branduolys gali pakartoti procesą. Jei programa turi papildomų resursų, pavyzdžiui, atminties, ji bus atiduota branduolio resursams.

### Apsaugos aplinka ir prižiūrėtojo aplinka

Šiuolaikiniai procesoriai 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 (apsaugotas režimas) 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 aplinkas, 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ų, veikiančių toje aplinkoje, gebėjimą, aprūpinanti sistemų, kaip virtualioji atmintis, adresavimą ir prieigas, ribojant prieigą pagrindinės įrangos aplinkoje, 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 vartotojų 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 apsaugota aplinka 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 prieigą prie pagrindinės įrangos ir atminties.

Terminas „apsaugos aplinkos ištekliai“ apskritai siejasi su vienu ar daugiau centrinio procesoriaus registrų, 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

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, kiekvienas 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čią 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 egzistuoja ne 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

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

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ų techninei įrangai rinkinys, suteikiantis PĮ galimybę kreiptis į procesus, sudarytus iš mažesnių procesų (servisus). 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ą, kurį 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

Kompiuterio 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 kitas, kurių negalima apdoroti. Tuo metu, kuomet kai kurios sistemos gali tiesiog skirti privilegijuotą nuo 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 tinklą). Taip pat, apimta registruoto tapatumo sąvoka - yra leidimas; tam tikros paslaugos ir ištekliai, 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 reikalingas, dėl labai jautrių duomenų, naudotas kompiuteriams, komercinėms ir saugumo programoms. 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 yra tokios, kaip bendras rinkmenų naudojimas, spausdinimo paslaugos, 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 netiesiogiai. 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ė uždraudžia visą eismą, jungiantis prie to porto paslaugos.

Alternatyvi strategija ir vienintelė *smėliadėžės* (angl. *sandbox*) strategija, pasiekiama sistemose, kurios nesutinka su *Popek* ir *Goldberg* virtualizacijų reikalavimais (angl. *Popek and Goldberg virtualization requirements*), yra operacinė sistema, kuri nevaldo vartotojų programų kaip artimas kodas, bet tam, kad mėgdžiotų procesorių ir aprūpintų, šeimininkas p-kodui (angl. *p-code*) įkūrė Java sistemą.

Vidaus saugumas yra ypač tinkamas *multivartotojų* sistemoms; tai leidžia kiekvienam sistemos vartotojui turėti privačias rinkmenas, kurių kiti vartotojai negali perskaityti ar keisti. Vidaus saugumas yra taip pat svarbus, jei tikrinimas turi duoti grąžinti kažkokią reikšmę, 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. Daugelis kompiuterių gali padaryti daugiausiai vieną ar du dalykus tuo pačiu metu, tai paprastai daroma per laiko skirstymą (angl. *Time-sharing*), tai reiškia, kad kompiuteris paskirsto laiką programų į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 programai patekti į 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 iš 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ų 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*). Linux operacinėje sistemoje 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.

### Planavimas

Sistemose, vykdančiose daugelį procesų, vienu metu atmintyje saugoma informacija apie keletą procesų. Kiekvienas procesas turi funkcijas, atliekamas laukiant kol bus įvykdytas įvedimas/išvedimas ar kiti veiksmai susiję su išoriniais įvykiais. Procesorius vykdo vieną procesą, kai kiti procesai yra laukimo režime.
Daugprocesinės sistemos veikimas pagrįstas planavimu.
Sistemų su keliais procesoriais planavimas yra sudėtingesnis, apimantis planavimą kuris vykdomas sistemose su vienu procesoriumi.

#### Planavimas kompiuteriuose su vienu procesoriumi

Procesoriaus planavimas skirstomas pagal procesų tipą.
Procesai turi nustatytą laiką, per kurį turi būti įvykdyti. Skirstomi į ilgus, vidutinio ilgumo, trumpus procesus.
Ilgos trukmės procesai planuojami, juos skaidant į trumpesnio vykdymo procesus. Vienose sistemose jie statomi į steką, skirtą vidutinio ilgio procesams, kitose - trumpiems procesams. Pirmu atveju procesams, jų statusas ir stadija yra saugomi diske. Pirmenybė skiriama tiems procesams, kuriuos vykdyti naudotojas parinko pirmus.
Vidutinio ilgumo procesai planuojami naudojant *keitimo* procesą (angl. swapping). Procesų užkrovimas į atmintį priklauso nuo sistemos galimybių vykdyti procesus vienu metu, nuo virtualios atminties egzistavimo, atminties valdymo, kiek atminties procesui reikalinga.
Trumpi procesai yra vykdomi jų neskaidant. Pertraukiami tik įvykus įvedimui/išvedimui, laiko pertraukimui, operacinės sistemos įvykiams, signalams.
Planavimo algoritmas dažniausiai yra pagrįstas procesų planavimu, ne naudotojo veiksmų aptarnavimui (žemesnis abstrakcijos lygmuo). Procesų parinkimas vykdymui yra atliekant jų vertinimą parenkant jiems skaitines reikšmes. Dažniausiai vertinami proceso vykdymo laikas, pertraukto proceso laukimo laikas, bei proceso savybės. Tai įvertinus, procesui nustatomas prioritetas. Procesas iš eilės vykdymui imamas tas, kurio prioritetas yra didžiausias.

Planavimo strategijos skiriasi būdu, kuriuo parenkamas vykdymui procesas iš laukiančiųjų eilės. Tai vienas iš planavimo strategijų rūšiavimų.
Trumpi procesai parenkami vykdymui pagal principą - pirmas pradėtas vykdyti, pirmas baigtas vykdyti, vykdymui parenkamas tas, kuris yra eilėje ilgiausiai.
Ciklinis planavimas - naudojant sistemos laikrodį. Praėjus nustatytam laiko tarpui, yra generuojamas pertraukimas, tada vykdymui yra parenkamas kitas procesas iš laukiančiųjų eilės, o vykdytas procesas padedamas į eilę.
Pačio trumpiausio proceso vykdymas - tai planavimo strategija, kai parenkamas procesas pagal tai kiek liko laiko iki jo įvykdymo. Jei užtenka laiko iki kito pertraukimo, tai procesas yra įvykdomas, kitu atveju - padedamas į eilę. Šitam algoritmui yra svarbus teisingas reikalingo procesui įvykdyti laiko įvertinimas, kurį atlieka OS. Dėl klaidos sistema ne laiku gali nustoti vykdyti procesą.
Trumpiausio laiko algoritmas - tai planavimo algoritmas, kai vykdymui parenkamas procesas su trumpiausiu laiku iki jo įvykdymo. Čia procesas vykdomas iki pabaigos.
Planavimas, pagrįstas atsiliepimo į įvykį (reagavimo) greičiu. Paskaičiuojamas statistiškai. Procesas parenkamas iš eilės pagal tai, kaip greitai yra reaguojama į jo įvykius.
Prioriteto mažinimas - planavimo strategija, kai proceso prioritetas yra sumažinamas, jei procesas ilgai vykdomas. Trūkumas - ilgų procesų vykdymo laikas dar labiau padidėja.

Vartotojui yra svarbu, kaip bus vykdomas ne vienas procesas, bet jų grupės. Jei jie yra įvertinami, tai naudojamas *teisingas* planavimo algoritmas. Čia kiekvienas vartotojas taip pat laikomas procesu. Tai reikalinga, kad įvertinti visus procesus ir jų naudojamus resursus. Šis planavimas naudojamas UNIX sistemose.

#### Planavimas kompiuteriuose su keliais procesoriais

Jei atsiranda procesas, kurį reikia vykdyti, parenkamas tuo metu laisvas procesorius. Tariama, kad visi serveriai yra vienodi. Jei visi serveriai yra užimti, tai procesas atsiduria laukiančiųjų eilėje. Galimas variantas, kad kiekvienas procesorius turi savo eilę.
Planavimo algoritmas daugiaprocesinėje sistemoje vykdo

* proceso paskyrimą procesoriui
* procesų dėjimą į laukiančiųjų eilę
* proceso parinkimą vykdymui iš eilės.

#### Realaus laiko sistemų planavimas

Įvertinami ne tik procesoriai, bet ir laikas skirtas vertinimui. Procesai ir procesoriai čia turi savo prioritetus. Procesai valdo arba reaguoja į įvykius, kurie vyksta realiu laiku. Įvykiams apdoroti yra paskirtas laikas. Ar šis požymis yra griežtas, ar orientacinio pobūdžio, tai realaus laiko proceso charakteristika. Realaus laiko procesai skirstomi taip pat pagal tai, ar jie yra periodiniai.

Realaus laiko sistemos turi tenkinti reikalavimus:

* determinuotos
* jautrios įvykiams
* jautrios vartotojo veiksmams
* patikimumas
* atsistatymas po klaidos

Realaus laiko sistemų planavimo algoritmai skirstomi pagal

* vykdoma planavimo analizė
	+ planavimo analizė statistinė ar dinaminė
	+ vykdomas laiko vertinimas procesų parinkimui ar naudojamas keitimas pagal kitus procesų parametrus

Realaus laiko sistemų planavimo klasifikacija

* statistinis planavimas, naudojant skaičiavimo lenteles
* statistinis planavimas, naudojant prioritetus (čia kintamas procesų vykdymo laikas)
* dinaminis planavimas pagal eilę
* dinaminis planavimas, atliekamas įvertinimas pasiekti geriausią rezultatą (svarbiausias kriterijus - procesui skirtas laikas)

### Disko prieiga ir 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 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 per 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

Į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 dalyvauja 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 abstrakcijos lygmenų (angl. *OS abstraction layers*) 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 šias failų sistemas arba dalį iš jų: ext2, ext3, ext4, ReiserFS, Reiser4, JFS, XFS, GFS, GFS2, OCFS, OCFS2 ir NILFS. Ext failų sistema - ext2, ext3 ir ext4 yra pagrindiniai originaliose 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ų sistemą, 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 talpina failą, kuris yra kitoje failų sistemoje.

#### Solaris

Solaris operacinė sistema naudoja UFS kaip savo pagrindinę failų sistemą. Iki 1998, Solario Unix failų sistema neturėjo registravimo ir 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 vėliau palaikė užkraunamus ZFS.

Loginis duomenų valdymas leidžia paskleisti failų sistemą daugelyje prietaisų, kad galima būtų padidinti perteklių, talpą, pralaidumą. Į Solarį įeina Solaris Volume Manager (anksčiau Solstice DiskSuite) Solaris yra viena iš daugelio operatyviųjų sistemų, kurios palaikomos Veritas Volume Manager. Moderni Solario operatyvioji sistema užtemdo duomenų valdymo naudą 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 failų 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ų, kruopščiai vykdanti 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

Dauguma šiuolaikinių kompiuterinių sistemų turi grafinę vartotojo sąsają (angl. *GUI*). 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 palaikymas 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 operacinių sistemų 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 darbalaukio aplinkoms ir įrankiams, Motif buvo labiausiai paplitęs įrankių / darbalaukio derinys (jo pagrindu buvo sukurta CDE). UNIX serveriuose įprasta saugumo sumetimais grafinių sąsajų apskritai neturėti.

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.

## Nuorodos

KolibriOS
FS-driver
Rfstool[neveikianti nuoroda]

## Šaltiniai

|  |  |
| --- | --- |
|    | **Šiame straipsnyje naudojami diskutuotini terminai.** Daugiau apie kompiuterinius terminus skaitykite žodynėlyje. |