Käyttöjärjestelmä

Wikipedia
Loikkaa: valikkoon, hakuun

Käyttöjärjestelmä on keskeinen ohjelmisto tietokoneessa. Se mahdollistaa muiden ohjelmien toiminnan. Se hallinnoi tietokoneen resursseja, luo laitteiston yksityiskohdista riippumattoman operointialustan ja järjestelmäkutsut. Järjestelmäkutsuihin kuuluu korkeamman tason käsitteitä, kuten tiedostojärjestelmä, virtuaalimuisti, muistinhallinta sekä verkkoprotokollat, ja niihin liittyviä operaatioita, sekä erinäisiä käytäntöjä. Käyttöjärjestelmän useita satoja järjestelmäkutsuja määrittelevät myös erilaiset standardit kuten POSIX tai sitä laajentava LSB.

Historia[muokkaa | muokkaa wikitekstiä]

Ensimmäisissä tietokoneissa ei vielä ollut käyttöjärjestelmää. Ohjelmat kirjoitettiin reikäkorteille, paperi- tai magneettinauhoille, ja niille annettiin tietty suoritusaika tietokoneella. Jokainen suoritettava ohjelma piti ohjelmoida yksilöllisesti tietylle tietokoneelle, ja ohjelman tuli hallita kaikkia tietokoneen komponentteja ja oheislaitteita. Useiden ohjelmien samanaikainen käyttäminen oli hankalaa ja aikaa vievää, koska moniajoa ei ollut. Jos halusi suorittaa ohjelman uudelleen toisella syötteellä (input, lähtöarvo), piti ensin toinen ohjelma ladata koneeseen ja suorittaa se, ja sen jälkeen vaihtaa jälleen takaisin alkuperäiseen ohjelmaan, kelata se oikeaan kohtaan nauhaa tai levyä ja antaa itse toisen ohjelman syöte (input, lähtöarvo) kyseisen ohjelman lähteenä (output, lopputuloksena). Ohjelman suorittaminen toisenlaisella tietokoneella vaati ohjelman ohjauskäskyjen kirjoittamista uudelleen toisen tietokoneen laitekäskyjen mukaiseksi. Tämä hidasti ohjelmien käyttämistä muissa kuin samantyyppisessä tietokoneessa.[1]

Tällaisia perustavanlaatuisia käyttöongelmia ratkaisemaan kehitettiin käyttöjärjestelmä, joka sijoittuu laitteiston ja suoritettavan sovelluksen väliin. Käyttöjärjestelmään ohjelmoitiin käytettävien laitteistojen monimutkaiset ohjauskäskyt, ja nämä tarjottiin selkeinä järjestelmäkutsuina ohjelmistojen kehittäjille.

Ensimmäiset käyttöjärjestelmät suunniteltiin 1950– ja 1960–luvuilla. Ne laadittiin prosessien suoritusnopeutta ajatellen monoliittisiksi, yhtenä binääritiedostona toimiviksi ydintilassa. [2]. Ensimmäisten käyttöjärjestelmien muistirajoitus oli vain 32 tuhatta sanaa, mikä esti monimutkaisten käyttöjärjestelmien ohjelmoimisen. Niinpä käyttöjärjestelmät pysyivät helposti ohjelmoitavina. Teknisen kehityksen myötä käyttöjärjestelmien kokorajoitukset poistuivat. Tämä johti käyttöjärjestelmiin, jotka sisälsivät useita miljoonia rivejä koodia. Ohjelmakoodin monimutkaistumisen vuoksi harva ohjelmoija tunsi enää käyttöjärjestelmän toiminnan kokonaisuudessaan.[2]

Käyttöjärjestelmärakenteet[muokkaa | muokkaa wikitekstiä]

Käyttöjärjestelmä-rakenteet
Kaksi Käyttöjärjestelmä-rakenteiden pääluokkaa

Käyttöjärjestelmään voi kuulua mikroytimen lisäksi useita käyttöjärjestelmä-moduuleita sijoitettuna joko ydin- tai käyttäjätilaan, kaikkien toimiessa supervisor-tilassa mutta kahdessa osoiteavaruudessa (ydin- sekä käyttäjä-tilassa). Toisaalta käyttöjärjestelmä voi muodostua pelkästään monoliittisesta ytimestä, mikä on alkuperäinen käyttöjärjestelmän toteutustapa. Tuolloin käyttöjärjestelmä toimii yksinään ydin- ja supervisor-tilassa.

