Tuomo Ruottinen VIRTUAALIKONEIDEN SUORITUSKYKYTESTAUS
|
|
- Amanda Sala
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Tuomo Ruottinen VIRTUAALIKONEIDEN SUORITUSKYKYTESTAUS Opinnäytetyö KESKI-POHJANMAAN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Toukokuu 2009
2 TIIVISTELMÄ OPINNÄYTETYÖSTÄ Yksikkö Aika Ylivieska Toukokuu 2009 Koulutusohjelma Tietotekniikka Työn nimi Virtuaalikoneiden suorituskykytestaus Työn ohjaaja Ritva Saviluoto Työelämäohjaaja Janne Känsäkoski Tekijä/tekijät Tuomo Ruottinen Sivumäärä 50 Tämän opinnäytetyön aiheena oli virtuaalikoneiden suorituskyvyn testaaminen. Työn tavoitteena oli löytää toiminnallisuudeltaan ja suorituskyvyltään optimaalisin virtualisointiohjelma CENT- RIA:n testausjärjestelmäkehityksen testauskäyttöön. Työssä on käyty läpi virtualisoinnin ja virtuaalikoneiden teoria yleisellä tasolla ja esitelty menetelmät virtuaalikoneiden suorituskyvyn testaamiseksi. Työssä testattiin kahdella eri virtualisointiohjelmalla, VirtualBoxilla ja VMware Workstationilla luotujen järjestelmävirtuaalikoneiden suorituskykyä käyttäen kolmea eri synteettistä suorituskykytestaussovellusta. Työssä tehtyjen suorituskyky- ja toiminnallisuustestien perusteella VMware Workstation osoittautui toiminnallisuudeltaan ja suorituskyvyltään VirtualBoxia paremmaksi virtualisointiohjelmaksi. Asiasanat Virtualisointi, virtuaalikone, järjestelmäarkkitehtuuri, suorituskyky, testaus
3 ABSTRACT CENTRAL OSTROBOTHNIA UNIVERSITY OF APPLIED SCIENCES Ylivieska Degree programme Information Technology Name of thesis Virtual Machine Performance Test Instructor Ritva Saviluoto Supervisor Janne Känsäkoski Date May 2009 Author Tuomo Ruottinen Pages 50 The subject of this thesis was testing of virtual machine performance. The goal was to find most optimal virtualization program functionality- and performance-wise for CENTRIA Test ware testing use. The work covers basic theory of virtualization and virtual machines and discusses ways to benchmark virtual machine performance. In this work, two different system virtual machines, created with VirtualBox and VMware Workstation were tested by using three different synthetic performance testing programs. As a result of the performance and functionality tests done in this work, VMware Workstation proved to be functionality- and performance-wise better virtualization program than VirtualBox. Key words Virtualization, Virtual Machine, System Architecture, Performance, Testing
4 LYHENTEET ABI ALU API CLI DBT FLOPS FPU HLL I/O IPS ISA JVM LAN OS USB VM VMM Application Binary Interface Arithmetic Logic Unit Application Program/Programming Interface Common Language Infrastructure Dynamic Binary Translation/Translator Floating Point Operations Per Second Floating Point Unit High-Level Language Input/Output Instructions Per Second Instruction Set Architecture Java Virtual Machine Local Area Network Operating System Universal Serial Bus Virtual Machine Virtual Machine Monitor
5 TIIVISTELMÄ ABSTRACT LYHENTEET SISÄLLYS 1 JOHDANTO VIRTUALISOINTI Tietokonejärjestelmä Järjestelmän virtualisointi Tietokonearkkitehtuuri VIRTUAALIKONE Koneen määritelmä Virtuaalikonetyypit Prosessivirtuaalikone Järjestelmävirtuaalikone Laitteistoresurssien virtualisointi Prosessori Muisti I/O-laitteet Virtuaalikoneen suorituskyky Virtualisointiohjelmat VirtualBox VMware Virtualisoinnin sovellukset TESTIMENETELMÄT Suorituskyvyn testaaminen Testiympäristöt Testattavat ominaisuudet Testisovellukset Sandra Performance Test PC Wizard TESTIT TULOKSET YHTEENVETO...49 LÄHTEET...50
6 1 1 JOHDANTO Virtualisointi on 2000-luvun alussa tullut jälleen osaksi tietokonejärjestelmien suunnittelua. Lähes kaksi vuosikymmentä kestäneen hiljaiselon jälkeen ovat monet eri alojen yritykset kiinnostuneet virtualisoinnin tarjoamien mahdollisuuksien hyödyntämisestä osana eri tietoteknisiä ratkaisuja ja sovelluksia. Virtualisoimalla luodut keinotekoiset tietokoneet, virtuaalikoneet, on otettu käyttöön nykyaikaisten, jatkuvasti kasvavien palvelinfarmien hallintaan, sillä niiden avulla voidaan karsia fyysisten tietokoneyksiköiden lukumäärää ja ottaa yksittäisten tietokoneiden potentiaalinen kapasiteetti paremmin käyttöön. Virtuaalikoneiden avulla myös ohjelmistojen kehittäminen ja toimivuuden testaaminen eri käyttöjärjestelmissä on merkittävästi helpottunut. Virtuaalikoneisiin perustuvien sovellusten avulla voidaan merkittävästi parantaa tietokonejärjestelmien yhteensopivuutta, luotettavuutta, tiedon siirrettävyyttä ja tietoturvaa, ja siten parantaa yrityksen kokonaistuottavuutta ja taloudellisuutta. Tämän opinnäytetyön tavoitteena oli testata kahta virtualisointiohjelmaa, ja vertailla niiden ominaisuuksia ja niillä luotujen virtuaalikoneiden suorituskykyä toisiinsa ja testialustana käytetyn oikean tietokoneen suorituskykyyn. Virtuaalikoneiden suorituskykyä vertailtiin prosessorin nopeuden, muistin luku- ja kirjoitusnopeuden ja tiedonsiirtoviiveen ja I/O-väylistä LAN-väylän tiedonsiirtonopeuden ja -viiveen osalta. Testien tavoitteena oli löytää kokonaisuutena optimaalisin virtualisointiohjelma CENTRIA:n testausjärjestelmäkehityksen testauskäyttöön. Työn alussa on teoriaosa, jossa on käyty läpi tietokonejärjestelmän ja -arkkitehtuurin, virtualisoinnin ja virtuaalikoneiden teoria ja esitelty työssä testatut virtualisointiohjelmat ja niiden ominaisuudet. Koska tietokonearkkitehtuurin ja virtualisoinnin teoria sinänsä on varsin laaja, on teorian käsittely rajattu yleiselle tasolle. Virtuaalikoneiden osalta on näkökulma rajattu järjestelmävirtuaalikoneisiin. Työn käytännön osassa on esitelty työssä käytetyt testimenetelmät ja -sovellukset, ja käyty läpi virtuaalikoneilla tehdyt suorituskykytestit. Työn lopussa ovat testien tulokset johtopäätöksineen ja yhteenveto.
7 2 Työssä pääasiallisena kirjallisena lähteenä on käytetty James E. Smithin ja Ravi Nairin kirjaa Virtual Machines: Versatile Platforms For Systems And Processes. Lisäksi lähteinä on käytetty kunkin työssä testatun virtualisointiohjelman virallisilta Internetsivuilta löytyviä tietoja ja uusimpia saatavilla olevia dokumentaatioita. Vinkkejä suorituskyvyn testaukseen on saatu monista tietokoneiden suorituskyvyn testausta ja virtuaalikoneita käsittelevistä nettiartikkeleista ja blogeista sekä CENTRIA:n Ylivieskan tutkimusyksikön testausjärjestelmäkehitystiimin työntekijöiltä.
8 3 2 VIRTUALISOINTI 2.1 Tietokonejärjestelmä Nykyaikaiset tietokoneet ovat monimutkaisimpia ihmisen insinööritaidon luomuksia. Ihmisen kyky hallita monimutkaisuutta on mahdollistanut jatkuvasti muuttuvien ja kehittyvien monipuolisten tietokonejärjestelmien luomisen. Tietokonejärjestelmät koostuvat useista piisiruista, joissa on satoja miljoonia transistoreita. Nämä on yhdistetty toisiinsa nopeilla Input/Output-laitteilla (I/O) ja verkkorakenteilla, joiden muodostamalla alustalla erilaiset ohjelmat voivat toimia. Käyttöjärjestelmät, sovellusohjelmat ja sovellusten tarvitsemat kirjastot, sekä grafiikka- ja verkko-ohjelmistot toimivat yhdessä muodostaen tehokkaan ympäristön, joka mahdollistaa tietojenkäsittelyn, opetuksen, yhteydenpidon, huvin ja monet muut sovellukset. (Smith & Nair 2005, 1.) Tietokonejärjestelmien monimutkaisuuden hallitsemiseksi on järjestelmien komponentti- ja sovellustasot yksinkertaistettava (abstraktoitava), eli jaettava abstraktiotasoihin. Fyysiset komponentit, joilla on tietyt ominaisuudet, ja jotka on kytketty fyysisesti toisiinsa eri liityntöjen avulla, kuuluvat alemmalle abstraktiotasolle, ja sovellusohjelmat, jotka ovat eri loogisten ohjelmallisten komponenttien muodostamia yksiköitä, kuuluvat ylemmälle abstraktiotasolle. Abstraktiotasot on eroteltu toisistaan tarkasti määritellyillä rajapinnoilla. Abstraktiotasot erottelevat tietokoneessa ajettavat ohjelmat niitä suorittavasta fyysisestä koneesta. Tasojen avulla alemman tason fyysisten komponenttien suunnittelulliset ja rakenteelliset ominaisuudet näkyvät yksinkertaistettuina ylemmän tason ohjelmille. Esimerkiksi tietokoneen kiintolevy, joka rakentuu sektoreista ja raidoista, muunnetaan tietokoneen käyttöjärjestelmän avulla näkymään tietokoneessa ajettavalle ohjelmalle eri kokoisten tiedostojen joukkona. Tietokoneen käyttäjä, esimerkiksi sovelluskehittäjä voi siten luoda, kirjoittaa ja lukea tiedostoja ilman, että hänen tarvitsee tietää, miten kiintolevy on fyysisesti rakennettu ja järjestetty. (Smith & Nair 2005, 1.) Tietokoneessa ajettavan käyttöjärjestelmän näkökulmasta kone on yhdestä tai useammasta tiettyä käskykantaa ajavasta prosessorista, oikeista muisteista ja I/O-laitteista koostuva fyy-
9 4 sinen kokonaisuus. Sovellusohjelmien näkökulmasta katsottuna kone koostuu käyttöjärjestelmästä ja niistä fyysisistä komponenteista, joiden kanssa ollaan vuorovaikutuksessa koneen käyttäjän antamien binäärikäskyjen mukaisesti. Fyysiset komponentit ja sovellusohjelmat toisistaan erottava rajapinta on suunniteltu siten, että eri valmistajien valmistamat komponentit ja sovellusohjelmat toimivat keskenään samassa koneessa. Rajapinta määrittelee standardikäskykannan, jonka avulla esimerkiksi Intelin ja AMD:n valmistamat x86 arkkitehtuuriin perustuvat prosessorit ja Microsoftin tekemät, high level languageen (HLL), eli korkean tason lausekieleen perustuvat ohjelmat, jotka noudattavat x86 käskykantaa, toimivat yhdessä. Käskykannan määrittelemän standardin mukaiset komponentit, käyttöjärjestelmät ja sovellusohjelmat voidaan myös päivittää eri aikoina ilman, että valmistajien tarvitsee kiinnittää huomiota mitä muutoksia päivitettäviin komponentteihin ja ohjelmiin päivitysten yhteydessä tulee. Joillekin komponenteille ja käyttöjärjestelmille on rajapinnassa määritelty eri käskykanta, jolloin ne eivät ole yhteensopivia. Esimerkiksi prosessoriarkkitehtuureista Intelin x86 ja IBM:n PowerPC perustuvat eri käskykantaan. Käyttöjärjestelmistä Windows ja Linux on rakennettu eri käskykannoilla toimiviksi. Tästä johtuen Windows ohjelmia ei sellaisinaan voida ajaa Linuxissa tai päinvastoin. (Smith & Nair 2005, 2-3.) 2.2 Järjestelmän virtualisointi Virtualisointi on menetelmä, jolla tietokoneen fyysiset laitteet ja niihin liittyvät ominaisuudet muunnetaan tietokoneen fyysisistä rajoituksista riippumattomaksi kokonaisuudeksi. Kun jokin kokonainen järjestelmä, eli prosessori, muisti ja I/O-laitteet virtualisoidaan, sen rajapinta ja kaikki siinä näkyvät resurssit kartoitetaan sitä toteuttavan oikean järjestelmän rajapintaan ja resursseihin. Tästä seuraa, että järjestelmä muutetaan näkymään erilaisena, virtuaalisena järjestelmänä tai jopa useamman virtuaalisen järjestelmän joukkona. Virtuaalista järjestelmää kutsutaan vieraaksi (guest) ja sitä ajavaa oikeaa järjestelmää isännäksi (host). Tätä virtualisoinnin rakentamaa isäntä-vieras rakennetta kutsutaan isomorfiksi ja virtualisointi tapahtumaa isomorfismiksi. Isomorfismin perusteet määrittelivät Popek ja Goldberg vuonna (Smith & Nair 2005, 3.)
10 5 Virtualisointi eroaa abstraktiosta siinä, että se ei piilota virtualisoidun järjestelmän ominaisuuksien yksityiskohtia, vaan virtualisoitu järjestelmä on yhtä yksityiskohtainen kuin sitä ajava oikea järjestelmä. Jos esimerkiksi jokin sovellus vaatii suuren kiintolevytilan jakamista pienempiin osiin, voidaan osiointi suorittaa virtualisoinnin avulla muuntamalla osa kiintolevyn tilasta tietyn kokoisiksi virtuaalisiksi kiintolevyiksi. Luodut virtuaaliset kiintolevyt näkyvät oikealle kiintolevylle erikokoisina tiedostoina. Virtuaalisilla kiintolevyillä on sektoreita ja raitoja kuten oikealla kiintolevyllä, ja kaikki oikean kiintolevyn toiminnot, joita virtualisointiohjelma ohjaa. (Smith & Nair 2005, 4.) Virtualisoidun järjestelmän luomisesta ja ohjaamisesta oikeassa järjestelmässä vastaa järjestelmään asennettu virtualisointiohjelma. Virtualisointiohjelmalla luotua, tiettyyn oikeaan konearkkitehtuuriin perustuvaa virtuaalijärjestelmää kutsutaan virtuaalikoneeksi. Virtualisointiohjelman avulla voidaan esimerkiksi ajaa oikean koneen Windows käyttöjärjestelmässä virtuaalikonetta, jonka käyttöjärjestelmänä on Linux. Virtuaalikoneiden avulla voidaan siis kiertää aiemmin mainitut komponentti- ja sovellusohjelmarajapinnan käskykantojen eroista johtuvat rajoitukset emuloimalla eri järjestelmien yhteensopivuutta, ja saada esimerkiksi x86 arkkitehtuuriin perustuva prosessori toimimaan virtuaalisena PowerPC arkkitehtuuriin perustuvalla prosessorilla varustetussa oikeassa järjestelmässä. (Smith & Nair 2005, 4-5.) Oikeita järjestelmiä jäljittelevien virtuaalikoneiden lisäksi on olemassa myös virtuaalikoneita, joiden rakennetta vastaavaa oikeaa järjestelmää ei ole olemassa. Tällaisia virtuaalikoneita ovat tiettyjen ohjelmointikielten kehittäjien luomat korkean tason lausekieleen perustuvat virtuaalikoneet, joiden koodi käännetään binäärisenä suoraan virtuaalikoneelle. Esimerkiksi Java ohjelmointikielen kehittäjien luoma Java Virtual Machine (JVM) on tällainen virtuaalikone. (Smith & Nair 2005, 5-6.) 2.3 Tietokonearkkitehtuuri Kuten on jo tullut ilmeiseksi, virtuaalikoneista puhuttaessa puhutaan tietokoneen arkkitehtuurista laajassa mielessä. Virtuaalikoneet toimivat siltoina tietokonearkkitehtuurillisten ra-
11 6 jojen välillä, ja virtuaalikoneen toteutuksen tason kannalta on tärkeää, kuinka tarkasti virtuaalikone kykenee toteuttamaan arkkitehtuurirajapintoja. Termi arkkitehtuuri tietokoneiden yhteydessä tarkoittaa tietokonejärjestelmän toiminnallisuutta ja ilmenemistä, eikä se koske järjestelmän toteutuksellisia yksityiskohtia. Arkkitehtuuri kuvataan usein rajapinnan määrittelynä ja sen kautta käytettävien loogisten resurssien toimintana. Jokaisella eri arkkitehtuurilla voi olla useita toteutuksia eri ominaisuuksineen. (Smith & Nait 2005, 6) Tietokonejärjestelmän abstraktiotasot vastaavat laitteiston ja ohjelmiston toteutuskerroksia. Jokaiselle toteutuskerrokselle on oma arkkitehtuurinsa. Esimerkiksi ohjelmiston sovellusohjelman ja sen standardikirjaston välillä on rajapinta. Myös ohjelmiston ja käyttöjärjestelmän välillä on rajapinta. Laitteistorajapintoihin kuuluu I/O-arkkitehtuuri, jonka signaalit ohjaavat I/O-laitteiden ohjaimia, muistiarkkitehtuuri, joka ohjaa muistiosoitteiden muunnoksia, prosessorilta muisteille tulevia käskysignaaleja ohjaava rajapinta sekä rajapinta, joka välittää signaalit muistin DRAM piireille. Käyttöjärjestelmä kommunikoi I/O-laitteiden kanssa ohjain, käynnistyslaitteiston, järjestelmän yhdysväylän ja muistin kääntäjän, laitteiston ohjaimien ja I/O- ja verkkolaitteiden rajapintojen kautta. (Smith & Nair 2005, 6-7.) Instruction set architecture (ISA) eli käskykanta-arkkitehtuuri erottaa laitteiston ja ohjelmiston toisistaan. Käskykanta-arkkitehtuurin periaate määriteltiin ensimmäistä kertaa 1960-luvun alussa IBM:n 360 perheeseen kuuluvaa suurtietokonetta kehitettäessä, kun useaa eri mallia olevista laitteista koostuvassa koneessa piti voida ajaa samaa ohjelmistoa. Virtuaalikoneiden kannalta katsottuna on käskykanta-arkkitehtuurissa kaksi tärkeää osaa, ohjelmistolle näkyvä käyttäjäkäskykanta ja käyttöjärjestelmälle näkyvä järjestelmäkäskykanta. Käyttöjärjestelmä pystyy käyttämään myös kaikkia käyttäjäkäskykannan elementtejä. (Smith & Nair 2005, 7-8.) Käskykanta-arkkitehtuurin lisäksi on kaksi muuta virtuaalikoneiden kannalta oleellista rajapintaa: application binary interface (ABI) ja application programming interface (API) eli ohjelmointirajapinta. ABI, joka sisältää ohjelman järjestelmän laitteistoresurssien käyttämiseksi, sisältää kaikki käskyt, jotka käyttäjä voi antaa. ABI-tasolla kaikki sovellukset vuorovaikuttavat epäsuorasti laitteistoresurssien kanssa kutsumalla käyttöjärjestelmää järjestel-
12 7 mäkutsurajapinnan kautta. Järjestelmäkutsut sisältävät kaikki ne toiminnot, jotka käyttöjärjestelmä voi suorittaa käyttäjän ohjelman puolesta. Järjestelmäkutsurajapinta toteuttaa käskyn, joka siirtää ohjauksen käyttöjärjestelmälle. Tietylle ABI:lle käännetty ohjelmakoodi voi toimia muuttumattomana vain sellaisessa järjestelmässä, jossa on sama ABI ja käyttöjärjestelmä. Ohjelmointirajapinta on korkean tason lausekielten mukaan määritelty rajapinta, joka sisältää standardikirjaston (tai kirjastot), jota sovellus kutsuu voidakseen käyttää järjestelmässä olevia palveluita, käyttöjärjestelmän sisältämät palvelut mukaan lukien. (Smith & Nair 2005, 8.) Lähdekooditasolla määriteltynä ohjelmointirajapinta mahdollistaa ohjelmien siirtämisen järjestelmästä toiseen uudelleen kääntämällä niiden koodi toiseen samaa ohjelmointirajapintaa tukevaan järjestelmään. Ohjelmointirajapinta määrittelee myös tiettyjen laitteistototeutusten abstraktoinnin. Ohjelmointirajapintaan kuuluva rutiini voi sisältää useampia ohjelmointirajapintatason käyttöjärjestelmäkutsuja. Jotkut ohjelmointirajapinnan kirjastojen rutiinit ovat niin kutsuttuja wrappereita, jotka kääntävät korkean tason lausekielisen toimintaohjeen käyttöjärjestelmän ymmärtämään binääriseen muotoon. (Smith & Nair 2005, 8-9.)
13 8 3 VIRTUAALIKONE 3.1 Koneen määritelmä Virtuaalikoneen käsitteen ymmärtämiseksi on määriteltävä, mitä (tieto)koneella tarkoitetaan, koska koneen käsite virtuaalikoneiden yhteydessä vaihtelee hieman riippuen siitä, mistä näkökulmasta sitä tarkastellaan. Käyttäjän ohjelmia ajavan prosessin näkökulmasta kone koostuu prosessille varatusta loogisesta muistiosoiteavaruudesta, joka käyttäjätason rekistereiden ja ohjauskäskyjen ohella mahdollistaa prosessin koodin ajamisen. Koneen I/O-osat ovat näkyvillä ainoastaan käyttöjärjestelmän kautta, ja ajettava prosessi voi vuorovaikuttaa I/O-osien kanssa käyttöjärjestelmän kutsujen kautta. Prosessit yleensä luodaan, niitä ajetaan jonkin aikaa ja ajon päätyttyä ne tuhotaan. Prosessi siis näkee koneen käyttöjärjestelmän ja käyttäjätason laitteista koostuvana kokonaisuutena. (Smith & Nair 2005, 9.) Käyttöjärjestelmän näkökulmasta kone on kokonainen koneessa toimiva järjestelmä. Järjestelmä on täydellinen suoritusympäristö, joka kykenee suorittamaan useampia samanaikaisia prosesseja, joista jotkut voivat kuulua eri käyttäjille. Kaikki prosessit jakavat tiedostojärjestelmän ja muut I/O-resurssit. Järjestelmäympäristö on pysyvä, ainoastaan prosessit tulevat ja menevät. Järjestelmä jakaa fyysistä muistia ja I/O-resursseja prosesseille ja mahdollistaa prosessien ja resurssien välisen vuorovaikutuksen käyttöjärjestelmän kautta. Käyttöjärjestelmä näkee siis koneen pelkkinä fyysisinä laitteina, ja käskykanta-arkkitehtuuri toimii rajapintana järjestelmän ja koneen välillä. (Smith & Nair 2005, 9.) 3.2 Virtuaalikonetyypit Käytännössä virtuaalikone suorittaa ohjelmia samalla tavalla kuin oikea kone, jollaiselle ohjelma on alunperin kehitetty. Virtuaalikone on yhdistelmä oikeaa konetta ja virtualisointiohjelmaa. Virtuaalikone voi joiltakin ominaisuuksiltaan erota oikeasta koneesta, siinä voi esimerkiksi olla useampia prosessoreita, kuin sitä ajavassa oikeassa koneessa. Eri prosessorit voivat myös toimia eri käskykannoilla. (Smith & Nair 2005, 9-10.)
14 9 Virtuaalikoneen ja oikean koneen suorituskyvyt voivat erota toisistaan. Jonkin saman ohjelman suorituskyky virtuaalikoneessa voi olla heikompi kuin vastaavassa oikeassa koneessa. Oikeiden koneiden tavoin voidaan myös virtuaalikoneet jakaa karkeasti kahteen ryhmään, prosessitason ja järjestelmätason virtuaalikoneisiin. (Smith & Nair 2005, 10.) Prosessivirtuaalikone Prosessivirtuaalikoneet on tehty tietyn prosessin suorittamiseksi. Prosessivirtuaalikoneiden virtualisointiohjelma sijoittuu ABI:lle käyttöjärjestelmä/laitteisto yhdistelmän yläpuolelle. Virtualisointiohjelma emuloi sekä käyttäjätason käskyjä että käyttöjärjestelmän kutsuja. Prosessivirtuaalikoneen virtualisointiohjelmaa kutsutaan runtimeksi (runtime software, runtime). Virtualisointiohjelma tukee virtuaalikoneessa suoritettavaa prosessin ajoa niin kauan kun prosessi on käynnissä. (Smith & Nair 2005, 11.) Prosessivirtuaalikoneiden sovellusten toiminta voidaan jakaa replikointiin, emulointiin ja optimointiin. Esimerkkinä replikoinnista on moniajo (multiprogramming). Moniajossa koneen käyttöjärjestelmässä ajetaan useita käyttäjien prosesseja samanaikaisesti. Käyttöjärjestelmä jakaa laitteistoresursseja eri prosesseille ja luo replikoimalla prosessitason virtuaalikoneen kullekin prosessin ajamiseksi tarvittavalle sovellukselle. Jokaiselle prosessille luodaan oma osoiteavaruus ja pääsy tiedostojärjestelmään. Yksittäiselle prosessille luodaan myös vaikutelma, että kaikki koneen resurssit ovat yksin sen käytössä. (Smith & Nair 2005, 13.) Emulointiin prosessivirtuaalikoneita käytetään, kun tarvitaan tietyn laitteiston käskykannan emulointia jollekin toisella käskykannalla toimivalle laitteistolle. Suoraviivaisin emulointimenetelmä on tulkkaus (interpretation). Tulkkauksessa kohde käskykanta-arkkitehtuuria suorittava tulkkausohjelma hakee, dekoodaa ja emuloi yksittäisten lähdekäskyjen suoritusta. Tulkkaus on hidas menetelmä, koska jokaista tulkattua kohdekäskyä kohti tarvitaan kymmeniä alkuperäisiä kohdekäskyjä. Nopeampi emulointimenetelmä on binäärikonversio (binary translation). Binäärikonversiossa lähdekäskyblokkeja konvertoidaan vastaavia toimintoja suorittaviin kohdekäskyihin. Vaikka konversioprosessissa voi ilmetä paljon viivet-
15 10 tä, voidaan yksittäisen konvertoidun käskyblokin sisältämiä konvertoituja käskyjä säilöä ja toistuvasti suorittaa paljon nopeammin, kuin jos käskyt tulkattaisiin. Koska binäärikonversio on tämän tyyppisten prosessivirtuaalikoneiden tärkein ominaisuus, kutsutaan niitä dynamic binary translatoreiksi (DBT) eli dynaamisiksi binäärikonverttereiksi. (Smith & Nair 2005, ) Koodin konvertoinnin lisäksi dynaamiset binäärikonvertterit usein myös optimoivat konvertoitavaa koodia. Koodin optimointi on virtuaalikoneen pääasiallinen tehtävä, kun isäntäja vieraskoneen käskykanta ovat samat. Saman käskykannan binäärioptimoijat ovat tehokkaimmillaan lähdebinäärikoodin optimoinnissa, sillä lähdebinäärikoodi on yleensä hyvin optimoimatonta. (Smith & Nair 2005, 15.) Prosessivirtuaalikoneessa alustojen välinen siirrettävyys on tärkeä ominaisuus. Täydellisen alustojen välisen siirrettävyyden saavuttamiseksi on prosessitason virtuaalikone suunniteltava saman aikaisesti sovelluskehitysympäristön kanssa. Tällaista virtuaalikonetta kutsutaan high-level language virtual machineksi (HLL VM) eli korkean tason lausekieliseksi virtuaalikoneeksi. Korkean tason lausekieliset virtuaalikoneet tulivat ensimmäistä kertaa tunnetuiksi Pascal ohjelmointiympäristön myötä 80-luvun alussa. Siinä missä tavallisessa järjestelmässä kääntäjä koostuu frontendistä, joka leksikaalisen, syntaksisen ja semanttisen koodin analyysin avulla luo yksinkertaista välikoodia (joka on samanlaista kuin konekieli, mutta abstraktimpaa). Tämän jälkeen koodigeneraattori ottaa välikoodin ja generoi konekoodin sisältävän binäärin tietylle käskykanta-arkkitehtuuri- ja käyttöjärjestelmäyhdistelmälle. Tätä binääritiedostoa voidaan sitten levittää ja suorittaa järjestelmissä, joissa on sama käskykanta-arkkitehtuuri ja käyttöjärjestelmä. Eri alustalle binääritiedosto joudutaan kääntämään uudelleen. (Smith & Nair 2005, ) Korkean tason lausekielisessä virtuaalikoneessa binääritiedoston luonti suoritetaan muuten samalla tavalla, paitsi että välikoodin sijaan luodaan virtuaalinen käskykanta-arkkitehtuuri, jota voidaan suorittaa millä tahansa alustalla, kunhan alustalle luodaan virtuaalikäskykannalla toimiva virtuaalikone. Yksinkertaisimmassa muodossaan virtuaalikone sisältää tulkkaajan, joka ottaa kunkin käskyn, dekoodaa sen ja suorittaa tarvittavat tilakonversiot. I/O toiminnot suoritetaan virtuaalikoneen osana olevien standardikirjastokäskyjen kautta. Kor-
16 11 kean tason kehittyneissä ja nopeissa virtuaalikoneissa konversiot suoritetaan suoraan isäntäkoneen koodiin niiden suorittamiseksi isäntäalustalla. (Smith & Nair 2005, ) Korkean tason lausekielisen virtuaalikoneen etuna on ohjelmien helppo siirrettävyys alustalta toiselle. Vaikka virtuaalikoneen luominen onkin jonkin verran vaativaa, on se kuitenkin helppoa verrattuna siihen, että jokaiselle alustalle jouduttaisiin erikseen luomaan kääntäjä aina kun tietty ohjelma halutaan siirtää sille. Korkean tason lausekielisistä virtuaalikoneista tunnetuimpia ovat Sun Microsystemsin kehittämä Java Virtual Machine ja Microsoftin common language infrastructure (CLI), joka on.net framework ohjelmistokomponenttikirjaston perusta. Alustariippumattomuus ja korkea turvallisuus ovat keskeisiä piirteitä sekä JVM:ssa että CLI:ssa. Kummankin järjestelmän käskykanta-arkkitehtuuri perustuu bittikoodiin. Koska millä tahansa laitteistolla saatetaan ajaa JVM:en tai CLI:en perustuvia ohjelmistoja, ei ohjelmia käännetä tietylle käyttöjärjestelmälle, vaan suoritusympäristö on toteutettu standardikirjastojen sarjana. (Smith & Nair 2005, 17.) Järjestelmävirtuaalikone Järjestelmävirtuaalikone koostuu prosessivirtuaalikoneesta poiketen koko järjestelmästä. Järjestelmävirtuaalikoneessa ajetaan käyttöjärjestelmää ja mahdollisesti useita eri käyttäjien prosesseja. Virtuaalikoneessa toimiva vieraskäyttöjärjestelmä ohjelmineen voi käyttää virtuaalikoneen laitteistoresursseja, verkko, I/O, työpöytä, näyttö ja graafinen käyttöliittymä mukaan lukien. Järjestelmävirtuaalikone tukee käyttöjärjestelmän toimintaa niin kauan kun järjestelmäympäristö on toiminnassa. Järjestelmävirtuaalikoneessa virtualisointiohjelma sijoittuu laitteiston ja ohjelmien väliin ja sitä kutsutaan hyperviisoriksi (hypervisor) tai virtual machine monitoriksi (VMM). (Smith & Nair 2005, 11.) Ensimmäiset järjestelmävirtuaalikoneet kehitettiin 60-luvulla ja 70-luvun alussa, ja termi virtuaalikone juontuu niistä. Järjestelmävirtuaalikoneen avulla yhdessä isäntälaitteistossa voidaan ajaa useaa vieraskäyttöjärjestelmäympäristöä. Kun järjestelmävirtuaalikoneita kehitettiin ensimmäistä kertaa, olivat suurtietokoneet hyvin suurikokoisia ja kalliita, ja tietokoneita käytti lähes poikkeuksetta aina suuri joukko eri käyttäjiä. Toisinaan tietty joukko
17 12 käyttäjiä halusi ajaa eri käyttöjärjestelmää samalla laitteistolla, ja tämä oli virtuaalikoneiden ansiosta mahdollista. Vaihtoehtoisesti useampi yhden käyttäjän käyttöjärjestelmä mahdollisti osituskäytön usean eri käyttäjän kesken. Ajan mittaan, kun tietokonelaitteiden hinnat laskivat ja pöytätietokoneet yleistyivät, kiinnostus näitä klassisia virtuaalikoneita kohtaan katosi. (Smith & Nair 2005, ) Nykypäivänä järjestelmävirtuaalikoneet ovat tulleet uudelleen suosioon. Nykyaikaisten virtuaalikoneiden käytön taustalla ovat periaatteessa samat syyt kuin ensimmäisten virtuaalikoneiden käytön. Suuret ja kalliit suurtietokoneet ovat vaihtuneet palvelimiksi ja palvelinfarmeiksi, jotka on jaettu useiden käyttäjien tai käyttäjäryhmien kesken. Nykyisten järjestelmävirtuaalikoneiden ehkä tärkein ominaisuus on, että niiden avulla voidaan turvallisesti jakaa suuria ohjelmistojärjestelmiä, joita ajetaan samanaikaisesti samalla laitteistoalustalla. Eri vierasjärjestelmissä ajettavat ohjelmat eristetään toisistaan. Jos jonkin vierasjärjestelmän tietoturva on vaarassa tai vierasjärjestelmän käyttöjärjestelmä kaatuu, eivät ongelmat vaikuta muissa vierasjärjestelmissä ajettaviin ohjelmiin. Virtuaalikoneiden uuteen suosioon on myös vaikuttanut se, että ne tukevat useampaa erityyppistä käyttöjärjestelmää, kuten Windows ja Linux, samanaikaisesti. (Smith & Nair 2005, 18.) Järjestelmävirtuaalikoneen VMM:in tärkeimpiä ominaisuuksia on alustan replikointi. Keskeisin ongelma on yhden laitteiston resurssien jakaminen monen vierasjärjestelmän kesken. VMM hallitsee kaikkia laitteistoresursseja. Vieraskäyttöjärjestelmä ja sille käännetyt sovellusohjelmat ovat myös VMM:in hallinnassa. Järjestelmä on rakennettu siten, että kun vieraskäyttöjärjestelmä suorittaa jonkin toiminnon, esimerkiksi etuoikeutetun käskyn, joka koskee jaettuja laitteistoresursseja, VMM keskeyttää operaation, tarkistaa käskyn oikeellisuuden ja suorittaa sen vieraan puolesta. Vierasohjelma ei tiedä tästä VMM:in kulissien takana suorittamasta työstä. (Smith & Nair 2005, 18.) Käyttäjän näkökulmasta katsottuna eri järjestelmävirtuaalikoneet eivät eroa toiminnoiltaan toisistaan. Niiden toteutustavat kuitenkin eroavat toisistaan. Popekin ja Goldbergin vuonna 1974 määrittelemässä järjestelmävirtuaalikoneen klassisessa arkkitehtuurissa VMM sijoittuu pelkän laitteiston päälle, ja virtuaalikone sen päälle. VMM:a ajetaan etuoikeutetummassa tilassa ja vierasjärjestelmät vähemmän etuoikeutetussa. VMM keskeyttää ja suorit-
18 13 taa niitä käyttöjärjestelmän käskyjä, jotka ovat tekemisissä laitteistoresurssien kanssa. Tällainen järjestelmävirtuaalikonearkkitehtuuri on monessa mielessä kaikkein tehokkain, sillä se jakaa kullekin vierasjärjestelmälle palveluita tasapuolisesti. Huonona puolena käyttäjän näkökulmasta on kuitenkin se, että virtuaalijärjestelmän asennus vaatii koko järjestelmän alustamisen ja uudelleen aloittamisen. Toinen huono puoli on se, että I/O-laitteiden ajurit on oltava valmiina VMM:issa sitä asennettaessa, koska VMM käyttää I/O-laitteita suoraan. (Smith & Nair 2005, 19.) Toinen järjestelmävirtuaalikoneen toteutustapa on rakentaa virtualisointiohjelma isäntäkäyttöjärjestelmän päälle, jolloin tuloksena muodostuu niin kutsuttu isännöity virtuaalikone (hosted virtual machine). Isännöidyn virtuaalikoneen asennus muistuttaa tavallisen ohjelman asennusta. Virtualisointiohjelma voi käyttää isäntäkäyttöjärjestelmän laiteajureita ja muita matalantason palveluita ilman, että niiden tarvitsee sisältyä VMM:iin. Huonona puolena tässä toteutustavassa on se, että käyttöjärjestelmäpalveluiden käyttäminen vaatii useamman ohjelmistokerroksen läpäisyn, jolloin virtuaalikone menettää tehokkuuttaan. (Smith & Nair 2005, 19.) Tavanomaisissa järjestelmävirtuaalikoneissa sekä järjestelmä- että sovellusohjelmilla on sama käskykanta-arkkitehtuuri kuin alustana käytetyllä laitteistolla. Joissain tapauksissa isäntä ja vierasjärjestelmissä on eri käskykanta-arkkitehtuuri, kuten esimerkiksi Applen PowerPC ja Windows PC pohjaisissa koneissa. Myös Sun Microsystemsin palvelimet toimivat eri käyttöjärjestelmällä ja käskykanta-arkkitehtuurilla kuin palvelimien asiakasohjelmien alustoina käytetyt Windows PC:t. Koska ohjelmistojärjestelmät ovat sidoksissa laitteistojärjestelmiin, joudutaan usein hankkimaan erilliset koneet pelkästään tietyn ohjelman ajamiseksi. (Smith & Nair 2005, ) Ongelmaan ratkaisun tuovat järjestelmävirtuaalikoneet, joissa kokonaista ohjelmistojärjestelmää, käyttöjärjestelmää ja sovelluksia ajetaan isäntäjärjestelmässä, jossa on eri käyttöjärjestelmä ja käskykanta-arkkitehtuuri. Näitä kaikki ohjelmat virtualisoivia virtuaalikoneita kutsutaan kokojärjestelmävirtuaalikoneiksi (whole-system VM). Eri käskykanta-arkkitehtuurista johtuen sekä sovellukset että käyttöjärjestelmä vaativat emulointia, eli ne on binäärikonvertoitava. Kokojärjestelmävirtuaalikoneiden tavanomaisimmassa toteutuksessa
19 14 VMM ja vierassovellukset sijoittuvat alustajärjestelmän käyttöjärjestelmän päälle. Virtualisointiohjelma, vieraskäyttöjärjestelmä ja vierassovellukset ovat siis yksi sovellus, joka asennetaan isäntäjärjestelmän käyttöjärjestelmään. Isäntäkäyttöjärjestelmässä voidaan ajaa isäntäjärjestelmän käskykanta-arkkitehtuurille tehtyjä sovelluksia normaalisti virtuaalikoneen ajon aikana. (Smith & Nair 2005, 20.) Kokojärjestelmävirtuaalikoneen toteuttamiseksi on virtualisointiohjelman emuloitava koko laitteistojärjestelmä. Virtualisointiohjelman on hallittava käskyjen emulointia ja sen täytyy konvertoida vierasjärjestelmän käskykanta-arkkitehtuuritoiminnot vastaaviksi käyttöjärjestelmäkutsuiksi isäntäkäyttöjärjestelmään. Binäärikonversiosta huolimatta käännetty koodi ei useinkaan voi hyödyntää alla olevan käskykanta-arkkitehtuurin ominaisuuksia kuten virtuaalimuistin hallintaa ja ohjelmavirhekeskeytysten käsittelyä. Lisäongelmia voi ilmetä jos isäntä- ja vierasjärjestelmän laitteistot ovat merkittävästi erilaiset. (Smith & Nair 2005, ) Tähän mennessä käsitellyt virtuaalikoneet keskittyvät toiminnallisuuteen ja siirrettävyyteen, mutta virtuaalikoneiden suorituskykyyn ei ole kiinnitetty huomiota. Codesigned virtuaalikoneet (Codesigned VM) on suunniteltu mahdollistamaan innovatiiviset käskykantaarkkitehtuurit ja laitteiston parempi suorituskyky ja virranhallinta. Isäntäjärjestelmän käskykanta-arkkitehtuuri voi olla kokonaan uusi tai se voi perustua johonkin olemassa olevaan käskykanta-arkkitehtuuriin, johon on lisätty uusia käskyjä tai josta on joitain käskyjä poistettu. Codesigned virtuaalikoneissa ei ole käskykanta-arkkitehtuurisovelluksia, vaan virtualisointiohjelma on ikään kuin osa laitteiston toteutusta. Joiltakin osiltaan codesigned virtuaalikoneet muistuttavat laitteistovirtualisointia, johon monet korkean suorituskyvyn omaavat superskalaarimikroprosessorit perustuvat. (Smith & Nair 2005, 21.) Koska tavoitteena on luoda virtuaalikonealusta, joka näyttää täsmälleen samalta, kuin sitä ajava laitteistoalusta, käyttää codesigned virtuaalikoneen ohjelmisto-osa sitä muistialuetta, joka ei ole minkään sovelluksen tai järjestelmäohjelman näkyvissä. Tämä piilomuisti erotetaan muusta muistista järjestelmän käynnistyksen yhteydessä, eivätkä tavalliset ohjelmat tiedä sen olemassaolosta. Piilomuistissa sijaitseva VMM voi sitten ottaa laitteiston hallintaansa milloin tahansa ja suorittaa sillä eri toimintoja. Yleisessä muodossaan virtualisoin-
20 15 tiohjelma sisältää binäärikonvertterin, joka konvertio vieraan käskyt alustan käskykantaarkkitehtuurikäskyiksi ja säilöö konvertoidut käskyt tietylle alueelle piilomuistissa. Tästä syystä vieraan käskykanta-arkkitehtuuria ei suoriteta isäntälaitteistossa. Binäärikonversion sijaan voidaan käyttää myös tulkkausta, mikäli alentunut suorituskyky ei muodostu ongelmaksi. Suorituskyvyn parantamiseksi konvertoitavaa koodia optimoidaan konvertoinnin yhteydessä. (Smith & Nair 2005, ) 3.3 Laitteistoresurssien virtualisointi Tietokoneen laitteiston kaikkea potentiaalista suorituskykyä ei useinkaan hyödynnetä normaalissa käytössä. Joissakin tietokonejärjestelmissä on käytössä osituskäyttötekniikka (time sharing), jossa useammalle kuin yhdelle käyttäjälle annetaan oikeudet käyttää tietokoneen laitteistoresursseja jakamalla resurssien käyttöaikaa eri käyttäjien kesken. Tällainen osituskäyttöperiaatteella toimiva järjestelmä on usein toteutettu prosessivirtuaalikoneen avulla. Järjestelmävirtuaalikoneessa osituskäyttötekniikka on viety askeleen pidemmälle jakamalla yhden fyysisen isäntätietokoneen resurssit useamman vierasvirtuaalikoneen kesken. VMM huolehtii fyysisten resurssien jakamisesta kullekin koneessa toimivalle virtuaalikoneelle. Yksittäisen virtuaalikoneen näkökulmasta kaikki laitteistoresurssit ovat yksin sen käytössä. Mikäli isäntäkoneesta puuttuu jokin tarvittava fyysinen laitteistoresurssi, esimerkiksi verkkokortti, VMM emuloi kyseisen laitteen ominaisuudet ja toiminnot virtuaalikoneita varten. Mikäli isäntä- ja vieraskoneen käskykanta-arkkitehtuurit ovat erilaiset, voi VMM emuloida niille yhteisen virtuaalisen käskykanta-arkkitehtuurin. (Smith & Nair 2005, ) Virtuaalikonejärjestelmien kannalta on tärkeää luoda illuusio useasta oikeasta järjestelmästä. Ohjelmallisesti luotujen järjestelmien lisäksi tällainen illuusio voidaan saavuttaa myös replikoimalla tiettyjä järjestelmään kuuluvia laitteita. Esimerkiksi näppäimistö, näyttö ja CD-asema voidaan replikoida kullekin järjestelmän käyttäjälle ja jakaa loput laitteistosta VMM:in kautta. Kahta käyttöjärjestelmää samanaikaisesti ajettaessa laitteistoa ei tarvitse replikoida, vaan esimerkiksi näppäimistö saadaan toimimaan molemmissa käyttöjärjestelmissä kytkinlaitteen tai erityisen avainsekvenssin avulla. Kahta käyttöjärjestelmää ajavassa
21 16 virtuaalikoneessa voi ensimmäinen käyttöjärjestelmä olla tärkeämpi kuin toinen käyttöjärjestelmä. Tällöin toisen käyttöjärjestelmän käyttöliittymä luodaan omaan ikkunaansa ensimmäiseen käyttöjärjestelmään. Toisen käyttöjärjestelmän sisältämiä ohjelmia voidaan siten ajaa tämän ikkunan kautta. Ensimmäinen käyttöjärjestelmä on useassa tapauksessa oikean järjestelmän isäntäkäyttöjärjestelmä ja toinen virtuaalikoneessa toimiva vieraskäyttöjärjestelmä. (Smith & Nair 2005, ) Tietokoneen laitteiston arkkitehtuurillinen tila sisältyy ja sitä hallitaan koneen laitteistoresursseissa. Arkkitehtuurilliset tilat on yleensä järjestetty hierarkkisesti siten, että rekisterit ovat hierarkian yläpäässä ja toissijaiset tallennuslaitteet, kuten CD-levyt, hierarkian alapäässä. Virtuaalikonejärjestelmissä kullakin virtuaalikoneella on omat arkkitehtuurilliset tilatietonsa, jotka voivat sisältyä isäntäjärjestelmän muistihierarkiaan. Esimerkiksi vierasjärjestelmän rekisterien tiedot vierasjärjestelmän kulloisestakin tilasta voivat sijaita isäntäjärjestelmän muistissa olevassa rekisteritietoja sisältävässä blokissa. Normaalisti VMM vaihtaa ohjausta eri vierasvirtuaalikoneen välillä. Tällöin isäntäjärjestelmässä sijaitsevat vieraskoneen tilatiedot muuttuvat kuten ne muuttuisivat vierasta vastaavassa oikeassa järjestelmässä. Tämä ilmiö on pohjimmiltaan virtuaalikoneen isomorfismia. (Smith & Nair 2005, 375.) Vierasjärjestelmän tilan hallitsemiseksi on kaksi perustapaa. Ensimmäinen tapa on niin kutsuttu epäsuora osoitus, jossa kunkin vierasjärjestelmän tila on sijoitettu tiettyyn pysyvään paikkaan isäntäjärjestelmän muistissa, ja VMM:in hallitsemia osoittimia käytetään osoittamaan kunakin aikana aktiivisena olevan vierasjärjestelmän tilaan. VMM:in vaihtaessa vierasjärjestelmää, siirtyy myös osoitin osoittamaan uutta vierasjärjestelmää. Mikäli vierasjärjestelmän muistiresurssin ominaisuudet ovat erilaiset kuin isäntäjärjestelmän, menettää epäsuora osoitus tehoaan. Syynä tähän on se, että saman virtuaalikoneen rekisteristä toiseen kopioidessaan VMM joutuu varastoimaan kopioitavan arvon välillä johonkin väliaikaiseen rekisteriin sen sijaan, että se voisi suorittaa kopioinnin suoraan yhdestä rekisteristä toiseen. Kopiointioperaatio vaatii siis ylinmääräisiä muistin luku- ja kirjoituskertoja. (Smith & Nair 2005, 375, 377.) Edellä mainitun epäsuoraan osoituksen heikkouden välttämiseksi on käytettävissä toinen
22 17 tapa vierasjärjestelmän tilan hallitsemiseksi. Toinen tapa on kopioida vierasjärjestelmän tilatieto sen luonnolliselle tasolle muistihierarkiassa silloin kun VMM aktivoi kyseisen virtuaalikoneen, ja kopioida tilatiedot takaisin kun aktiivista virtuaalikonetta vaihdetaan. Tietyn arvon siirtäminen yhdestä rekisteristä toiseen suoritetaan isäntäjärjestelmän rekisterin siirtokomennolla. Se, käytetäänkö epäsuoraa osoitusta vai kopiointia riippuu virtuaalikoneen käyttötiheydestä ja siitä, ovatko isäntä- ja vierasjärjestelmän laitteistoresurssit samanlaisia vai eivät. (Smith & Nair 2005, 377.) Prosessori Prosessorin virtualisoinnin kannalta on oleellista, miten vierasjärjestelmän käskytys sekä järjestelmä- että käyttäjätasolla on toteutettu. Käskytyksen toteutukseen on kaksi menetelmää, emulointi tai suora isäntäjärjestelmän prosessorin käyttäminen virtuaaliprosessorin toteuttamiseksi. Emulointi voidaan toteuttaa joko tulkkauksena tai binäärikonversiolla. Emuloinnissa jokaista vierasjärjestelmän käskyä tutkitaan toistuvasti ja vuorotellen tulkkauksen aikana tai kerralla binäärikonvertoinnin yhteydessä ja emuloimalla virtualisoituihin resursseihin samat toiminnat kuin vastaavissa oikeissa resursseissa ilmenisi. Emulointi on ainut menetelmä prosessorin virtualisoimiseksi siinä tapauksessa, että isäntä- ja vieraskoneella on eri käskykanta-arkkitehtuuri. (Smith & Nair 2005, 382.) Toinen menetelmä prosessorin virtualisoimiseksi, suora isäntäjärjestelmän prosessorin käyttäminen virtualisoinnissa, vaatii, että sekä isäntä- että vierasjärjestelmän käskykantaarkkitehtuuri on samanlainen. Emuloidun virtuaaliprosessorin suorituskyky on käskykantaarkkitehtuurien eroista johtuen heikompi, kuin vastaavan oikean prosessorin suorituskyky. Suorassa isäntäprosessorin käyttämiseen perustuvassa virtualisoinnissa suorituskyky on lähes identtinen. (Smith & Nair 2005, 382.)
23 Muisti Järjestelmävirtuaalikoneympäristössä jokaisella vierasvirtuaalikoneella on oma virtuaalimuistitaulunsa. Kunkin virtuaalikoneen osoitemuunnos muuntaa virtuaalimuistiavaruudessa sijaitsevat osoitteet tiettyihin oikeassa muistissa oleviin paikkoihin. Järjestelmävirtuaalikoneympäristössä vieraskoneen oikean muistin osoitteen paikan löytäminen fyysisen muistin osoitteistosta vaatii erillistä kuvausta. Fyysinen muisti tarkoittaa isäntälaitteiston laitemuistia ja oikea muisti VMM:in vierasvirtuaalikoneelle luomaa illuusiota fyysisestä muistista, joka luodaan kun VMM kuvaa vieraskoneen muistia fyysiseen muistiin. Virtuaalikoneen muistin virtualisointi on siis toteutettu tämän oikeasta muistista fyysiseen muistiin kuvauksen avulla. (Smith & Nair 2005, 397.) VMM hallitsee oikean muistin osoitteen kuvausta fyysiseen muistiin ylläpitämällä oikean muistin kuvataulua, joka kuvaa oikean muistin sivut fyysisen muistin sivuihin. Kuvaamattomat fyysiset sivut voidaan jakaa joko VMM:ille tai toisille virtuaalikoneille, mikäli isäntäkoneessa ajetaan useampaa virtuaalikonetta. Muistisivujen kääntäminen toteutuu sivutaulun ja translation lookaside bufferin (TLB), eli osoitemuunnospuskurin avulla. (Smith & Nair 2005, ) I/O-laitteet I/O-alijärjestelmän virtualisointi on yksi järjestelmävirtuaalikoneympäristön toteutuksen vaikeimpia tehtäviä. Jokaisella I/O-laitetyypillä on omat ominaisuutensa ja niitä hallitaan eri tavalla. Virtualisoinnin vaikeus johtuu I/O-laitteiden ja laitetyyppien suuresta määrästä ja niiden määrän jatkuvasta kasvusta. Toisaalta tekniikoita I/O-laitteiden jakamiseksi on kehitetty osituskäyttötekniikan luomisesta asti. I/O-laitteiden määrän kasvu on ongelma myös tavallisille käyttöjärjestelmille, joihin on kehitetty abstraktioita laitteiden ja laitetyyppien tukemiseksi. Joitakin näistä abstraktiotekniikoista voidaan soveltaa myös virtuaalikonejärjestelmissä. (Smith & Nair 2005, 404.) Tietyn I/O-laitetyypin virtualisoinnissa luodaan virtuaalinen versio laitteesta ja virtualisoi-
24 19 daan laitteeseen kohdistuva I/O-toiminta. Vierasvirtuaalikoneessa olevaa virtuaalista I/Olaitetta vastaa yleensä, muttei välttämättä aina, koneessa oleva fyysinen laite. Kun vierasvirtuaalikoneelta tulee pyyntö virtuaalilaitteen käyttämiseksi, keskeyttää VMM pyynnön ja muuntaa sen fyysisen laitteen vastaavaksi pyynnöksi ja pyydetty toiminto suoritetaan. (Smith & Nair 2005, 404.) 3.4 Virtuaalikoneen suorituskyky Virtuaalikone eroaa suorituskyvyltään oikeasta koneesta monesta eri syystä. Isäntäkoneena toimivan oikean koneen käynnistys tilan alustamisineen, koneen käskyjen emulointi virtuaalikoneelle ja VMM:in suorittamat käskyjen keskeytykset aiheuttavat erinäisiä viiveitä virtuaalikoneen käyttöön ottamisessa ja toiminnassa. Virtuaalikoneen suorituskykyä heikentävät tekijät johtuvat isäntäkoneen laitteistosta, etupäässä prosessorista, muistista ja kiintolevystä. Virtuaalikoneen suorituskyvyn parantamiseksi on oikean koneen kokoonpanoa tarvittaessa muutettava. Kiintolevy muodostaa yleensä suurimman suorituskyvyn pullonkaulan. (Waggoner 2009.) Jokaisella koneeseen asennetulla käyttöjärjestelmällä on oma kiintolevyresurssinhallintansa. Esimerkiksi kullakin Windows asennuksella on oma pagefile-tiedostonsa ja käyttöjärjestelmäpohjainen kiintolevy I/O kunakin hetkenä tarvittavien kiintolevyresurssien varaamiseksi. Ongelmia kiintolevyn resurssien varaamisessa ei synny, jos koneessa on vain yksi käyttöjärjestelmä. Useaa käyttöjärjestelmää yhdessä koneessa ajettaessa, kuten esimerkiksi virtuaalikonetta ajavan isäntäkoneen tapauksessa isäntäkäyttöjärjestelmä joutuu jakamaan kiintolevyn I/O-resurssin virtuaalikoneen käyttöjärjestelmän kanssa, jolloin käyttöjärjestelmät joutuvat kilpailemaan kiintolevyresurssista ja tästä johtuen virtuaalikoneen toiminta hidastuu. Nopeushävikki on sitä suurempi mitä hitaampi kiintolevy on. (Waggoner 2009.) Kiintolevystä aiheutuva virtuaalikoneen hidastuminen voidaan suurimmaksi osaksi välttää sijoittamalla virtuaalikone, eli käytännössä virtuaalikiintolevy, jolle vieraskäyttöjärjestelmä on asennettu, erilliselle fyysiselle kiintolevylle kuin mille isäntäkäyttöjärjestelmä on asennettu. Erillinen kiintolevy voi olla esimerkiksi sisäinen IDE- tai SATA-kiintolevy, tai ulkoi-
25 20 nen USB- tai FireWire-väylän kautta koneeseen liitettävä kiintolevy. Erilliselle kiintolevylle asennetun virtuaalikiintolevyn ansiosta voidaan virtuaalikone helpommin siirtää toiseen isäntäkoneeseen, eikä virtuaalikiintolevyä sisältöineen menetetä jos isäntäkäyttöjärjestelmän sisältävä kiintolevy jostain syystä joudutaan alustamaan. Kiintolevyn tietojen pirstoutuminen aiheuttaa myös virtuaalikoneen hidastumista, mikä voidaan ratkaista eheyttämällä sekä isäntäkoneen fyysinen- että vieraskoneen virtuaalikiintolevy säännöllisin väliajoin. (Waggoner 2009.) Kiintolevyn jälkeen virtuaalikoneen suorituskykyyn vaikuttaa toiseksi eniten isäntäkoneen muistien koko ja nopeus. Useampia virtuaalikoneita samassa koneessa ajettaessa on koneen muistin määrä tärkeä tekijä, varsinkin jos virtuaalikoneissa on tarkoitus ajaa raskaita sovelluksia. Yleisesti isäntäkäyttöjärjestelmälle on syytä jättää käyttöön vähintään 1 Gt muistia, ja virtuaalikoneille juuri sen verran muistia kuin vieraskäyttöjärjestelmä vaatii kunnolla toimiakseen. Suorituskyvyn kannalta optimaalisin virtuaalikoneelle määriteltävä muistimäärä on 512 Mt. Virtuaalikoneen käyttöön määritelty suuri muistimäärä lisää isäntäkoneen muistiresursseihin kohdistuvaa rasitusta. Enemmän muistia vaativille käyttöjärjestelmille, kuten Windows Vistalle on kuitenkin syytä määritellä enemmän muistia kiintolevyltä muistiin vaihtamisesta johtuvan virtuaalikoneen suorituskyvyn heikentymisen vähentämiseksi. (Waggoner 2009.) Prosessori on pienin huolenaihe virtuaalikoneen suorituskyvyn kannalta. Nykyaikaiset moniytimiset prosessorit mahdollistavat useamman kuin yhden prosessoriytimen käytön yhden virtuaalikoneen prosessorina. Esimerkiksi neliytimisellä prosessorilla varustetussa koneessa voi olla neljä virtuaalikonetta, joista kullekin on määritelty neljä ydintä käyttöön. VMM siirtää prosessoriresursseja sille virtuaalikoneelle, joka kulloinkin sitä eniten tarvitsee. Tehokkailla prosessoreilla voidaan jonkin verran kompensoida muista komponenteista johtuvaa virtuaalikoneen suorituskyvyn heikkenemistä. (Waggoner 2009.)
26 Virtualisointiohjelmat VirtualBox VirtualBox on x86 virtualisointiohjelmapaketti, jonka alunperin kehitti saksalainen innotek. Nykyisin VirtualBoxia kehittää Sun Microsystems, ja se kuuluu osana Sunin xvm virtualisointialustaan. Ohjelma asennetaan isäntäkäyttöjärjestelmään ja ohjelmalla luodaan virtuaalikoneita, joihin voidaan asentaa oma vieraskäyttöjärjestelmä. Tuettuja isäntäkäyttöjärjestelmiä ovat Windows (XP, Server 2003, Vista ja Server 2008), Linux (Debian GNU/Linux, Fedora Core, Gentoo Linux, Red Hat Enterprise, SUSE, OpenSUSE, Ubuntu ja Mandriva) Mac OS X, OS/2 Warp, ja Solaris ja tuettuja vieraskäyttöjärjestelmiä ovat Windows (NT, 2000, XP, Server 2003, Vista, Server 2008, 3.x, 95, 98 ja ME), DOS, Linux (2.4 ja 2.6 kernel), DragonFlyBSD, FreeBSD, OpenBSD, OS/2 Warp ja Solaris. Vieraskäyttöjärjestelmänä tuettuna ovat sekä 32- että 64-bittiset käyttöjärjestelmäversiot. 64-bittisiä isäntäkäyttöjärjestelmille löytyy tuki, mikäli isäntäjärjestelmästä löytyy laitteistovirtualisointi tai sen 32-bittinen käyttöjärjestelmä tukee kokeellisesti 64-bittistä käyttöjärjestelmää.. (Wikipedia 2009a; Sun Microsystems, Inc. 2009, ) VirtualBoxista on saatavana kaksi eri versiota. Täydellinen VirtualBox paketti kuuluu Personal Use and Evaluation License (PUEL) omistuslisenssiin, joka mahdollistaa ohjelman yksityisen ja opetuskäytön ohjelman arvioimiseksi. Täydellisen VirtualBox paketin kaupallinen hyödyntäminen edellyttää paketin ostamista Sun Microsystemsiltä. Ohjelman toinen versio on nimeltään VirtualBox Open Source Edition (OSE) ja se perustuu nimensä mukaisesti avoimeen lähdekoodiin ja se kuuluu GNU General Public Licenseen (GPL). OSE:ista puuttuu joitakin täydellisen version ominaisuuksia, kuten Remote Desktop Protocol (RDP) eli etätyöpöydän käyttö, USB tuki, iscsi virtuaalikiintolevytuki, Gigabit Ethernet kontrolleri ja Serial ATA (SATA) kontrolleri. (Wikipedia 2009a.) VirtualBox tukee Intelin laitteistovirtualisointia VT-x:ä ja AMD:n AMD-V:tä, kumpaakaan näistä ei tosin käytetä oletuksena. Kiintolevy emuloidaan Virtual Disk Image formaatissa ja virtuaalikiintolevyt tallentuvat isäntäjärjestelmään.vdi päätteisinä järjestelmätiedostoina. VirtualBox osaa lukea ja kirjoittaa myös virtuaalilevylle, joka on luotu VMwarella Virtual
27 22 Machine Disk Formaatissa (VMDK) Pienen apuohjelman avulla voidaan VirtualBoxin virtuaalilevyjä muuntaa Microsoftin Virtual PC levyiksi. Vieraskoneen CD/DVD-asemaksi voidaan liittää joko isäntäkoneen CD/DVD-asema tai ISO muodossa oleva levykuvatiedosto. Esimerkiksi Linux voidaan asentaa vieraskoneeseen suoraan halutun distribuution kotisivuilta ladattavasta ISO levykuvatiedostosta ilman, että sitä tarvitsee ensin polttaa CD- tai DVD-levylle. (Wikipedia 2009a.) Oletusnäytönohjaimena VirtualBox käyttää virtuaalista VESA yhteensopivaa näytönohjainta. Äänikorttina VirtualBox emuloi Intelin ICH AC'97 tai SoundBlaster 16 äänikorttia. Ethernet verkkokorttina emuloidaan AMD PCnet PCI II, AMD Pcnet-Fast III, Intel Pro/1000 MY Desktop ja Intel Pro/1000 T Server verkkokortteja. Oletuksena VirtualBox käyttää NATia. Muissa kuin Windows Vista isäntäkäyttöjärjestelmässä toimivat virtuaalikoneet voidaan myös liittää keskenään virtuaaliseen verkkoon. Yhdessä vieraskoneessa voi olla korkeintaan neljä verkkokorttia. VirtualBoxin täydellinen versio emuloi USB-kontrolleria (USB 1.1 ja USB 2.0), jonka avulla isäntälaitteeseen asennetut USB laitteet näkyvät myös vieraskäyttöjärjestelmissä. RDP palvelimena toimiva VirtualBox näkee myös RDP etäkoneeseen liitetyt USB-laitteet. (Wikipedia 2009a.) VirtualBox pyrkii ajamaan mahdollisimman suuren osan vieraskoneen koodista alkuperäisenä, eli suoraan isäntäkoneen prosessorilla. Ongelmatilanteita varten VirtualBoxiin on sisäänrakennettu dynaaminen uudelleenkääntäjä, joka tarvittaessa purkaa ja korjaa vieraskoneen koodia. Näin vältytään koko koodin uudelleen kääntämiseltä. (Wikipedia 2009a.) Muita VirtualBoxista löytyviä ominaisuuksia on snapshot toiminto, eli ajettavan virtuaalikoneen sen hetkinen tila voidaan jäädyttää, ja kone sammuttaa ja jatkaa myöhemmin siitä mihin jäätiin, tai siirtää koko virtuaalikone toiseen isäntäkoneeseen ja jatkaa virtuaalikoneen käyttöä snapshot-kohdasta. Isäntäkoneen tiedostoja voidaan jakaa virtuaalikoneelle shared folders toiminnolla. Myös isäntä- ja vieraskoneiden leikepöydät (cut, copy ja paste toiminnot) voidaan jakaa. VirtualBoxin mukana tulee Guest Additions niminen ajuripaketti, joka voidaan asentaa vieraskäyttöjärjestelmään. Guest Additions paketti muun muassa parantaa vieraskoneen suorituskykyä, intergroi isäntä- ja vieraskoneiden hiirten kursorit toimimaan saumattomasti ja mahdollistaa vieraskoneen ikkunan koon muuttamisen. (Wikipe-
Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro1 29.10.2013
Virtualisointi Pertti Pennanen DOKUMENTTI 1 (5) SISÄLLYSLUETTELO Virtualisointi... 2 Virtualisointiohjelmia... 2 Virtualisointitapoja... 2 Verkkovirtualisointi... 2 Pertti Pennanen DOKUMENTTI 2 (5) Virtualisointi
Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).
1 Virtualisoinnin avulla voidaan purkaa suora linkki suoritettavan sovelluksen (tai käyttöjärjestelmän tms.) ja sitä suorittavan laitteiston välillä. Näin saavutetaan joustavuutta laitteiston käytössä.
TI10 Joni Hämäläinen & Jan Lampikari
Seminaarityön raportti 1(11) Opintojakso: Linux Perusteet Opettaja: Tomi Pahula Opintojakson toteutus: Syksy 2012 Opintojakson seminaarityö: 21.11.2012 Opiskelijaryhmä: Opiskelijat: Raportti palautettu:
Käyttöjärjestelmät: prosessit
Käyttöjärjestelmät: prosessit Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Käyttöjärjestelmä
Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä
Linux 00 Keskeiset piirteet Tux-pingviinin kuva: Larry Ewing, Simon Budig ja Anja Gerwinski Kysymyksiä 1. Mikä Linux on? 2. Kuinka Linux syntyi ja kehittyy? 3. Mitkä ovat Linuxin vahvuudet? 2 1 Linux on
WINE API ja Virtualisointiohjelmistot
WINE API ja Virtualisointiohjelmistot Yleistä Winestä Ohjelmisto, joka mahdollistaa Windows -pohjaisten ohjelmien käytön kuissa käyttöjärjestelmissä Toimii yhteensopivuuskerroksena ohjelman ja käyttöjärjestelmän
Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä 1973. Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux
Historiaa Linux on Unix-yhteensopiva käyttöjärjestelmä. Unixin perusta luotiin 1964 MIT:ssa aloitetussa MULTICS-projektissa (http://www.cs.helsinki.fi/u/kerola/tkhist/k2000/alustukset/unix_hist/unix_historia.htm)
KYMENLAAKSON AMMATTIKORKEAKOULU. Tietoverkkotekniikka. Wine API sekä virtualisointiohjelmistot. Linux. Lukukausi: Kevät Työ valmistui: 8.4.
KYMENLAAKSON AMMATTIKORKEAKOULU Tietoverkkotekniikka Wine API sekä virtualisointiohjelmistot Linux Lukukausi: Kevät 2014 Teemu Metso Jussi Kujala Ti12_TiVe Ti12_TiVe Työ valmistui: 8.4.2014 Selostus palautettu:
KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka
KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Linux pohjaiset pilvipalvelut Linux järjestelmät TI 11/12 TIVE Santeri Kangaskolkka TI 12 Janne Enroos TI 12 Mikä on
AIHEET 1. VIRTUALISOINTI 2. WINE 3. VIRTUALISOINTIOHJELMISTOJA. ! Yleistä! Historiaa! Tyypit ja tekniikat! Hyötyjä ja ongelmia
206101310 Linux-järjestelmät Seminaarityö 2 AIHEET 1. VIRTUALISOINTI! Yleistä! Historiaa! Tyypit ja tekniikat! Hyötyjä ja ongelmia 2. WINE! Historiaa! Käyttöönotto ja toiminta! Ominaisuudet ja yhteisö!
Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO
Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO Opinnäytetyö KESKI-POHJANMAAN AMMATTIKORKEAKOULU Puutekniikan koulutusohjelma Toukokuu 2009 TIIVISTELMÄ OPINNÄYTETYÖSTÄ Yksikkö Aika Ylivieska
TEHTÄVÄ 5: Microsoft Virtual PC asennus ja hallinta
TEHTÄVÄ 5: Microsoft Virtual PC asennus ja hallinta Windows 7 Enterprise Windows XP Pro Microsoft Virtual PC Windows XP Pro * * Tietokone, jossa on jo asennettuna Windows XP Pro Tomi Stolpe Turun AKK 5.11.2009
Linuxissa uusi elämä 1
17.06.19 Linuxissa uusi elämä 1 Linux on hyvä vaihtoehto Windowsille Uusiin tai vanhempiin tietokoneisiin Miksi käyttäisin Linuxia Tekniikan Maailman Linux vinkki Siirtyisinkö Linuxiin? 17.06.19 Linuxissa
TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO
TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO HARJOITUS: asennus ja konfigurointi TVAT-141 Windows Server 2008 Trial (120 days) Active Directory, AD Domain Name System, DNS Dynamic Host Configuration Protocol,
CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen
CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden
Luento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ
aaro.leikari@hotmail.com TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ 25.01.2016 SISÄLLYS 1. Käyttöjärjestelmän asentaminen... 1 1.1 Windowsin asettamia laitteistovaatimuksia... 1 1.2 Windowsin asentaminen...
Luento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento
Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat
Linux rakenne Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux ydin Ytimen (kernel) päätehtävä on tarjota rajapinta
Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
Nokia Lifeblog 2.5 Nokia N76-1
Nokia Lifeblog 2.5 Nokia N76-1 2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N76 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä. Muut tässä asiakirjassa
Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?
Se edullisempi tietokanta Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä? Rasmus Johansson rasmus.johansson@microsoft.com Ratkaisumyyntipäällikkö (Sovellusalusta) Microsoft Oy Miten
Kytkentäopas. Tuetut käyttöjärjestelmät. Tulostimen asentaminen. Kytkentäopas
Sivu 1/5 Kytkentäopas Tuetut käyttöjärjestelmät Software and Documentation -CD-levyltä voi asentaa tulostinohjelmiston seuraaviin käyttöjärjestelmiin: Windows 8 Windows 7 SP1 Windows 7 Windows Server 2008
.NET ajoympäristö. Juha Järvensivu 2007
.NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET
Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen
Näissä ohjeissa käydään läpi Microsoftin MS-DOS 6.22 -käyttöjärjestelmän asennus Microsoftin Virtual PC 2007 -virtuaalikoneeseen. Asennusta varten sinulla on oltava Virtual PC 2007 asennettuna tietokoneellasi
Lumejärjestelmä Xen. Reino Miettinen
Lumejärjestelmä Xen Reino Miettinen Miksi lumepalvelin Jos jokaiselle sovellukselle tarvitaan oma palvelimensa, niin tämä johtaa helposti raudan hukkakäyttöön. Taloudellisempaa on rakentaa lumepalvelimista
Suorituskyvyn turvaaminen virtualisoidussa ympäristössä
Hyväksymispäivä Arvosana Arvostelija Suorituskyvyn turvaaminen virtualisoidussa ympäristössä Juho Kalliomäki Vantaa 28.10.2012 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Tiedekunta Fakultet Faculty
VMwaren keskitetty työasemaratkaisu
VMwaren keskitetty työasemaratkaisu Santeri Stolt Järjestelmäasiantuntija VMware Finland Työasemia virtualisoidaan - nyt By the end of 2010, all new PC deployments will be virtualized. Brian Gammage and
Virtualisointi Kankaanpään kaupungissa. Tietohallintopäällikkö Jukka Ehto
Virtualisointi Kankaanpään kaupungissa Tietohallintopäällikkö Jukka Ehto Esityksen kulku Esittely ja taustaa Virtualisoinnin vaiheet ja käyttöhuomiot Laitteistot ja yhteenveto Kankaanpää: 12 136 asukasta
Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet
4. Lausekielinen ohjelmointi 4.1
4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,
ZENworks Application Virtualization 11
ZENworks Application Virtualization 11 ZENworks / perinteinen asennus ZENworks virtualisointi Ei erillistä asennusta Ei vaadita erilisiä oikeuksia Oletusasetukset mukana Eri versiot samanaikaisesti Sama
Jouko Nielsen. Ubuntu Linux
Jouko Nielsen Ubuntu Linux 19.4.2017 SISÄLLYS 1 UBUNTU... 3 2 LUETTELO VERSIOISTA... 4 3 OMINAISUUDET... 4 4 ASENNUS... 5 5 UBUNTU SERVER... 9 LÄHTEET... 10 3 1 UBUNTU Ubuntu on debian pohjainen Linux
LINUX LINUX. Viisi hyvää syytä käyttää Linuxia MUISTA! GNU Free Documentation License
GNU Free Documentation License LINUX Lähde: http://www.ubuntufi.org/ LINUX Linux-käyttöjärjestelmäydin on saanut alkunsa suomalaisen Linus Torvaldsin ansiosta Linux (GNU+Linux) on levinnyt maailmalla nopeasti
SQL Server 2005 Express Edition tietokannan asennusohje
1 SQL Server 2005 Express Edition tietokannan asennusohje SQL Server 2005 Express Edition on Microsoftin tietokantaohjelmiston ilmaisversio. Asennukset tulee tehdä käyttäjätunnuksella, jolla on administrator-oikeudet.
Tulostimen hallintaohjelmisto MarkVision
Tulostinohjelmisto ja apuohjelmat 1 Tulostimen hallintaohjelmisto MarkVision Windows 95/98/2000-, Windows NT 4.0- ja Macintosh-käyttöjärjestelmien MarkVision toimitetaan tulostimen mukana Drivers, MarkVision
Backup Exec 3600 Appliance
Backup Exec 3600 Appliance Markku A Suistola Principal Presales Consultant Parempaa varmistusta kaikille! Ohjelmisto Appliance Pilvi Virtuaalisen ja fyysisen ympäristön suojaus 2 Perinteinen ratkaisu usein
KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka
KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Kristopher Vuorela UBUNTUN ASENNUS JA ALKEET 206101312 Linux järjestelmät Lukukausi: Kevät 2015 Työ valmistui: 15.04.2015
Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?
Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2 Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia,
TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos
TIES325 Tietokonejärjestelmä Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos Kevät 2008 Luku 1 Tietokone abstraktina yksikkönä Tietokoneen asbtratiotasoa sen muotoisena kuin me sen tällä hetkellä
Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
Simulaattorin asennus- ja käyttöohje
Linux ja Windows XP Versio Päiväys Muokkaaja Kuvaus 0.2 16.2.2006 Mikko Halttunen Katselmoinin jälkeen 0.1 13.2.2006 Mikko Halttunen Alustava versio Sisällysluettelo 1 Johdanto... 3 2 Simulaattorin asennus...
LAITTEISTOKOKOONPANON SELVITTÄMINEN JA AJURIEN ASENTAMINEN
LAITTEISTOKOKOONPANON SELVITTÄMINEN JA AJURIEN ASENTAMINEN Oma tietokone -valintaa klikkaamalla hiiren oikeanpuoleisella näppäimellä, saadaan näkyviin laitteistokokoonpano Ominaisuudet laitteisto -valinnalla:
KYMENLAAKSON AMMATTIKORKEAKOULU. Ubuntu. Yukun Zhou
KYMENLAAKSON AMMATTIKORKEAKOULU Ubuntu Yukun Zhou 2014 Yukun Zhou Harjoitustyö 1 SISÄLLYSLUETTELO 1. YLEISTÄ... 2 2. JULKAISUT... 3 3. SUOSIO... 4 4. ASENNUS... 4 5. TURVALLISUUS... 4 6. PAKETTIENHALLINTA...
Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14
Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2
FuturaPlan. Järjestelmävaatimukset
FuturaPlan Järjestelmävaatimukset 25.1.2017 2.2 Hermiankatu 8 D tel. +358 3 359 9600 VAT FI05997751 33720 Tampere fax. +358 3 359 9660 www.dbmanager.fi i Versiot Versio Päivämäärä Tekijä Kommentit 1.0
Finnish Value Pack Asennusohje Vianova Systems Finland Oy Versio 18.10 12.4.2011
Finnish Value Pack Asennusohje Vianova Systems Finland Oy Versio 18.10 12.4.2011 2(6) 1. Käyttöoikeudet ja asennusvaatimukset 2. Asennus Novapoint Finnish Value Pack 18.10 sovellusten asennus vaatii järjestelmänvalvojan
PC-LAITTEEN TESTAAMINEN
PC-LAITTEEN TESTAAMINEN PC-Check-ohjelma Kun laite on koottu, on perusteltua testata sen toiminta ennen käyttöönottoa. Tätä varten on luotu erilaisia ohjelmia, joilla voi laitteen eri osat testata. Yksi
10:30 Tauko. 12:00 Lopetus. Yhteistyössä:
Pilviteknologiat työasemaympäristössä Microsoft ja Citrix yhdessä Ohjelma 08:30 Aamupala ja ilmoittautuminen 09:00 Virtualisointia työpöydällä vai työpöytien virtualisointia? 10:00 Optimoitu, virtualisoitu
Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.
Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja
Virtualisointi VMwarella: Orkestroitua elinkaarta ja kustannustehokkuutta
Kari Mattsson, Trivore Oy Honeywell Suomen Asiakaspäivä 2014 Virtualisointi VMwarella: Orkestroitua elinkaarta ja kustannustehokkuutta 1 Presenter background 30 vuotta IT-alalla, josta 25 vuotta yrittäjänä
Luento 1 (verkkoluento 1) Tietokonejärjestelmä
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.
Tulostimen asentaminen Software and Documentation -CD-levyn avulla
Sivu 1/6 Yhteysopas Tuetut käyttöjärjestelmät Software and Documentation -CD-levyltä voi asentaa tulostinohjelmiston seuraaviin käyttöjärjestelmiin: Windows 7 Windows Server 2008 R2 Windows Server 2008
TK081001 Palvelinympäristö
TK081001 Palvelinympäristö 5 opintopistettä!! Petri Nuutinen! 8 opintopistettä!! Petri Nuutinen! RAID RAID = Redundant Array of Independent Disks Useasta fyysisestä kiintolevystä muodostetaan yhteinen
Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely)
Kahden virtualisointiohjelmiston suorituskyvyn testaus (valmiin työn esittely) Jani Laine 31.10.2017 Ohjaaja: DI Jimmy Kjällman Valvoja: Prof. Kai Virtanen Työn saa tallentaa ja julkistaa Aalto-yliopiston
MP3 Manager Software for Sony Network Walkman
MP3 Manager Software for Sony Network Walkman Käyttöohje WALKMAN on Sony Corporationin kuulokestereotuotteisiin liittyvä rekisteröity tavaramerkki. on Sony Corporationin tavaramerkki. NW- E55/75 2004 Sony
Päivitys käyttäen USB-tikkua
Päivitys käyttäen USB-tikkua HUOM! Näiden ohjeiden noudattaminen on täysin käyttäjän omalla vastuulla! Ohjeen tekijät eivät vastaa mahdollisesti aiheutuvista ongelmista tai vahingoista. Tämän ohjeen tarkoitus
Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari
LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A4000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 30.3.2008,
Android ohjelmointi. Mobiiliohjelmointi 2-3T5245
Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille
.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)
.NET ja C# Virtuaalikone Periaate Virtuaalikone on tapa abstrahoida allaoleva toteutus yhteisen rajapinnan taakse. Virtuaalikoneet muodostavat hierarkian. Hierarkiassa ylempänä oleva käyttää alemman tarjoamaa
Käyttöjärjestelmien historia. Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen
Käyttöjärjestelmien historia Joni Herttuainen Henri Jantunen Markus Maijanen Timo Saksholm Johanna Tjäder Eetu Turunen Käyttöjärjestelmien jaottelu Voidaan jaotella erilaisin menetelmin Aikajana (määrä,
Suoritustavat: Laboratoriotöitä 2.-3.periodi. Luennot 2h, Laboratorityöt 4h, itsenäinen työskentely 124 h. Yhteensä 130 h.
Janne Parkkila Tavoitteet: Opintojakson aikana opiskelijoiden tulee: - Yhdistellä eri lähteistä löytämiään tietoja. - Kirjoittaa kriteerit täyttäviä alku- ja loppuraportteja. - Ratkaista laboratoriotöissä
Työpöytävirtualisointi
Työpöytävirtualisointi VMware View LIPO - SAMK Liiketoiminta ja kulttuuri Pori Liiketalouden, matkailun, tietojenkäsittelyn, viestinnän ja yrittäjyyden ja liiketoimintaosaamisen koulutusta. Käyttäjiä noin
VMware virtualisointiohjelmiston asennus ja käyttöönotto
VMware virtualisointiohjelmiston asennus ja käyttöönotto JOHDANTO VMware-ohjelmisto on tarkoitettu VMware-virtuaalikoneiden luomiseen ja käyttämiseen. Tässä käsitellään ainoastaan virtuaalikoneita, jotka
Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi
Käyttöjärjestelmät Teemu Saarelainen Tietotekniikka teemu.saarelainen@kyamk.fi Lähteet Stallings, W. Operating Systems Haikala, Järvinen, Käyttöjärjestelmät Eri Web-lähteet Kurssin sisältö Johdanto, historiaa
Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä
www.niksula.cs.hut.fi/~jjkankaa// Demosovelluksen tekninen määrittely v. 0.6 Päivitetty 11.12.2000 klo 20:26 Mickey Shroff 2 (12) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite
Office 2013 - ohjelmiston asennusohje
Office 2013 - ohjelmiston asennusohje Tämän ohjeen kuvakaappaukset on otettu asentaessa ohjelmistoa Windows 7 käyttöjärjestelmää käyttävään koneeseen. Näkymät voivat hieman poiketa, jos sinulla on Windows
28.4.2011 Palvelimien ja työasemien virtualisointi Red Hat -tuotteilla. Timo Kero, Netorek Oy
28.4.2011 Palvelimien ja työasemien virtualisointi Red Hat -tuotteilla Timo Kero, Netorek Oy Palvelimien ja työasemien virtualisointi Red Hat -tuotteilla 1 Esittelyt 1. Netorek 2. Miksi virtualisoida työasemia?
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)
Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative
KYMENLAAKSON AMMATTIKORKEAKOULU Wine API ja Virtualisointiohjelmistot. Markku Yli-Kiikka OH06
KYMENLAAKSON AMMATTIKORKEAKOULU Wine API ja Virtualisointiohjelmistot Markku Yli-Kiikka OH06 Sisällys: Wine API...2 Yleistä Winestä...2 API...2 Historiaa...2 Etuja ja haittoja...3 Virtualisointiohjelmistot...5
Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan
Aram Abdulla Hassan Windows Server 2012 asentaminen ja käyttö 1 Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan Hyper-V ohjelma. Riipu minkälaista Serveria yritämme
Demo 13. Aihe: Linux. Opettaja: Antti Ekonoja. Tekijä: Heini Puuska
Demo 13 Aihe: Linux Opettaja: Antti Ekonoja Tekijä: Heini Puuska Päiväys: 30.5.2011 Sisällys 1 Linux... 1 2 Jakelupaketit... 1 2.1 Debian... 1 2.2 Ubuntu... 1 2.3 Red Hat... 1 2.4 Fedora... 2 2.5 SUSE...
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann
PIKAOPAS. Nokia Connectivity Cable Drivers -ohjainten asentaminen
PIKAOPAS Nokia Connectivity Cable Drivers -ohjainten asentaminen Sisällysluettelo 1. Johdanto...1 2. Mitä tarvitaan...1 3. Nokia Connectivity Cable Drivers -ohjainten asentaminen...2 3.1 Ennen asennusta...2
UBUNTU 8.04 LTS ASENNUS
UBUNTU 8.04 LTS ASENNUS 24.4.2008 Marko Kaartinen 2008 Tässä oppaassa käyn läpi kuinka asennetaan Ubuntu 8.04 LTS. Oppaan on tarkoitus olla mahdollisimman yksinkertainen ja selkeä. Kaikki kysymykset asennuksesta
Visma Avendon asennusohje
Visma Avendon asennusohje 1 Versio 5.21 On tärkeää, että käytössäsi on aina uusin toimittamamme versio ohjelmistosta. Asentamalla viimeisimmän version saat käyttöösi ohjelman tuoreimmat ominaisuudet ja
2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä
Nokia Lifeblog 2.5 2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä. Muut tässä asiakirjassa mainitut
Valppaan asennus- ja käyttöohje
Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi
TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps
TeleWell TW-LTE/4G/3G USB -modeemi Cat 4 150/50 Mbps Pikaohje Laite toimii Windows XP SP3, Windows 7,8,10 ja Mac OSx 10.5 tai käyttöjärjestelmissä, Linux tuki netistä ladattavilla ajureilla USB portin
HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus)
HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus) Microsoft Windows Vista Business Microsoft Winodows 7 Professional Upgrade
Ohjelmointi 1. Kumppanit
Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5
DVD-RAM-levyjen käyttö
Tämä opas sisältää vähimmäistiedot, joita tarvitaan DVD-RAM-levyjen käyttöön DVD MULTI -asemassa Windows 98/Me/2000 -käyttöjärjestelmässä. Windows, Windows NT ja MS-DOS ovat Microsoft Corporationin rekisteröityjä
Tulostimen asentaminen Software and Documentation -CD-levyn avulla tietokoneeseen ja suorita asennusohjelma uudelleen.
Sivu 1/7 Kytkentäopas Tulostimen asentaminen paikallisesti (Windows) Huomautus: Kun asennat paikallisesti liitettyä tulostinta eikä Ohjelmisto ja käyttöoppaat -CD-levy ei tue käyttöjärjestelmää, käytä
Drive Letter Access. Pikaopas
Drive Letter Access Pikaopas elokuu 2002 Sisällys Luku 1: Johdanto.......................................................5 Drive Letter Access -ohjelman asentaminen......................................
Selvitysraportti. MySQL serverin asennus Windows ympäristöön
Selvitysraportti MySQL serverin asennus Windows ympäristöön IIO30200 / Jouni Huotari Arto Sorsa / F3900 CREATIVE COMMONS LISENSOITU http://creativecommons.org/licenses/by-nc-sa/1.0/fi/ 26.4.2010 1 SISÄLTÖ
Käyttöoppaasi. F-SECURE PSB E-MAIL AND SERVER SECURITY http://fi.yourpdfguides.com/dref/2859688
Voit lukea suosituksia käyttäjän oppaista, teknisistä ohjeista tai asennusohjeista tuotteelle F-SECURE PSB E-MAIL AND SERVER SECURITY. Löydät kysymyksiisi vastaukset käyttöoppaasta ( tiedot, ohjearvot,
Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,
Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle, sovellusohjelmille ja käyttäjille? 2012-2013 Lasse Lensu
TIETOKONE JA VERKOT IT PC & NETWORK SUPPORT TAITAJA 2001 LAHTI KÄYTTÖJÄRJESTELMIEN JA OHJELMISTOJEN ASENTAMINEN SEKÄ KONFIGUROINTI
TIETOKONE JA VERKOT IT PC & NETWORK SUPPORT TAITAJA 2001 LAHTI KÄYTTÖJÄRJESTELMIEN JA OHJELMISTOJEN ASENTAMINEN SEKÄ KONFIGUROINTI Käyttöjärjestelmien ja ohjelmistojen asentaminen ja konfigurointi Pe 13.30-16.30
Viljo-Praktiikka ja Kirjanpito -ohjelman versio 3.05 asennusohje uudet käyttäjät
1 Viljo-Praktiikka ja Kirjanpito -ohjelman versio 3.05 asennusohje uudet käyttäjät Uuden version asennuksessa on kaksi vaihetta: 1. SQL Server 2005 Express version asennus 2. Viljo 3.05 Praktiikka- ja
Nopean asennuksen ohje
Tulostuspalvelin Nopean asennuksen ohje Nopean asennuksen ohje 1.1 Hardwaren asennusmenettely 1. Liitä tulostuspalvelin tulostimeen, jota haluat käyttää verkossa. 2. Liitä tulostuspalvelin verkkoon liittämällä
VALO-ohjelmat ja LTSP kouluissa. Elias Aarnio Innopark, AVO-hanke elias.aarnio@innopark.fi 040-8204614
VALO-ohjelmat ja LTSP kouluissa Elias Aarnio Innopark, AVO-hanke elias.aarnio@innopark.fi 040-8204614 Mikä ihmeen VALO? VALO = Vapaat ja avoimen lähdekoodin ohjelmat Kyse on siis Open Sourcesta eli avoimesta
Kieliversiointityökalu Java-ohjelmistoon. Ohje
Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5
Terveydenhuollon Atk-päivät 2009
Terveydenhuollon Atk-päivät 2009 26. 27.5.2009, Jyväskylä Mika Kolhinoja Teknologiakonsultti Citrix CCA, Citrix CCEA, Citrix CCSP, Microsoft MCP, Microsoft MCSA, Microsoft MCSE, Microsoft MCTS, Microsoft
4. Lausekielinen ohjelmointi 4.1
4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen
1 Tivax siirto uuteen koneeseen
Tivax siirto uuteen koneeseen 1 1 Tivax siirto uuteen koneeseen 1.1 Tivax ohjelman asentaminen Huom. Siirrossa mahdollisesti esiintyvien ongelmien ratkaisu on veloituksetonta ainoastaan asiakkaille, joilla
Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä
Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat