OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 13: Käyttöjärjestelmät, osa 2 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al.
Välikyselyn satoa Pienet opiskeluoppaat kunkin viikon tärkeistä aihepiireistä Lisätietolinkkejä Tenttiinlukuohje Avainsanalistat, esim. miellekarttojen piirtämisen tueksi
Opiskelutaidot Johdatus yliopisto-opintoihin -kurssi löytyy jokaisesta koulutusohjelmasta Nimi tosin vaihtelee... Selvitä, millainen oppija olet Etsi paras muistiinpanotekniikka Älä hyväksy (varauksetta) valmiita ratkaisuja, vaan mene oman persoonasi mukaan Oppijat ovat erilaisia ja kaikki eivät istu samaan muottiin, omien työtapojen selvittäminen säästää aikaa ja vaivaa myöhemmistä vaiheista...
Tietokoneen kasaus ja käyttöjärjestelmän valinta Ollut joskus muinaisuudessa mukana viikkoharjoituksissa... Tutorointitilaisuus koneen kasaamisesta (noin 2 tuntia) Selvitetään Moodlessa, löytyykö kiinnostuneita riittävästi Kysely aukeaa tänään klo 18 ja vastausaikaa on keskiviikon luennon alkuun saakka.
Kertausta viime viikosta: käyttöjärjestelmän tehtävät Prosessien hallinta Muistinhallinta Tiedostojärjestelmän hallitseminen Laitehallinta Turvallisuusnäkökulmien hallinta Käyttöliittymän tarjoaminen
Turvallisuus: sisäinen ja ulkoinen Käyttöjärjestelmän hoitamat turvallisuuteen liittyvät asiat voidaan jakaa sisäisiin ja ulkoisiin Sisäisellä turvallisuudella tarkoitetaan Käyttäjien toimien rajoittamista ja valvontaa Ohjelmien toiminnan hallitsemista: prosessit pääsevät käsiksi vain tiettyihin resursseihin Ulkoiseen turvallisuuteen kuuluu esimerkiksi Autentikointi: käyttäjien henkilöllisyyden tunnistaminen ja päästäminen koneeseen käsiksi Erilaisten verkkopalveluiden käytön valvonta Palomuuri
Turvallisuus: pääkäyttäjä Monen käyttäjän järjestelmässä on oikeustasoja Ei ole järkevää että kaikki saavat tehdä kaikkea Jonkun pitää jakaa ja hallinnoida käyttäjiä Yhden käyttäjän järjestelmässä eri käyttäjätunnuksilla voidaan parantaa tietoturvaa Ei anneta ohjelmille oikeuksia joita ne eivät tarvitse normaalisti Pääkäyttäjällä (root/admin) on oikeus kaikkeen Koneen normaalikäytössä pääkäyttäjän roolia tulee välttää Ilmeinen ongelma: pääkäyttäjään on voitava luottaa!
Käyttöliittymä Käyttöliittymäksi kutsutaan niitä keinoja, joiden kautta tietokoneita käytetään Käyttöliittymä liittää ihmisen tietokoneeseen, kyse on siis ihmisen ja koneen välisestä rajapinnasta Käyttöliittymä voidaan jakaa kahteen osaan Tiedon syöttäminen tietokoneeseen Tietokoneen tiedon välitys käyttäjälle Vrt. tietokoneen perusrakenne: syöttötieto, ohjelma, tulostieto
Käyttöliittymä Käyttöjärjestelmien mukana tulee yleensä käyttöliittymä Käyttöliittymää ei aina lasketa osaksi käyttöjärjestelmää Joskus graafista käyttöjärjestelmää hoitaa erillinen sovellus Nykyiset käyttöliittymät ovat tyypillisesti graafisia käyttöliittymiä Käyttäjä manipuloi graafista tiedon esitystä esimerkiksi hiirellä Käyttöliittymää voi ohjata myös vaikkapa puheella, katseella, liikkeellä... Käyttöliittymä löytyy luonnollisesti myös puhelimesta, tablettilaitteesta yms.
MS-DOS: Microsoft Disk Operating System Tekstipohjainen käyttöliittymä, joka ilmestyi 1981
MS Windows 1.0 Graafinen käyttöliittymä vuodelta 1985 Lähde: http://en.wikipedia.org/wiki/history_of_microsoft_windows (11.9.2007)
MS Windows 2.0 Graafinen käyttöliittymä vuodelta 1987 Lähde: http://en.wikipedia.org/wiki/history_of_microsoft_windows (11.9.2007)
MS Windows 3.0 Graafinen käyttöliittymä vuodelta 1990 Lähde: http://en.wikipedia.org/wiki/history_of_microsoft_windows (11.9.2007)
MS Windows 3.11 Graafinen käyttöliittymä vuodelta 1992 Lähde: http://en.wikipedia.org/wiki/history_of_microsoft_windows (11.9.2007)
MS Windows 95 Graafinen käyttöliittymä vuodelta 1995 Lähde: http://en.wikipedia.org/wiki/history_of_microsoft_windows (11.9.2007)
MS Windows XP Graafinen käyttöliittymä vuodelta 2001 Lähde: http://en.wikipedia.org/wiki/history_of_microsoft_windows (11.9.2007)
MS Windows Vista Graafinen käyttöliittymä vuodelta 2007 Lähde: http://en.wikipedia.org/wiki/history_of_microsoft_windows (11.9.2007)
Käyttöjärjestelmä kaaviokuvana Prosessit KJ-ydin (kernel) Rauta vuorontaja muistinhallinta sähköpostin lukuohjelma piirustusohjelma ikkunointijärjestelmä oikeuksien valvonta Käyttöjärjestelmäydin verkkoprotokolla prosessien välinen tiedostojärjestelmä kommunikointi ajuri ajuri ajuri ajuri ajuri näppäimistö hiiri kiintolevy näyttö verkkoohjain WWWselain tekstinkäsittely
Mitkä olivatkaan käyttöjärjestelmän tehtävät? Prosessien hallinta Muistinhallinta Tiedostojärjestelmän hallitseminen Laitehallinta Turvallisuusnäkökulmien hallinta Käyttöliittymän tarjoaminen
Nykyiset käyttöjärjestelmät Tarjontaa on paljon, mutta tärkeimpiä ovat kotikoneissa Windows, Linux ja Mac OS Älypuhelimissa merkittävimmät IOS, Android ja Windows Phone Unix on edelleen tärkeä järjestelmä ja nykyinen Mac OS sekä Linux perustuvat siihen Mac-järjestelmässä perusta on kylläkin piilotettu huolellisesti
Käyttöjärjestelmän valinta? Makuasia! Ja jatkuvien kiistojen kohde :) Mieti mitä tarvitset opinnoissasi Oleelliset ohjelmistot ja niiden saatavuus Ohjelmointi, it-ala yleensäkin: Linuxin opettelu kannattaa
Käyttöjärjestelmän valinta? Useamman käyttöjärjestelmän hallinnasta on ehdottomasti hyötyä työelämässä Matalin aloituskynnys ehkä Ubuntun asentamisessa Windowsin rinnalle... Työelämän laitteissa voi tulla vastaan täysin erilaisia käyttöjärjestelmiä, joten on hyvä osata perusasiat! Oppimiskynnys erilaisiin järjestelmiin madaltuu
Käyttöjärjestelmän valinta? Järjestelmien välinen yhteensopivuus vaihtelee Selvitä missä määrin tämä on oleellista juuri sinulle käyttäjänä, esimerkiksi ohjelmistojen suhteen Loppukäyttäjän kannalta isoin ero on suunnittelufilosofiassa Näistä syntyvät myös kuuluisat mielipide-erot Ainoasta Oikeasta Käyttöjärjestelmästä...
Käyttäjäfilosofia Järjestelmät tekevät erilaisia oletuksia käyttäjistään Unix olettaa, että käyttäjä tietää mitä tekee Korkea oppimiskynnys Helppo tehdä fataaleja virheitä Mac OS pitää asiat yksinkertaisina ja siisteinä Matala oppimiskynnys Nykyään myös UNIX-tyyliset komentorivityökalut
Käyttäjäfilosofia Windowsin helppokäyttöisyyteen on panostettu paljon Monimutkaisemman toiminnon suorittaminen saattaa olla hankalaa, jos tarkoitusta varten ei olekaan sopivaa helppokäyttöistä ohjattua toimintoa Linux pyrkii Mac OS:n suuntaan ja madaltamaan Unixin monimutkaisuutta käyttäjän kannalta
Käyttäjäfilosofiaa vai Windowspropagandaa?
Suunnittelufilosofiaa: Unix / Linux ja Mac Unix/Linux koottu pienistä erillisistä palasista, jotka ovat eri ihmisten käsialaa Hajoita ja hallitse Voimavara avoimen lähdekoodin kehityksessä Kukin palanen on vaihdettavissa toisenlaiseen tai vaihtoehtoiseen toteutukseen
Suunnittelufilosofiaa: Unix / Linux ja Mac Tietoturvaongelmat yleensä rajautuvat yhteen palaseen Helpompi, nopeampi korjata Suunniteltu alusta lähtien monen käyttäjän järjestelmäksi Vahvasti rajattu mitä ohjelmat / käyttäjät saavat tehdä ja mitä ei Mac OS perustuu nykyisin Unix-järjestelmään Ikkunointijärjestelmän alta löytyy täysiverinen Unixkäyttöjärjestelmä työkaluineen
Unix-järjestelmien sukupuu Unix = UNiplexed Information and Computing System (Alunperin "Unics") http://upload.wikimedia.org/wikipedia/commons/c/ce/unix_history.en.svg
Suunnittelufilosofiaa: Windows Tietoturvaongelmat osittain johtuvat yhteensopivuusvaatimuksista Uusien Windows-versioiden tulee olla yhteensopivia vanhojen kanssa Yhteensopivuus jopa MS-DOS:iin, jossa ei käyttöoikeuksia tunnettu Vanhojen ohjelmien, jotka olettavat että saavat tehdä mitä vain, tulisi myös toimia Tietoturvaongelmat johtuvat myös käyttöjärjestelmän yleisyydestä!
Käyttöjärjestelmien yhteensopivuus Ohjelmat tehdään tyypillisesti toimimaan tietyssä käyttöjärjestelmässä Käyttöjärjestelmät tarjoavat ohjelmille pitkälti samoja resursseja rajapintojen kautta Rajapinta: joukko kutsuja (aliohjelmia) joita kutsumalla ohjelma saa käyttöönsä erilaisia resursseja Rajapintojen toteutus kuitenkin vaihtelee käyttöjärjestelmästä toiseen Myös muita asioita tehdään eri tavoin eri käyttöjärjestelmissä Esimerkiksi tiedostojärjestelmän käsittely on erilaista Windows- ja Unix-käyttöjärjestelmissä Windows-polut käyttävät merkkiä \ Unix-poluissa erotinmerkkinä toimii /
Käyttöjärjestelmien yhteensopivuuskerrokset Käyttöjärjestelmien toiminnot ovat hyvin samankaltaisia, mutta koska käyttöjärjestelmän kutsuttavia aliohjelmia tarjoavat rajapinnat ovat erilaiset eivät ohjelmat toimi ristiin eri käyttöjärjestelmissä vaikka laitteisto olisikin sama Väliin voidaan kehittää ajurin tapainen lisäkerros joka muuntaa funktiokutsut sopiviksi WINE tarjoaa mahdollisuuden ajaa Windows-ohjelmia Linuxissa Cygwin helpottaa Linux-ohjelmien siirtämistä Windows:iin Cygwin tekee funktioiden muunnoksen kuitenkin käännettäessä ohjelmaa, joten ohjelmat pitää kääntää uudelleen Cygwiniä varten Näkyy ohjelmille käyttöjärjestelmän laajennuksena
Virtuaalikone Nykyisin koneiden teho mahdollistaa itse koneen virtualisoinnin Fyysinen kone voidaan kadottaa ja tarjota abstrakti kone, jossa ohjelmia ajetaan Abstrakti kone ei välttämättä vastaa mitään todellista tietokonetta, vaan todellisesta koneesta tehdään sopivan näköinen erillisellä ohjelmalla Hukataan jonkin verran tehoa, mutta hyötynä ohjelmat ovat helposti siirrettäviä eri laitteille Riittää rakentaa virtuaalikone uudelle laitteelle Tietokone Käyttöjärjestelmä Virtuaalikone (esim. Java) Sovellus Tietoturva paranee. Ajettava ohjelma ei pääse kovin helposti virtuaalikoneen ohi varsinaiseen koneeseen Virtuaalikone voi tarjota hyvin eksoottisia toimintoja, joita todellisista koneista on turha hakea
Virtualisoidut käyttöjärjestelmät Abstraktin koneen sijaan voidaan myös tarjota virtuaalinen tietokone, joka näyttää aidolta Tällöin itse käyttöjärjestelmäkin on virtuaalisen koneen sisällä Samassa fyysisessä koneessa voi olla monta virtuaalista konetta, joista jokainen tuntuu aidolta Virtuaalisen koneen murtaminen ei vaaranna isäntäkonetta suoraan Mahdollistaa halpojen palvelinkoneiden tarjoamisen Tekniikka on ihan äskettäin tullut suurkonemaailmasta normaaleihin pöytäkoneisiin Master-käyttöjärjestelmä (esim. Xen-Linux) Virtuaalinen kone Käyttöjärjestelmä Virtuaalinen kone Käyttöjärjestelmä Sovellus Sovellus
Virtualisoidut käyttöjärjestelmät: VMWare Windows XP Ubuntu Linuxissa Lähde: http://en.wikipedia.org/wiki/vmware (11.9.2007)
Virtualisoidut käyttöjärjestelmät: VMWare Fedora Linux Windows XP:ssä Lähde: http://en.wikipedia.org/wiki/vmware (11.9.2007)
Emulaattorit Ohjelma voi matkia kokonaisen tietokonejärjestelmän toimintaa Emulaattori jäljentää jonkin tietokonejärjestelmän ohjelmallisesti Emulointi tarkoittaa jäljittelyä Emulointia käytetään kehitettäessä ohjelmistoja sellaisiin laitteisiin, joiden ohjelmointi ei niillä itsellään onnistu Sulautetut järjestelmät, pelikonsolit Alan harrastajat emuloivat vanhoja kotimikroja Esimerkiksi Nokia 9300 -puhelimessa on mahdollista emuloida vaikkapa Commondore 64 -tietokonetta
Mitä tapahtuu kun tyypillinen PC käynnistyy? 1. Koneen pysyväismuistissa oleva alkulatausohjelma ajetaan Tästä vastaa BIOS (Basic Input Output System) 2. BIOS diagnosoi lyhyesti ongelmia, jotka voivat estää koneen käynnistämisen Esimerkiksi näppäimistön puuttuminen 3. Alkulataaja hakee aivan kovalevyn alusta käynnistyssektorin, joka luetaan ja ajetaan BIOS ei tiedä löytääkö se käyttöjärjestelmän, se vain lataa pätkän sovitusta paikasta 4. Tästä eteenpäin kovalevyltä haettu koodi vastaa suorituksen etenemisestä 5. Käyttöjärjestelmä suorittaa omia alustustoimintojaan Suorittaa esimerkiksi erilaisia skriptejä Asettaa ympäristömuuttujia
Käyttöjärjestelmän lataus kaaviokuvana Keskusmuisti Keskusmuisti ROM Levymuist i ROM Latausohjelma Latausohjelma Levymuisti Haihtuva muisti Haihtuva muisti Käyttöjärjestelm ä Käyttöjärjestelmä Käyttöjärjestelmä Kone käynnistyy suorittamalla muistissa valmiina olevan latausohjelman. Käyttöjärjestelmä on tallennettuna tukimuistiin. Latausohjelma huolehtii käyttöjärjestelmän lataamisesta keskusmuistiin ja aloittaa sen suorituksen