Komentorivisovellukset, järjestelmäsovellukset, sovellusohjelmat sekä niillä toteutettavat erilaiset käyttöliittymät, eivät kuulu käyttöjärjestelmään.

Toiminnallisuuksia listaamalla ei voida yksiselitteisesti määritellä, mitä käyttöjärjestelmään kuuluu, vaan se voidaan määritellä vain rakennekaaviosta ja toteutustavasta tapauskohtaisesti. Ohjelmiston on täytettävä tietyt määreet, jotta sitä voidaan kutsua käyttöjärjestelmäksi, mutta enemmänkin ominaisuuksia se saa sisältää. [3]

Käyttöjärjestelmän kahdella päärakenteella on erilaisia hyötyjä ja haittoja, joihin liittyen on aikoinaan käyty kiihkeitä väittelyitä uutisryhmissä [4].

Käyttöjärjestelmien erilaisia rakenteita on kehitetty aikojen saatossa, yleensä sovitellen kahta päärakennetta (monoliittinen - mikroydin), mutta myös toteuttaen erityisiä teknisiä rakenteita soveltavia, kuten eksoydin- tai nanoydinpohjaisia järjestelmiä. Lisäksi on toteutettu myös sekavia ratkaisuja toteuttavia käyttöjärjestelmiä, kuten niin kutsuttu hybridiydin. Hybridiytimen ovat monet asiantuntijat leimanneet pelkästään markkinoinniksi, sillä sen mikroydin on rakenteellinen.

Linus Torvalds, Linux-käyttöjärjestelmän luoja, on sanonut:
Mitä koko hybrid kernel -juttuun tulee, siinä on kyse vain markkinoinnista. Se on mennyt jotenkin näin, että "mikrokerneleillä oli niin hyvä PR-arvo... Miten saadaan PR:ää meidän kernelillemme? Taisin keksiä, annetaan sille jokin hauska nimi ja yritetään saada sille kaikki se PR-etu, mitä tuolla toisella järjestelmällä oli..."[5]

Erilaiset käyttöjärjestelmärakenteet ovat pääpiirteittäin selkeitä, mutta ne voivat sisällyttää tiettyjä ideoita toisista rakenteista. Esimerkiksi monoliittinen käyttöjärjestelmä voi olla modulaarinen siten, ettei käyttöjärjestelmä ole yksi binääritiedosto, vaan osa järjestelmän toiminnoista, kuten laiteajurit, ovat erillisiä tiedostoja. Näiden tiedostojen liitos on tiukka itse ytimeen: kun moduuli ladataan kiintolevyltä muistiin, se toimii kuin käyttöjärjestelmä olisi yksi binääritiedosto eli käyttöjärjestelmä toimii ilman lapsiprosesseja. Modulaarisuus voi olla myös suoritustavassa, missä muut käyttöjärjestelmän moduulit toimivat omina suojattuina prosesseina, joita mikroydin hallitsee.

Mikrorakenne[muokkaa | muokkaa wikitekstiä]

Uudempi ja nykyään suosituin käyttöjärjestelmärakenne on mikroydin, jossa käyttöjärjestelmä on pilkottu pelkistetyksi ytimeksi sekä käyttöjärjestelmämoduuleihin, jotka toteuttavat esimerkiksi muistinhallinnan, tiedostojärjestelmät ja verkkoprotokollat. Koska pelkistetty ydin toimii yksinään ydintilassa ja muut käyttöjärjestelmän osat käyttäjätilassa, joudutaan järjestelmäkutsun tullessa tietoa siirtämään tarvittaessa eri moduulien välillä että ydintilan kautta kierrätettynä vaihtaen tieto ydintilan ja käyttäjätilan osoiteavaruuden rajalla, joka johtaa viiveisiin käskyjen suorituksessa. Pahimmillaan käyttöjärjestelmä toimii 50 % hitaammin kuin monoliittinen, mutta parhaimmillaan taas vain 10 % hitaammin, nykyisillä tietokoneilla suorituskyvyn eron jääden melkein mitättömäksi.

