Operacinė sistema – tai programų rinkinys, kuriuo valdomi kompiuterio aparatiniai ir programiniai ištekliai. Nors operacinės sistemos pagrindą sudaro branduolys, tačiau vien jo nepakanka.
Istorijos pėdsakais
Pirmieji kompiuteriai operacinės sistemos (OS) neturėjo. Vėliau funkcijų bibliotekos buvo išplėstos iki užduočių eilių valdymo priemonių, peraugusių į operacines sistemas. Viena svarbiausių „IBM System/360“ kompiuterių sėkmės priežasčių – idėja sukurti vieną OS visai gaminių serijai. Septintajame praėjusio amžiaus dešimtmetyje sukurtoje OS/360 sistemoje buvo numatyta dar viena naujovė – diskinis kaupiklis. Truputį vėliau atsirado „Multics“ sistema, vienu metu leidusi keliems žmonėms dirbti tuo pačiu kompiuteriu, paskirstant jiems įrenginio darbo laiką (time-sharing). Aštuntajame dešimtmetyje D. Richie ir K. Thompsonas, nusižiūrėję nuo „Multics“, sukūrė „Unix“ operacinę sistemą, tapusią pavyzdžiu „Linux“ ir BSD sistemų šeimai.
Mikrokompiuteriai pakartojo didžiųjų kompiuterių raidos žingsnius. Vyresni kompiuterininkai turėtų prisiminti R Tape loading error, 0:1 pranešimą, kurį gaudavo bandydami iš magnetofono juostelės įkrauti programą į „ZX Spectrum“ kompiuterį. Tokie kompiuteriai neturėjo nei visavertės OS, nei diskinių kaupiklių. Vėliau, paplitus diskelių įrenginiams, buvo sukurta CP/M operacinė sistema, naudota daugelyje mikrokompiuterių. Šios sistemos „klonas“, pavadintas MS-DOS, tapo populiaria IBM PC šeimos OS.
Grafinė vartotojo sąsaja
Pele (pieštuku) ir klaviatūra valdoma grafinė vartotojo sąsaja (GUI) – įprastas šiuolaikinės OS komponentas. Tarnybinėms stotims (serveriams) skirtos OS neretai valdomos tik klaviatūra įvedant komandas, t. y. naudojant komandinės eilutės sąsają (CLI).
Nepaisant šio skirtumo, sąsajos remiasi aplinka, laukiančia vartotojo komandos (spragtelėjimo pele, klavišo paspaudimo).
Grafinis operacinės sistemos posistemis skirtas tam, kad informacija ir sistemos valdymo priemonės būtų patogiai pateiktos vartotojui. Dažniausiai daugelis šiuolaikinių OS („Linux“, BSD, „Mac OS X“ ir iš dalies „Windows“) kuriamos moduliniu principu, atskiriant grafinį posistemį nuo branduolio. Tokiu būdu padidėja sistemos stabilumas, sudaroma galimybė pasirinkti norimą grafinę aplinką, o tai yra įprasta „Linux“ bei BSD sistemose. „Windows“ sistemose tokios galimybės nėra, nors papildomomis programomis galima keisti langų tvarkyklės dekoracijas ar įprastą aplinkos programą (Explorer).
GUI supaprastina programuotojų darbą, nes jiems pakanka nurodyti, kur ir kokią valdymo priemonę (lango rėmelį, antraštę, valdymo mygtuką ir pan.) vaizduoti. Tačiau tai nėra vienintelė priemonė, padedanti lengviau dirbti.
Skirtingos skirtingų OS programos
Nuo OS/360 laikų programos kuriamos ne konkrečiam kompiuteriui, o operacinei sistemai, tinkamai visai kompiuterių šeimai. Kad tai būtų įmanoma įgyvendinti, nuspręsta sudaryti vieną programų failų struktūrą ir parengti bendrą bibliotekų rinkinį.
„Linux“ ir BSD OS „X Window System“ grafinis posistemis leidžia įkrauti bet kokią norimą grafinę aplinką
Programinis (objektinis, dvejetainis) failas – tai mašininių instrukcijų seka, įkraunama į atmintinę ir vėliau perduodama procesoriui, instrukcijas vykdančiam iš eilės. Nors tos pačios šeimos procesoriai instrukcijas supranta vienodai, tačiau vienos operacinės sistemos programų kitoje OS sužadinti greičiausiai nepavyks. OS naudoja skirtingos struktūros programų failus.
Programos atpažįstamos pagal failo antraštę, kurioje nurodomas programinio failo tipas (programa, biblioteka, tvarkyklė), kodo ir duomenų blokų adresai bei kita informacija, padedanti tinkamai įkrauti ir vykdyti programą.
Pavyzdžiui, dabartinėse Windows programose taikomas patobulintas „Unix System V R3“ sistemų COFF (Common Object File Format) failų formatas „Portable Executable“ (PE). 1999 metais COFF buvo pripažintas pasenusiu, ir pasirodžiusioje „Unix System V R4“ versijoje jau buvo ELF (Executable and Linking Format) tipo programos. Šiuo metu jos naudojamos ir „Linux“, „Solaris“, BSD sistemose.
Bibliotekos, paslaugos ir kitų OS programos
Programų rašymo procesui supaprastinti OS pateikia parengtų funkcijų bibliotekas, kurių ištekliais gali naudotis programuotojai. Kurdami programą, jie nurodo norimą bibliotekos pavadinimą. Kompiliuojant į programinį failą įtraukiami užsakytų funkcijų šaukiniai ir nurodomas bibliotekos failo pavadinimas. Įkraunant ar vykdant programą, OS ieško nurodyto failo ir iš jo įkrauna reikalingas priemones.
Kompiliuojant statiniu būdu, į programinį failą įtraukiamas ir funkcijų kodas. Programos failas yra didesnis, tačiau darbui nereikalingas bibliotekos failas ir programą galima perkelti iš vieno kompiuterio į kitą.
Bibliotekos – tai dar viena priežastis, dėl kurios „Linux“ sistemose neveikia „Windows“ programos ir atvirkščiai. Net jei OS atpažintų programos struktūrą ir ją įkrautų, programai pritrūktų papildomų funkcijų (jos dažnai net vadinamos kitu vardu). Šiai problemai spręsti yra parengtos specialios programos („Wine“, „Cooperative Linux“), sukuriančios kitos OS aplinką ir bibliotekų failus.
Šiuose failuose esantis programinis kodas sužadina atitinkamas pagrindinės OS bibliotekas. Tiesa, tokios programos nėra tobulos, todėl naivu tikėtis, kad visiškai kitokios struktūros OS programos veiks nepriekaištingai. Kas kita – giminingos sistemos. Pavyzdžiui, „FreeBSD“ gali puikiausiai vykdyti „Linux“ programas. Tam tik reikia kompiliuojant OS branduolį sužadinti keletą nuostatų.
Bibliotekos reikalingos programuotojams, tuo tarpu OS paslaugos (services) praverčia ir paprastiems vartotojams. Be jų būtų sudėtingiau ar net neįmanoma spausdinti, skenuoti, tinklu siųsti duomenų, naršyti internete. Įkraunama OS sužadina keletą ar keliolika tarnybų, kurios rūpinasi rutininiais priežiūros darbais.
Failai, katalogai ir medžiai
Visose dabartinėse OS naudojami failai, saugomi kaupiklyje tam tikra tvarka. Beveik visų sistemų failai sudaro hierarchinę katalogų struktūrą, tačiau kiekviena OS tai daro savaip.
Programas galima atpažinti žvilgtelėjus į programos failo pradžią. ELF programų pradžioje yra „ELF“ eilutė, o PE vykdomieji failai prasideda simboliais „MZ“
Pavyzdžiui, „Unix“ šeimos OS kelio iki failo dalys atskiriamos pasvirusiu brūkšniu „/“. Tokį skyriklį imituoja ir MS-DOS bei „Windows“, tačiau MS-DOS kūrėjai jau buvo nusikopijavę CP/M OS programos parametrų pateikimo būdą: jie nurodomi po „/“, todėl katalogams atskirti pasirinktas įkypas brūkšnys „\“. Senesnės „Mac OS“ versijos katalogus skirdavo dvitaškiu „:“, o RISC OS – tašku „.“.
Skirtumų yra ir daugiau, nes kiekviena failų sistema buvo kuriama atsižvelgiant į OS ar specifinės užduoties poreikius. Dėl to OS yra visiškai suderinama tik su keletu failų sistemų, o kitas gali naudoti tik duomenims saugoti. Pavyzdžiui, „Windows“ Vista gali būti diegiama tik į NTFS tipo failų sistemą, tačiau gali naudotis ir FAT12, FAT16, FAT32 failų sistemų duomenimis, o pasitelkus papildomas programas – dar ir „Linux“ Ext 2/3 ar „Mac“ OS HFS. Tuo tarpu „Linux“ ir „NetBSD“ sistemos gali būti diegiamos į daugiau failų sistemų.
Skirtumai gali pasireikšti ir perkeliant duomenis iš vienos failų sistemos į kitą. Pavyzdžiui, Failas, FAILAS ir failas yra trys skirtingi failai „Unix“ šeimos sistemose, tuo tarpu „Windows“ sistemose tai bus tas pats failas.
Šiuolaikinės operacinės sistemos buvo kurtos remiantis daugiau nei per keturias dešimtis metų sukauptomis žiniomis
Interneto nuorodos
- Operacinėms sistemoms skirtas internetinės enciklopedijos „Wikipedia“ puslapis.
- „Windows“ aplinką imituojančios „Wine“ programos puslapis.
- „Windows“ sistemoms pritaikytas „Linux“ branduolys, leidžiantis sužadinti „Linux sistemą“ kaip atskirą programinį procesą.
- Nors ir senstelėjęs, bet vis dar aktualus kompiuterio struktūros vadovas.