Kuva 1: Varo pyöräilijää!

Samankaltaiset tiedostot
Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

LINUX LINUX. Viisi hyvää syytä käyttää Linuxia MUISTA! GNU Free Documentation License

Järjestelmän asetukset. Asetustiedostojen muokkaaminen. Pääkäyttäjä eli root. Järjestelmänhallinnan työkalut

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Jouko Nielsen. Ubuntu Linux

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Käyttöjärjestelmät: prosessit

Tietoturvan Perusteet Yksittäisen tietokoneen turva

2 Konekieli, aliohjelmat, keskeytykset

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux

Unix-perusteet. Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet

Linuxissa uusi elämä 1

L models. Käyttöohje. Ryhmä Rajoitteiset

Perustietoa käyttöjärjestelmistä. o Tietokoneen toimintaperiaate o Käyttöjärjestelmistä o Esimerkkejä käyttöjärjestelmistä o Peruskäyttöharjoitus

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

Tulostimen hallintaohjelmisto MarkVision

Sisältö Tervetuloa Linuxin käyttäjäksi Olet tässä

Ongelma(t): Jotta tietokonetta voitaisiin käyttää monipuolisesti ja mahdollisimman yksinkertaisesti kaikkiin sille soveltuviin käyttötarkoituksiin,

1 Tivax Professional 4.5

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen

Käyttöjärjestelmän rakenne

Pikaintro käyttöjärjestelmiin

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

1 Tivax siirto uuteen koneeseen

KYMENLAAKSON AMMATTIKORKEAKOULU. Ubuntu. Yukun Zhou

LEHDISTÖTIEDOTE. Nikon tuo markkinoille uuden sukupolven. kuvankäsittelyohjelmiston. Capture NX2: entistä tehokkaampi ja helppokäyttöisempi

DVD-RAM-levyjen käyttö

CUDA. Moniydinohjelmointi Mikko Honkonen

SISÄLLYS 1 YLEISTÄ VERSIOT Tukiaika Variaatiot OHJELMISTO Paketinhallinta Komentorivisyntaksi

OHJ-4301 Sulautettu Ohjelmointi

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

Älypuhelimet. Sisällysluettelo

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Sovellusarkkitehtuurit

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Langattoman kotiverkon mahdollisuudet


MyTheatre asennus ja kanavien haku

Visma Econet -ohjelmat ActiveX on epävakaa -virheilmoituksen korjausohjeet

ASENNUS- JA KÄYTTÖOHJE

S11-09 Control System for an. Autonomous Household Robot Platform

Perustietoa käyttöjärjestelmistä

Valppaan asennus- ja käyttöohje

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

ANVIA VARMUUSKOPIOINTI 2.3

Virtuoosi POS-järjestelmien joukossa

ASENNUSOHJEET INTERNET-ASENNUS. Navita Yritysmalli. YHTEYSTIEDOT Visma Solutions Oy Mannerheiminkatu LAPPEENRANTA Puh.

oppimispeli esi- ja alkuopetusikäisten lasten matemaattisten taitojen tukemiseen

9. Luento: Ohjelmistotyö. Tommi Mikkonen,

Windows ja Linux. Lappeenrannan teknillinen yliopisto Teknistaloudellinen tiedekunta Tietotekniikan koulutusohjelma

Tiedostojen jakaminen turvallisesti

UBUNTU 8.04 LTS ASENNUS

TI10 Joni Hämäläinen & Jan Lampikari

Qt kaikkialla?

Ubuntu - peruskäyttö. Seuraavassa läpikäydään Ubuntun peruskäyttöä:

DNA Netti. Sisältö. DNA Netti - Käyttöohje v.0.1

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

TEKNINEN OHJE VAIHTOTASETIETOJEN TIEDOSTORAPORTOINTIIN EXCEL-TYÖKIRJALLA

Linux omaan kannettavaan. Ilkka Kiistala

ETÄPALVELU. HALTIK Videoportaali - osallistujan ohje

Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 IT Juha Nalli

Asennuksessa kannattaa käyttää asennusohjelman tarjoamia oletusarvoja.

ZENworks Application Virtualization 11

SAP. Lasse Metso

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

Tekniset vaatimukset Tikon 6.4.1

Visma Avendon asennusohje

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

4. Lausekielinen ohjelmointi 4.1

Linux ylläpitäjän opas. Tärkeimmät komennot, logit ja muuta hömppä *^_^* by Hannu Laitinen ETA14KT

UBUNTU. UBUNTU - Peruskäyttö. Työpöytä. GNU Free Documentation License. Sisäänkirjautuminen. Yläpaneelissa on kolme valikkoa. Paneelit ja valikot