Mikroytimisen käyttöjärjestelmän suosioon on useampia teoreettisia syitä. Tietoturva sekä helppo ohjelmoitavuus. Erilaiset tutkimukset ovat näyttäneet toteen että tavallisessa ohjelmassa on 1–20 virhettä jokaista 1000 riviä koodia kohden. Käyttöjärjestelmät ovat paljon monimutkaisempia kuin tavalliset ohjelmat tai laitteistoajurit, joissa tyypillisesti on enemmän virheitä tuhannella rivillä koodia kuin muussa osassa käyttöjärjestelmää [2].

Mikroytimisen rakenteen omaava käyttöjärjestelmä on modulaarinen, ja jokainen moduuli on suojattu vielä toisista moduuleista. Tällöin yhden moduulin kaatuessa vain kyseinen käyttöjärjestelmäpalvelu kaatuu muiden jäädessä toimintaan. Jokainen laiteajuri on myös suojattu, ja tällöin yhden laiteajurin kaatuessa vain kyseinen laite katoaa pois käytöstä siksi aikaa kun moduuli ladataan uudelleen käyttöön.

Monoliittinen rakenne[muokkaa | muokkaa wikitekstiä]

Monoliittisen käyttöjärjestelmän kohdalla virhe ajurissa tai käyttöjärjestelmän toiminnoissa johtaa käyttöjärjestelmän kaatumiseen. Tästä on useimmiten merkkinä "Kernel panic!" -ilmoitus. Monoliittinen käyttöjärjestelmä voi olla myös modulaarinen. Tällöin käyttöjärjestelmä ei ole vain yksi binääritiedosto. Osa toiminnoista ja ajureista on omina tiedostoina, jotka ladataan tarvittaessa RAM-muistiin. Modulaarisuudella saadaan käyttöjärjestelmän kokoa pienennettyä sekä vakautta lisättyä, kun vain tarvittaessa tietyt toiminnot ovat käynnissä. Tämä myös vähentää tarvetta asentaa levylle useita versioita käyttöjärjestelmästä aina erilaisilla asetuksilla eri tilanteisiin, kun modulaarisuuden ansiosta voidaan käyttöjärjestelmän ominaisuuksia vaihdella lataamalla tai poistamalla lennossa moduuleja.

Perinteinen monoliittinen käyttöjärjestelmä on nopea. Se ei kuluta turhaan prosessorin kellojaksoja suorittaakseen sanomavälitystä (overhead) käyttöjärjestelmäpalveluiden välillä vaan suorittaa kaikki käyttöjärjestelmän toiminnot yhdessä osoiteavaruudessa. Tällöin yhden järjestelmäkutsun antaminen toimii nopeammin kuin sanomavälitys (IPC).

Ottaen huomioon monoliittisen käyttöjärjestelmän miljoonat rivit koodia yhdessä osoiteavaruudessa, joiden toimintoa kukaan ei kunnolla ymmärrä kokonaisuudessaan, johtaa se useisiin käyttöjärjestelmätason virheisiin ja tietoturvaongelmiin [2].

Monoliittisen ja mikroytimen käyttöjärjestelmämoduuleita ei pidä sekoittaa toisiinsa. Monoliittisessa käyttöjärjestelmässä moduuli on aina käännetty tiettyä ytimen versiota vasten. Tämä tuo ongelman. Jos ydin muuttuu, täytyy kaikki moduulit kääntää uudelleen. Moduulien liitos ytimeen on hyvin tiukka eikä niiden toimintaa pystytä tarkkaan havainnoimaan kuin vain käyttöjärjestelmän lähdekoodista. Mikroytimen käyttöjärjestelmämoduulit taas ovat itsenäisiä. Tämä helpottaa käyttöjärjestelmän ohjelmoitavuutta, kun jokainen moduuli voidaan kääntää yksinään tai pelkkä ydin yksinään, ilman tarvetta kääntää kaikkia moduuleja samalla. Moduulit ovat myös löyhästi linkitetty ytimeen, jolloin moduuleja voidaan helposti siirtää järjestelmästä toiseen, ongelmitta jopa käyttöjärjestelmän pienten eroavaisuuksien osalta. Tämä helpottaa käyttöjärjestelmän ohjelmoitavuutta.[1]

