250 likes | 399 Views
UNIX. Niina Hänninen TITE3 Katja Marika Savolainen TITE 2. Johdanto. Nykyään on olemassa useita alkuperäisestä Unixista polveutuvia käyttöjärjestelmiä (mm. Mac OS X, Solaris, HP-UX ja AIX), joista käytetään nimitystä Unix.
E N D
UNIX Niina Hänninen TITE3 Katja Marika Savolainen TITE 2
Johdanto • Nykyään on olemassa useita alkuperäisestä Unixista polveutuvia käyttöjärjestelmiä (mm. Mac OS X, Solaris, HP-UX ja AIX), joista käytetään nimitystä Unix. • Toisinaan "unixeihin" lasketaan kuuluvaksi myös GNU/Linux, joka on Unix-yhteensopiva mutta ei perustu samaan ohjelmakoodiin.
Historiaa • Kehitys aloitettiin vuonna 1969 • Unix-sukuiset käyttöjärjestelmät ovat perinteisesti olleet suosittuja monen käyttäjän keskuskoneissa, palvelimissa ja tehokkaissa työasemakoneissa. • 1990-luvulta alkaen niitä on käytetty yhä enemmän myös harrastajien ja peruskäyttäjien keskuudessa tavallisilla PC:n kaltaisilla koneilla ilmaisten ja vapaiden varianttien kuten Linuxin, NetBSD:n ja FreeBSD:n ilmestymisen myötä.
Historiaa • Innokkaimpana Unix-järjestelmän kimppuun kävi Berkeleyn yliopisto Kaliforniassa, joka yhteen sovitti Unixin DECin uudelle VAX-arkkitehtuurille ja laajensi järjestelmää radikaalisti. • Berkeleyn muutokset ja lisäykset jaettiin muille Unixin käyttäjille nauhoilla, joille annettiin nimi Berkeley Software Distribution, BSD. • BSD:hen lisättiin monia uusia ominaisuuksia, kuten TCP/IP, ja se sai suuren suosion yliopistoissa ja muissa VAX-tietokoneita käyttävissä organisaatioissa.
Historiaa • Tästä syntyi vielä nykypäivänäkin selvästi näkyvä ero kahden Unix-päähaaran välillä. • Osa nykyisistä Unix-järjestelmistä polveutuu Berkeleyn yliopiston Berkeley Software Distribution (BSD) -haarasta, osa taas System V Release 4 (SVr4) -haarasta.
Historiaa • Näiden lisäksi useat eri tahot ovat kehittäneet Unix-yhteensopivia käyttöjärjestelmiä. Nämä ns. Unix-kloonit eivät sisällä AT&T:n lisensoimaa UNIX-koodia. • Tunnetuin näistä Unix-klooneista on kuitenkin GNU/Linux, jonka kehityksen aloitti Richard Stallman vuonna 1984 ja jonka kernelin suomalainen LinusTorvalds kehitti 1990-luvun alussa.
Unix-versiot tänään BSD-tyylisiä kaupallisia Unixeja: • Applen Mac OS X • Digital Equipment Corporationin (nyk HP) Ultrix ja Tru64 UNIX • Sun Microsystemsin SunOS 4 ja sitä varhaisemmat versiot • BSD/OS
Unix- versiot tänään BSD-tyylisiä ilmaisia ja vapaita Unixeja: • FreeBSD: keskittynyt suorituskykyyn • OpenBSD: keskittynyt turvallisuuteen • NetBSD: keskittynyt yhteensopivuuteen
Unix-versiot tänään SVR4-tyylisiä Unixeja edustavat seuraavat Unix-järjestelmät: • Hewlett-Packardin (HP) HP-UX • IBM:n AIX • SCO:n OpenServer ja Unixware • Silicon Graphicsin IRIX • Sun Microsystemsin Solaris
Unix-versiot tänään Unix-klooneja: • Linux • MINIX • Coherent
Kaupalliset Unixit • Useimmat niin kutsutut kaupalliset Unixit ovat tietokonevalmistajien kehittämiä ja tarkoitettu käytettäviksi nimenomaan valmistajan omilla laitteilla. • Esimerkiksi Sun Solaris on tarkoitettu käytettäväksi Sunin omilla SPARC-pohjaisilla koneilla, vaikka siitä onkin versioita myös X86-laiteympäristölle. • Linux, FreeBSD ja muut sen kaltaiset vapaat käyttöjärjestelmät eroavat tässä suhteessa kaupallisista Unixeista.
Solaris • Solaris (koko nimeltään Solaris Operating Environment) on Sun Microsystemsin kaupallinen käyttöjärjestelmä. • Sun on ilmoittanut julkaisevansa Solariksen OSI:n hyväksymällä avoimen lähdekoodin lisenssillä vuoden 2005 viidennellä viikolla. • Solariksen juuret ovat Sunin varhaisessa BSD Unixin perustuvassa käyttöjärjestelmässä SunOS. Sun siirtyi Unixin System V -haaraan SunOS 5.0:n myötä heinäkuussa 1992.
HP-UX ja AIX • HP-UX on Hewlett-Packardin versio UNIX-käyttöjärjestelmästä. Se toimii 68000-, PA-RISC- ja IA-64 -suoritinarkkitehtuureilla varustetuissa HP:n työasema- ja palvelinkoneissa. • AIX (Advanced Interactive eXecutive) on IBM:n RT/PC- ja RS/6000-sarjan koneissa käytetty UNIX-käyttöjärjestelmä. AIXin ensimmäinen versio julkaistiin vuonna 1986. • Se perustui aluksi System V:n Release 3:een, mutta myöhemmin siihen otettiin myös BSD-ominaisuuksia.
Linux • Linux on suomalaisen Linus Torvaldsin alullepanema käyttöjärjestelmän ydin. Ydin on käyttöjärjestelmän keskeinen osa joka mahdollistaa käyttöjärjestelmän muiden osien toiminnan. • Ensimmäinen Linuxin versio julkaistiin vuonna 1992. • Nimeä Linux käytetään myös puhuttaessa käyttöjärjestelmästä, jonka ydin on Linux. • Ytimen lisäksi kokonaiseen käyttöjärjestelmään kuuluu myös joukko sovellusohjelmia, jotka Linuxin tapauksessa ovat useimmiten GNU-projektin tuottamia työkaluja.
Mac OS • Mac OS on Applen kehittämä käyttöjärjestelmä Macintosh-tietokoneille. • Mac OS voidaan jakaa kahteen kehitysvaiheeseen, vanhempaan Mac OS -järjestelmään ja nykyiseen Mac OS X -järjestelmään. • Käyttöjärjestelmä tuli markkinoille vuonna 1984 Applen Macintosh-tietokoneessa. Alun perin se oli vain osa tietokonetta nimellä Järjestelmä (engl. System).
Kaikille Unixeille ominaisia piirteitä • Moniajo eli se, että käyttäjällä voi olla käynnissä useita samanaikaisia ajoja (prosesseja) ja että koneessa voi olla samaan aikaan useita käyttäjiä • Hierarkkinen (puumainen) tiedostojärjestelmä • Komentorakenne, jossa komennon osien järjestys on komentosana, valitsimet (eli optiot) ja argumentit.
Kaikille Unixeille ominaisia piirteitä • Unix on abstrakti järjestelmä, mikä tarkoittaa sitä, että operointi tapahtuu vielä hyvin syvällä järjestelmässä käsitteellisellä tasolla. • Käyttää virtuaalimuistia, mikä tarkoittaa, että fyysistä keskusmuistia jatketaan tarvittaessa kiintolevylle. • Näin sovellusohjelmien ei tarvitse paljon huolehtia omasta muistinkäytöstään.
Prosessi eli säie • Prosessi eli säie tarkoittaa suorituksessa olevaa ohjelmaa. Lähes jokainen komento, jonka käyttäjä antaa, luo prosessin. • Unixin prosessi on "itsenäinen olio", johon liittyy kolme I/O-kanavaa (I/O = input/output, syöttö/tulostus) ja jonka kautta prosessi kommunikoi ulkomaailman kanssa. • Nämä kanavat ovat nimeltään stdin, stdout ja stderr
Stdin, Stdout ja Stderr • Stdin (standard input) on syöttökanava ja sitä kautta prosessille syötetään tietoa näppäimistöltä. • Stdout (standard output) ja stderr (standard error) ovat tulostus- ja virheilmoituskanavat. • Ne on ohjattu oletusarvoisesti päätteen kuvaruudulle.
Ajanjako Unixissa • Ajanjaolla (scheduling) tarkoitetaan sitä, miten käyttöjärjestelmä jakaa aikaa eri prosesseille. • Ajanjaon tehtäviä on mm. jaotella ohjelmille aikaa suorittimessa mahdollisimman tasapuolisesti sekä maksimoida kokonaissuorituskyky. • Unix-käyttöjärjestelmä käyttää multilevel feedback- ajanjakomenetelmää, jonka prioriteettijonot toimivat round robin -periaatteella
Round robin • Round robin – periaate perustuu FIFO-tekniikkaan (First In First Out), joka tarkoittaa sitä, että ensimmäinen jonoon saapunut prosessi käsitellään ensin. • Jokainen prosessi saa tietyn aikaviipaleen ja jos suoritus ei tämän ajan sisällä pääty, palautuu prosessi jonon hännille odottamaan vuoroaan.
Multilevel feedback • Multilevel feedback-tekniikassa on taas monta FIFO-jonoa eri tasoilla odottamassa suoritin aikaansa. • Alimman tason prosessit saavat harvemmin aikaa, mutta kerran prosessin päästyä suorittimeen saa se jatkossa korvamerkittynä lisää suoritinaikaa. • Tämä tekniikka suosii I/O-sidonnaisia prosesseja, josta seuraa hyvä I/O -laitteiden käyttöaste.
Prioriteetit • Jokaisella prosessilla on oma prioriteettinsa, joka määrittelee sen, kuinka paljon suoritin aikaa sille kerrallaan annetaan • Alhaisimman prioriteetin prosessit eivät välttämättä pääse suoritukseen lainkaan kun käsiteltävien prosessien lista on hyvin pitkä. • Prosessien saamaa suoritinaikaa voidaan säädellä nice ja renice-ohjelmilla.
Muistinhallinta • UNIXin muistinhallinta perustuu siihen että jokaiselle ohjelmalle luodaan sen käynnistyessä oma yksityinen muistiavaruus, esimerkiksi 8 megatavua. • Koko muistialue ei ole välttämättä käytössä yhtäaikaisesti vaan siitä on keskusmuistissa vain tarvittava osa ja loppuosa virtuaalimuistilla.
Muistinhallinta • Vaikka jokaiselle prosessille varataan oma (suuri) muistialue, mahtuu samanaikaisesti muistissa olemaan kuitenkin useampia ohjelmia koska niistä on keskusmuistissa vain suorituksen kannalta olennainen osa • Esimerkiksi Linuxissa swapd - niminen daemon ohjelma huolehtii muistin sivutuksesta virtuaalimuistin ja fyysisen muistin välillä.