Copyright 2007 Hewlett-Packard Development Company, L.P. Windows on Microsoft Corporationin Yhdysvalloissa rekisteröimä tavaramerkki.

Robottialustan instrumentointi ja käyttöönotto

Demo 13. Aihe: Linux. Opettaja: Antti Ekonoja. Tekijä: Heini Puuska

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Messenger. Novell 1.0 NOVELL MESSENGERIN OHJEET. PIKAOPAS

Ohje WILE 200 PC-ohjelman käyttöön

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

FuturaPlan. Järjestelmävaatimukset

Sisältö IT Linux 2001:n uudet ominaisuudet IT Linux 2001:n yhteensopivuus Red Hat 7.0:n kanssa Asennuksen valmistelu

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

HP ScrollSmart Mobile -kaukosäädin (vain tietyt mallit) Käyttöopas

3. Laajakaistaliittymän asetukset / Windows XP

Applen käyttöjärjestelmät

Modul-Fleet KALUSTONHALLINNAN OPTIMOINTIIN. I can help! Ordered 3 items. Can t serve last client. Running late!

2. Koetilan palvelin. 4. Varatietokoneet ja -kuulokkeet. 6. Kokelaan tikkuja osallistujille, varapäätelaitteille ja varalle

RATKI 1.0 Käyttäjän ohje

Tinkimätöntä tietoturvaa kaikkiin virtuaaliympäristöihin

Onko sinun yritykselläsi jo tietotekniikka Palveluksessa? vtoasp -palvelun avulla siirrät tietojärjestelmäsi haasteet ammattilaisten hoidettaviksi.

Tekstinkäsittelystä. H4: Tekstinkäsittelyn perusharjoitus. Toimisto ohjelmista

Office_365_loppukäyttäjän ohje Esa Väistö

Transkriptio:

Kuva 1: Varo pyöräilijää! KÄYTTÖJÄRJESTELMÄT mauno.h.kivinen@student.jyu.fi ITKP101 21.4.2016

SISÄLLYSLUETTELO 1Käyttöjärjestelmä...1 1.1Historia...1 2Käyttöjärjestelmärakenteet...1 2.1Mikrorakenne...2 2.2Monoliittinen rakenne...2 3Käyttöjärjestelmän tehtävät...2 3.1Laitteiston hallinta...2 3.2Tiedostojärjestelmä (FS)...2 3.3Muistinhallinta...3 3.4Virtuaalimuisti...3 3.5Prosessienhallinta...3 3.6Verkkoprotokollat...3 3.7Käyttäjät...3 4Käyttöjärjestelmien luokittelu...3 4.1Luokittelu moniajon mukaan...3 4.2Luokittelu moniprosessoinnin mukaan...3 4.3Luokittelu käyttöliittymän mukaan...3 4.4Luokittelu käyttötarkoituksen mukaan...4 4.5Luokittelu sukupolven mukaan...4 4.6Luokittelu orientoitumisen mukaan...4 5Yleisiä käyttöjärjestelmiä...4 I

1 Käyttöjärjestelmä Käyttöjärjestelmä on keskeinen tietokoneen ohjelmisto. 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 ja verkkoprotokollat sekä niihin liittyviä operaatioita ja erinäisiä käytäntöjä. Myös erilaiset standardit, kuten POSIX tai sitä laajentava LSB, määrittelevät käyttöjärjestelmän useita satoja järjestelmäkutsuja. 1.1 Historia 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. 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. Kuva 2: Kaaviokuva käyttöjärjestelmien kehitykseen vaikuttaneista tekijöistä 2 Käyttöjärjestelmärakenteet 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ää. 1