Käyttöjärjestelmän tehtävät[muokkaa | muokkaa wikitekstiä]

Laitteiston hallinta[muokkaa | muokkaa wikitekstiä]

Tietokoneen komponenttien ja oheislaitteiden puolesta tarjotaan muille ohjelmistoille yhteneväinen rajapinta, esimerkiksi kiintolevyä käytetään yleensä tiedostojärjestelmän kautta ja verkkokorttia välittämättä tietoliikenneprotokollien yksityiskohdista. Tärkeimmät tehtävät laitteiston osalta suorittavat käyttöjärjestelmän laiteajurit, jotka toimivat ytimen ja laitteen välissä "tulkkeina".

Tiedostojärjestelmä (FS)[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: Tiedostojärjestelmä

Käyttöjärjestelmissä on tuki useille tiedostojärjestelmille, jolloin tallennuslaitteilla olevat tiedostot näytetään hakemistoina ja tiedostoina niiden merkityksen kannalta. Tiedostojärjestelmästä riippuen tiedostot merkitään eri tavoin osion kirjanpitoon erilaisten tarpeiden mukaisesti. Käyttöjärjestelmä hoitaa tallennuslaitteiden, kuten kiintolevyjen kirjoituksen ja lukemisen sekä se huolehtii myös tukemistaan erilaisista tiedostojen käyttöoikeuksista. Käyttöjärjestelmä hallitsee lähes aina useampia erilaisia tiedostojärjestelmiä, muutamasta useisiin kymmeniin. Tiedostojärjestelmän tuki voi olla myös käyttöjärjestelmään kuulumattoman ohjelmiston kuten FUSE:n (Filesystem in Userspace) [6] avulla toteutettu, mutta sekin tarvitsee käyttöjärjestelmältä tuen toimiakseen. Tiedostojärjestelmä voidaan myös luoda yksittäiseen tiedostoon, joita käytetään erilaisissa salausjärjestelmissä.

Muistinhallinta[muokkaa | muokkaa wikitekstiä]

Jottei huonosti käyttäytyvä prosessi sekoittaisi muiden prosessien toimintaa, sitä hallitsee käyttöjärjestelmä ja käyttöjärjestelmän toimesta prosesseilla on yleensä pääsy vain tarvitsemaansa muistialueeseen. Käyttöjärjestelmä huolehtii muistinsuojauksesta sekä siitä, että prosessit saavat tarvitsemansa määrän muistia, keskusmuistista tai mahdollisesta näennäismuistista. Ohjelmaa kirjoittaessa/kääntäessä sen sijaintia muistissa ei vielä tiedetä, sillä muistialue varataan vasta kun ohjelman suorittava prosessi luodaan. Prosesseja voidaan myös suorituksen aikana siirtää muistialueelta toiselle, mahdollisesti jopa keskus- ja näennäismuistin välillä. Ohjelman käyttämä "looginen" osoiteavaruus voi olla suurempi kuin koneessa oleva fyysinen keskusmuistin määrä. Prosessin päättyessä käyttöjärjestelmä vapauttaa prosessin käyttämän osoiteavaruuden ja tarvittaessa muiden prosessien vaatiessa lisää muistia.

Virtuaalimuisti[muokkaa | muokkaa wikitekstiä]

Ohjelman osoiteavaruus ja fyysinen muistiavaruus erotetaan toisistaan. Loogiset osoitteet ja fyysiset muistipaikat yhdistetään toisiinsa prosessikohtaisilla sivutauluilla (engl. page tables) [7]. Tiedot voivat sijaita näennäismuistissa josta ne ladataan keskusmuistiin ja keskusmuistin tilan loppuessa sillä hetkellä tarpeettomat muistit kirjoitetaan näennäismuistiin.

Prosessienhallinta[muokkaa | muokkaa wikitekstiä]

Ohjelman käynnistyessä käyttöjärjestelmä luo sille tarvittavan prosessin, muistiavaruuden ja tarvittavat tietorakenteet. Vastaavasti nämä resurssit vapautetaan ohjelman lopetuksen yhteydessä. Käyttöjärjestelmä tarjoaa myös työkalut prosessien tarkkailuun, prosessien lopettamiseen ja prosessien väliseen kommunikointiin.

Moniajon ansiosta tietokoneessa voi samanaikaisesti olla ajossa useampia ohjelmia. Suoritin annetaan vuorotellen vähäksi aikaa eri prosessien (tai niiden säikeiden) käyttöön. Aika pidetään niin lyhyenä, että interaktiiviset ohjelmat näyttävät olevan ajossa koko ajan. Käyttöjärjestelmän vuorottaja pyrkii jakamaan suoritinaikaa tarkoituksenmukaisesti, huomioiden eri prosessien prioriteetin ja luonteen.

Verkkoprotokollat[muokkaa | muokkaa wikitekstiä]

Käyttöjärjestelmä toteuttaa OSI-mallin 3. tason (verkkokerros) sekä 4. tason (kuljetuskerroksen) toteutukset toimiessa muiden tietokoneiden/laitteiden kanssa verkossa ja tarjoaa nämä tasot sovellusohjelmien käyttöön. Ylemmät tasot toteutetaan muilla ohjelmistoilla kuten HTTP- tai FTP-palvelinohjelmistolla, P2P- tai Windows Live Messengerin asiakasohjelmilla. Käyttöjärjestelmän tehtävä on ainoastaan tarjota verkko- ja kuljetuskerros muille ohjelmille.

Käyttäjät[muokkaa | muokkaa wikitekstiä]

Monen käyttäjän käyttöjärjestelmissä käyttäjien oikeuksien rajoitukset kuuluvat käyttöjärjestelmän tehtäviin. Käyttäjän käynnistämien prosessien oikeudet riippuvat käyttäjän oikeuksista ja mahdollisesti muista seikoista. Jotkin käyttöjärjestelmät kuten MS-DOS oli suunniteltu yhdelle käyttäjälle, jolloin useampia käyttäjiä ei järjestelmään voinut olla kerralla kirjautuneena. Kyseinen käyttöjärjestelmä ei myöskään erotellut käyttäjäoikeuksia, vaan kaikki ohjelmat suoritettiin samoilla oikeuksilla.

Käyttöjärjestelmien luokittelu[muokkaa | muokkaa wikitekstiä]

Käyttöjärjestelmiä voidaan luokitella monin perustein:

Luokittelu moniajon mukaan[muokkaa | muokkaa wikitekstiä]

On sellaisia, jotka sallivat ainoastaan yhden käyttäjän kerrallaan, kun taas monipuoliset voivat samanaikaisesti palvella useita käyttäjiä, ja luoda illuusion siitä, että kukin heistä olisi yksin konetta käyttämässä. Nykyisin useimmat käyttöjärjestelmät mahdollistavat jonkinasteisen moniajon: käyttäjällä voi olla samanaikaisesti useampia kuin yksi prosessi (ohjelma) suoritettavana — vaikkapa tekstinkäsittelyohjelma ja mp3-tiedostosta musiikkia soittava ohjelma.

Moniajoa tukevat käyttöjärjestelmät voivat siis suorittaa useita prosesseja samanaikaisesti. Nykyiset käyttöjärjestelmät tukevat moniajoa lähes poikkeuksetta.

Luokittelu moniprosessoinnin mukaan[muokkaa | muokkaa wikitekstiä]

Jos käytettävissä on useita suorittimia tai yhdessä suorittimessa useita ytimiä, voidaan saavuttaa myös todellinen moniajo, jos käyttöjärjestelmä osaa hyödyntää niitä. Yhdellä suorittimella (suorittimella missä on yksi ydin) on mahdollista saavuttaa näennäinen moniajo suorittamalla prosesseja vuorotellen lyhyissä pätkissä. Moniajo on välttämätön monen käyttäjän interaktiivisissa järjestelmissä. Käyttöjärjestelmän kyky moniajoon mahdollistaa ohjelman skaalautua useaksi prosessiksi jotka käyttöjärjestelmä suorittaa mahdollisesti suorittimilla tai suorittimen ytimillä joilla on prosessointiaikaa tarjolla. Käyttöjärjestelmän täytyy osata kunnollinen moniprosessointi jos sitä halutaan käyttää supertietokoneissa.

Luokittelu käyttöliittymän mukaan[muokkaa | muokkaa wikitekstiä]

Käyttöjärjestelmiä voidaan jaotella myös niille saatavilla olevien käyttöliittymien perusteella. Komento- tai komentopohjaisissa käyttöliittymissä käskyt kirjoitetaan näppäimistöllä komentotulkin tulkittaviksi, kun taas graafisissa käyttöliittymissä käytetään usein hiirellä ja näppäimistöllä ikkunoita, valikkoja, kuvakkeita ja muita graafisia elementtejä jolloin käyttöliittymän toteuttavat ohjelmat välittävät tämän perusteella käskyjä käyttöjärjestelmälle joka puolestaan suoritettavilla ohjelmille.

Luokittelua monimutkaistaa se että yhdelle käyttöjärjestelmälle voi olla useampia – sekä merkkipohjaisia että graafisia – käyttöliittymiä tarjolla, että vielä yhtä aikaa käytössä. Esimerkiksi vanhalle merkkipohjaiselle MS-DOS-käyttöjärjestelmälle tehtiin aikoinaan graafinen ikkunointiympäristö nimeltä Windows, johon myöhemmin Windows 95-version myötä siirrettiin osa käyttöjärjestelmän toiminnoista. Vastaavasti alkujaan komentorivillä käytettävä UNIX-käyttöjärjestelmä sai ikkunointijärjestelmä X Window System, jonka avulla suoritetaan erilaisia graafisia käyttöliittymiä kuten ikkunamanagereja sekä työpöytäympäristöjä. Kuten muun muassa työpöytäympäristöt Common Desktop Environment, KDE, GNOME, XFCE ja LXDE. Useimpia nykyisiä järjestelmiä voi ohjata myös pelkästään komentoriviltä kuten Microsoftin Windowsia ja Applen Mac OS X. Unixeissa (mukaan luettuna Linux) komentorivin käyttö on yleistä tietynlaisissa tehtävissä, vaikka työpöytäsovellukset ovatkin graafisia.

Jonkinlainen käyttöliittymä on kuitenkin tarpeen käyttäjälle. Tämä on useimmiten komentotulkki tai graafinen käyttöliittymä, joita ei pidetä käyttöjärjestelmän osina jos niitä ei ole varta vasten ohjelmoitu käyttöjärjestelmään, vaan ne ovat useimmiten toimivia ohjelmistoja ja vaativat käyttöjärjestelmän toimiakseen. Käyttöliittymä voi myös koostua sovellusohjelmasta muun muassa sulautetuissa järjestelmissä tai järjestelmissä, joissa suoritetaan vain yhtä sovellusohjelmaa eikä tällöin ole tarve ohjelmistoille jotka tarjoaisivat monimutkaisempia käyttöliittymiä.

Luokittelu käyttötarkoituksen mukaan[muokkaa | muokkaa wikitekstiä]

Käyttöjärjestelmiä voidaan luokitella niiden käyttötarkoituksen mukaan.

Keskustietokone- ja palvelinkäyttöjärjestelmiä käytetään koneissa, joissa on monia samanaikaisia käyttäjiä tai joita käytetään palvelinten alustana. Usein nämä käyttöjärjestelmät voivat käyttää valtavaa määrää mm. muistia, massamuistivälineitä, prosessoreita ja muita resursseja. Tavoitteena tällaisissa järjestelmissä on yleensä luotettavuuden ohella hyödyntää resursseja mahdollisimman täydellisesti, ja suorittaa mahdollisimman suuri määrä tehtäviä aikayksikköä kohden.

Työpöytäkäyttöjärjestelmiä käytetään yksittäisissä henkilökohtaisissa tietokoneissa, joita käyttää yleensä kerralla yksi käyttäjä. Tärkeimpiä ominaisuuksia ovat helppokäyttöisen ja hyvän vasteen tarjoavan käyttöliittymän tarjoaminen käyttäjälle, yhteensopivuus heterogeenisen laitteiston kanssa sekä laajennettavuus.

Reaaliaikaiset käyttöjärjestelmät tähtäävät mahdollisimman pieniin ja deterministisesti ennustettaviin viiveisiin käyttöjärjestelmän toiminnassa sekä äärimmäiseen toimintavarmuuteen. Useat sulautetut järjestelmät kuuluvat yleensä samaan kategoriaan. Sulautettuja ja reaaliaikaisia käyttöjärjestelmiä käytetään yleensä laitteissa, jotka on suunniteltu suorittamaan jokin tietty tehtävä mahdollisimman tehokkaasti. Tästä syystä myös energiankulutus ja laitteistoresurssien mahdollisimman säästeliäs ja tehokas käyttö ovat tärkeitä ominaisuuksia. Sulautettuja järjestelmiä hyödynnetään aina teollisuusroboteissa, DVD-soittimissa, mikroaaltouuneissa ja monissa muissa pienissä laitteissa. Kaikki sulautetut järjestelmät eivät kuitenkaan sisällä käyttöjärjestelmää vaan ohjauksesta voi huolehtia vain yksinkertainen firmware. Realiaikaisia käyttöjärjestelmiä ovat muun muassa: ChronOS, VxWorks, QNX, pSOS ja OS-9.

Luokittelu sukupolven mukaan[muokkaa | muokkaa wikitekstiä]

Käyttöjärjestelmät voidaan myös mielivaltaisesti luokitella eri sukupolvien (0-4) mukaan. MS-DOS kaltaisen "nollannen sukupolven" käyttöjärjestelmästä aina nykyaikaisiin kolmannen sukupolven käyttöjärjestelmiin sekä tuleviin neljännen sukupolven käyttöjärjestelmiin jotka toimivat osittain tai kokonaan verkossa. [8]

Luokittelu orientoitumisen mukaan[muokkaa | muokkaa wikitekstiä]

"Käyttöjärjestelmät voidaan luokitella prosesuudiorientoituneisiin tai prosessiorientoituneisiin. Prosessiorientoituneella käyttöjärjestelmällä on monia etuja proseduuriorientoituneihin käyttöjärjestelmiin verrattuna. Prosessirakenne antaa käyttöjärjestelmälle selkeän modulaarisen rakenteen, jossa yksittäinen palvelun toteutusta voidaan suhteellisen helposti muuttaa. Palveluprosessin oikeudet voidaan rajoittaa siten, että siinä olevan virheen vaikutukset minimoituvat. Myös käyttöjärjestelmäpalveluiden priorisointi yksinkertaistuu - proseduuriorientoituneessa käyttöjärjestelmässä prosessin prioriteettia joudutaan usein muuttamaan käyttöjärjestelmäpalvelun ajaksi. Myös laiteajureiden toteutus yksinkertaistuu. Pisimmälle viety prosessiorientoituneita käyttöjärjestelmiä sanotaan rakenteensa takia myös mikroytimisiksi." [8]

Yleisiä käyttöjärjestelmiä[muokkaa | muokkaa wikitekstiä]

Yleisimmät tietokoneiden työpöytäkäyttöjärjestelmät ovat Microsoftin Windows NT, jota käytetään Windows 2000, XP, Vista, 7 ja 8 -järjestelmissä, Applen kehittämä Darwin, jota käytetään sekä Mac OS X:ssä, Tigerissa, Leopardissa ja Snow Leopardissa että avoimen lähdekoodin järjestelmissä, ja avoimen lähdekoodin periaatteella yhteistyössä useiden vapaaehtoisten ja yrityksien kesken kehitetty Linux.

Normaalissa käytössä ovat myös esimerkiksi avoimen lähdekoodin BSD, SunOS sekä monet suljetut Unixit ja erityiset palvelinkäyttöjärjestelmät kuten z/OS.

Matkapuhelinten käyttöjärjestelmiä ovat muiden muassa Android, Symbian OS, Windows Mobile, RIM BlackBerry, iPhone OS, Sailfish OS, Ubuntu Phone ja Firefox OS. Useimmista näistä on eri versioita, joille halutut sovellukset on mukautettava.

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  • Haikala, Ilkka; Järvinen, Hannu-Matti: Käyttöjärjestelmät. Helsinki: Talentum, 2003. ISBN 951-762-837-4.

Viitteet[muokkaa | muokkaa wikitekstiä]