Käyttöjärjestelmän kahdella päärakenteella on erilaisia hyötyjä ja haittoja, joihin liittyen on aikoinaan käyty kiihkeitä väittelyitä uutisryhmissä. 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 Torvalds1, 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..." 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. 2.1 Mikrorakenne 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ää. 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. 2.2 Monoliittinen rakenne 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. 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. 3 3.1 Käyttöjärjestelmän tehtävät Laitteiston hallinta 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". 3.2 Tiedostojärjestelmä (FS) 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. 1 2 Linus Torvalds syntyi suomenruotsalaisen Torvaldsin perheen ensimmäiseksi lapseksi. Hänen isänsä on radio- ja televisiotoimittaja Nils Torvalds ja hänen äitinsä STT:n toimittaja Anna Torvalds. Vanhemmat olivat Linuksen syntymän aikoihin radikaaleja vasemmistolaisia opiskelijoita: he toimivat aktiivisesti 1960-luvun ylioppilasliikkeessä Helsingin yliopistossa. Vuonna 1971 Linukselle syntyi pikkusisko Sara.[3] Torvalds on kertonut saaneensa nimensä kemisti Linus Paulingin ja englanninkielisen Tenavat-sarjan Epun (engl. Linus) mukaan. Sukunimi Torvalds puolestaan syntyi, kun Linuksen isoisä Ole Saxberg muutti toisen etunimensä sukunimeksi ja lisäsi siihen s-kirjaimen. Torvaldseja on maailmassa vain parikymmentä, ja he kaikki ovat toisilleen sukua. Nimi Torvalds kirjoitetaan usein väärin, minkä takia Linuksesta käytetään Internetissä pelkkää etunimeä. Torvalds on sanonut olleensa ruma lapsi, jolla oli isot etuhampaat ja suuri nenä, sekä sosiaalisesti nörtti. Hän oli aina luokkansa nuorimpia ja pienimpiä oppilaita. Hän oli matemaattisesti lahjakas ja harrasti varsinkin ennen tutustumistaan tietokoneisiin muun muassa pienoismallien ja -rautateiden rakentelua sekä scifi- ja kauhukirjallisuutta. Hän kävi koulunsa Cygnaeuksen ruotsinkielisellä ala-asteella ja ruotsalaisessa Norssissa. (LÄHDE: Wikipedia)

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) 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ä. 3.3 Muistinhallinta Jotta huonosti käyttäytyvä prosessi ei sekoittaisi muiden prosessien toimintaa, käyttöjärjestelmä hallitsee sitä, ja käyttöjärjestelmän välityksellä 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 myös silloin kun muu prosessit vaativat lisää muistia. 3.4 Virtuaalimuisti Ohjelman osoiteavaruus ja fyysinen muistiavaruus erotetaan toisistaan. Loogiset osoitteet ja fyysiset muistipaikat yhdistetään toisiinsa prosessikohtaisilla sivutauluilla (engl. page tables). Tiedot voivat sijaita näennäismuistissa josta ne ladataan keskusmuistiin ja keskusmuistin tilan loppuessa sillä hetkellä tarpeettomat muistit kirjoitetaan näennäismuistiin. 3.5 Prosessienhallinta 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. 3.6 Verkkoprotokollat 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 FTPpalvelinohjelmistolla, P2P- tai Windows Live Messengerin asiakasohjelmilla. Käyttöjärjestelmän tehtävä on ainoastaan tarjota verkko- ja kuljetuskerros muille ohjelmille. 3.7 Käyttäjät 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. 4 Käyttöjärjestelmien luokittelu Käyttöjärjestelmiä voidaan luokitella monin perustein: 4.1 Luokittelu moniajon mukaan 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. 4.2 Luokittelu moniprosessoinnin mukaan 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. 4.3 Luokittelu käyttöliittymän mukaan 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 OS X. Unixeissa (mukaan luettuna Linux) komentorivin käyttö on yleistä tietynlaisissa tehtävissä, vaikka työpöytäsovellukset ovatkin graafisia. 3

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ä. 4.4 Luokittelu käyttötarkoituksen mukaan 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. 4.5 Luokittelu sukupolven mukaan 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. 4.6 Luokittelu orientoitumisen mukaan "Käyttöjärjestelmät voidaan luokitella proseduuriorientoituneisiin 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." 5 Yleisiä käyttöjärjestelmiä Kuva 3: Älytön tribaalikuvio! 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ä 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-käyttöjärjestelmäydin, jota käytetään eri jakeluissa. Linuxin ydintä on mediassa parjattu jonkin verran sen turhan monimutkaisesta rakenteesta ja pyrkimyksestä vaikuttaa muinaiselta tribaalikuviolta (katso Kuva 3) Normaalissa käytössä ovat myös esimerkiksi avoimen lähdekoodin BSD, SunOS sekä monet suljetut Unixit ja erityiset palvelin käyttöjärjestelmät kuten z/os.matkapuhelinten käyttöjärjestelmiä ovat muiden muassa 4 Android, Symbian OS, Windows Mobile,

RIM BlackBerry, iphone OS, Sailfish OS, Ubuntu Phone Firefox OS. Useimmista näistä on eri versioita, joille halutut sovellukset on mukautettava. Kuva 4: Kaunis vuoristolaaksomaisema vähän pilvisellä säällä 5

Kuvahakemisto Kuva 1: Varo pyöräilijää!...1 Kuva 2: Kaaviokuva käyttöjärjestelmien kehitykseen vaikuttaneista tekijöistä...1 Kuva 3: Älytön tribaalikuvio!...4 Kuva 4: Kaunis vuoristolaaksomaisema vähän pilvisellä säällä...5 Hakemisto Kernel...2 käyttöjärjestelmä...1pp. Linux...2, 4 ohjelma...1pp. prosessi...1, 3p. tietokone...1pp. 6