Seminaarityön raportti 1(11) Opintojakso: Linux Perusteet Opettaja: Tomi Pahula Opintojakson toteutus: Syksy 2012 Opintojakson seminaarityö: 21.11.2012 Opiskelijaryhmä: Opiskelijat: Raportti palautettu: 21.11.2012 TI10 Joni Hämäläinen & Jan Lampikari Harjoitustyön aihe: Wine API ja virtualisointi ohjelmistot.
Seminaarityön raportti 2(11) Sisältö: WINE... 3 Kehitys... 3 Toimintaperiaate... 4 Microsoftin suhtautuminen Wineen... 4 VMware Workstation... 5 Virtualisointi yleisesti... 6 PC-koneissa... 6 Kuvat:... 7 Lähteet:... 11
Seminaarityön raportti 3(11) WINE Wine on avoimen lähdekoodin sovellus, jonka tarkoituksena on mahdollistaa Microsoft Windowsille kirjoitettujen ohjelmien käyttäminen Unixin kaltaisissa käyttöjärjestelmissä. Wineen kuuluu myös Winelib-ohjelmakirjasto, jonka avulla kehittäjät voivat kääntää Windows-ohjelmia auttaakseen niiden porttaamista Unixin kaltaisille käyttöjärjestelmille. Wine ei ole emulaattori,vaan yhteensopivuuskerros, joissa on vaihtoehtoiset toteutukset Windows-ohjelmien käyttämiseen DLL-kirjastoista ja prosessi joka korvaa Windows NT:n ytimen. Tekijänoikeusongelmien välttämiseksi Wine kirjoitetaan enimmäkseen takaisinmallinnusta hyväksi käyttäen. Alunperin Wine tuli sanoista WINdows Emulator, mutta jälkeenpäin se muutettiin rekursiiviseksi backronyymiksi Wine Is Not an Emulator. Kehitys Wine-projekti aloitettiin vuonna 1993 Bob Amstadin ja Eric Youngdalen toimesta. Pääajatuksena ajaa Windows-ohjelmia Linuxissa. Alun perin se oli tarkoitettu ajamaan 16-bittisiä Windows 3.x -ohjelmia, mutta nykyään painopiste on Win32 APIssa ja 32- bittisissä Windows-ohjelmissa. Projektin johtajana on toiminut Alexandre Julliard jo vuodesta 1994 lähtien. Sen sijaan, että Wine olisi täysi emulaattori, se tarjoaa yhteensopivuuskerroksen, joka sisältää vaihtoehtoisia toteutuksia normaaleille Windows-ohjelmien kutsuille. Wineä kehitetään pääsääntöisesti Linuxille, mutta Wine tukee myös vahvasti FreeBSD:tä ja Solaris:ta. Winen ensimmäinen varsinainen beta-versio julkaistiin 25.lokakuuta 2005 yli 12-vuoden kehityksen jälkeen. Version numero oli 0.9. Tämän jälkeen uusia beta-versioita julkaistiin kahden ja puolen vuoden ajan, noin kahden viikon välein. 15 vuoden kehitystyön tuloksena 17.kesäkuuta julkaistiin versio 1.0. Version 1.0 kehittämisen jälkeen uusien ominaisuuksien kehitys on siirretty 1.1xhaaraan. Kehitysversioiden julkaisuväli on säilynyt samana noin kahtena viikkona. Wine 1.2 julkaistiin lopulta 16. heinäkuuta 2010.
Seminaarityön raportti 4(11) Toimintaperiaate Winen toimintaperiaate on muuttaa Windows-ohjelmien käyttämän Win32 API:n kutsut vastaamaan tietokoneen käyttöjärjestelmän ymmärtämiä kutsuja. Kun ohjelma käynnistetään, se yrittää lähettää käyttöjärjestelmälle tiettyjä viestejä, kuten muistin varaamiseen ja ohjelman ajamiseen tarvittavia muuttujia. Wine tulkkaa käytetyt kutsut, koska alla oleva käyttöjärjestelmä ei ymmärrä ohjelman käyttämiä WIN32 API:n kutsuja. Windows-ohjelma ei taas ymmärrä käyttöjärjestelmän vastauksia, joten Wine tulkkaa myös vastaukset. Näin ollen ohjelma pystyy toimimaan ikään kuin se ajettaisiin Windows-ympäristössä. Vastaavalla tavalla toimiva ohjelma on Mac OS X:n Classic tulkki. Microsoftin suhtautuminen Wineen Microsoft ei ole ilmaissut varsinaista kantaansa liittyen Wineen. Microsoftin päivitystyökalu kuitenkin estää Microsoftin-sovellusten päivittämisen Winen kautta. 16. helmikuuta 2005 Wine-kehittäjä Ivan Leo Puoti kuitenkin huomasi, että Microsoft on alkanut estää osien päivittämisen, jos se havaitsee Wineen liittyviä asetusavaimia Windowsin rekisterissä päivityksen yhteydessä. Puoti sanoi, että Microsoft on ensimmäistä kertaa myöntänyt Winen olemassaolon. Windowsin aitoustarkistus tarkistaa, onko Wine-rekisteriavaimia olemassa. Koska Wine ei ole aito Windows niin aitoustarkistus kertoo käyttäjälle epäaidon Windowsin käytöstä ja estää aitoustarkistusta vaativien ohjelmien lataamisen. Microsoft on kuitenkin poistanut aitoustarkistuksen käytöstä muutamasta ohjelmasta, kuten Internet Explorer 7:stä ja Windows Media Playeristä, ja täten helpottaa kyseisten ohjelmien käyttöä Winessä.
Seminaarityön raportti 5(11) Microsoft antaa aitoustarkistukseen liittyvissä kysymyksissä kuitenkin tietoa siitä, kuinka käyttäjä voi saada päivitykset useimpiin Microsoft-sovelluksiin Microsoftin verkkosivulta, vaikka käytössä on Wine: Wine perustuu Windows 3.x- ja Win32-API-liittymiin, ja sitä voidaan käyttää X:ssä ja UNIXissa. Kun WGA-tarkistus havaitsee järjestelmässä toimivan Winen, se ilmoittaa käyttäjälle, että hän ei käytä aitoa Windowsia, eikä salli aidon Windowsin ladattavien tiedostojen käyttöä kyseisessä järjestelmässä. Wine-käyttäjät voivat hankkia Wine-päivitykset Wine-yhteisöltä. Huomaa, että Wine-käyttäjät ja muut epäaidon Windowsin käyttäjät voivat jatkossakin ladata päivityksiä useimpiin Microsoft-sovelluksiin Microsoftin sovelluskohtaisista sivustoista, kuten Office Updatesta. VMware Workstation Windows XP Fedorassa VMware Workstation on ohjelmisto virtuaalitietokoneiden luontiin ja ajamiseen Intel x86- alustalla. Sillä voidaan ajaa yhden fyysisen tietokoneen päällä yhtä tai useampaa virtuaalista x86-tietokonetta. Jokaisessa näistä virtuaalikoneista voi toimia oma käyttöjärjestelmänsä, esimerkiksi Windows, Linux tai jokin BSD-variantti. VMware Workstation sallii siis esimerkiksi Windows XP:n ajamisen omassa ikkunassaan Linuxin työpöydällä. Muut VMwaren työkalut helpottavat tällaisten virtuaalikoneiden keskitettyä hallintaa ja päivitystä. Erilaisten palvelimien ja työpäätteiden kasvava määrä yrityksissä on kasvattanut myös VMware Workstationin suosiota. Palvelimien ja päätteiden siirto yhden fyysisen tietokoneen alaisuudessa toimiviksi virtuaalikoneiksi helpottaa niiden hallintaa, lisää joustavuutta ja ennen kaikkea vähentää lattiapinta-alan tarvetta toimistossa. On kuitenkin syytä muistaa että samassa fyysisessä tietokoneessa ajettavat virtuaalikoneet jakavat koneen fyysiset resurssit keskenään. Saavutettujen etujen hintana on aina merkittävä suorituskyvyn lasku/virtualisoitu palvelin. Kokeilimme asentaa Linux Fedoraan Vmware ohjelman versio 9.0, ja käyttää siinä Windows XP käyttöjärjestelmää. Vmware:n asennus onnistui hyvin, ja myös Windows XP:n asentamisen kanssa ei ollut ongelmia. Kun tuli hetki pistää Vmaware koneeseen power on eli virrat päälle, niin koko käyttöjärjestelmä kaatui. Emme saaneet Windowsia toimimaan Fedorassa, vaikka yritimme erilaisia kikkoja ynnä muuta. Ongelmana tuntui olevan kernelin uudet versiot, jotka eivät tukeneet vmware ohjelmaa.
Seminaarityön raportti 6(11) Asensimme Wine-ohjelman, jonka avulla ajattelimme yrittää käyttää Windows Internet Explorer-ohjelmaa. Saimme ohjelman asennettua helposti ja se toimi myös hyvin. Asensimme tarkoituksella erittäin vanhan version, sillä halusimme nähdä, että miten kyseinen ohjelma toimii Winen avulla Linuxissa. Ohjelma toimii jotenkuten, mutta kaikkia sivuja se ei näytä, sillä vanha versio ei tue kunnolla xhtml:ää. Virtualisointi yleisesti Virtualisointi tarkoittaa tietojenkäsittelyssä tekniikkaa, jolla jonkin fyysisen resurssin tekniset piirteet piilotetaan muilta järjestelmiltä, sovelluksilta ja loppukäyttäjiltä, jotka käyttävät näitä resursseja. Täten yksi fyysinen resurssi (kuten palvelin, käyttöjärjestelmä, sovellus tai tallennusväline) voi toimia monena loogisena resurssina, tai useat fyysiset resurssit (kuten tallennuslaitteet tai palvelimet) näkyvät yhtenä loogisena resurssina. Tätä uutta virtuaalista näkymää taustalla oleviin resursseihin ei rajoita niiden toteutus, maantieteellisen sijainti tai fyysinen konfigurointi. Useimmin virtualisoituja resursseja ovat laskenta- ja tallennuskapasiteetti. Virtuaalikone on ympäristö, joka suorittaa ohjelmia, kuten tietokone. Samaa termiä käytetään myös ympäristöstä joka simuloi kokonaista tietokonetta isäntäjärjestelmän alla. Virtuaalikone voi emuloida toista järjestelmää laitetasolla siten, että siinä ajettavan käyttöjärjestelmän laiteajurit toimivat, mutta jotkut ympäristöt tarjoavat käyttöön laiteajurit, joilla voidaan käyttää virtuaalikoneen tarjoamaa "laitteistoa." Laitteiston virtualisointi ja erillisten käyttöjärjestelmäympäristöjen ajaminen on ollut pitkään tuttua mainframe-koneissa, kuten IBM:n ZSeries ja z/vm. Unixissa vastaavaa tekniikkaa edustaa Sun Solaris 10:n Container/Zone-malli. PC-koneissa PC-koneissa virtualisoinnin edelläkävijänä oli VMware-yhtiö. Virtualisoinnin edeltäjiä olivat emulaattoriohjelmat, jotka jäljittelevät kokonaista suoritinta suorittamalla sen käskyjä yksi kerrallaan. VMwaren tekniikassa konekoodia suoritettiin suoraan koneen suorittimella, mutta ohjelmisto muuttaa suoraan ajettavaksi soveltumatonta koodia ajon aikana (yhtiö käyttää tekniikasta termiä binary translation). Näin saavutettiin jopa 80 % natiivin koodin nopeudesta.
Seminaarityön raportti 7(11) Vuonna 2005 VMware ehdotti virtualisoinnin nopeuden parantamiseen käyttöjärjestelmien muuttamista tukemaan virtualisointia (ns. Virtual Machine Interface, VMI). Tekniikasta käytetään nimeä paravirtualisointi. Tässä käyttöjärjestelmää muutetaan laitteiston sijaan ajettavaksi ns. hypervisorin alla. Hypervisorin alla pyörivä käyttöjärjestelmä voi ajaa tavallisia ohjelmia normaalisti. Virtualisoinnin suosion kasvaessa PC-suorittimiin lisättiin sitä tukevia toimintoja (Intelin VT-x marraskuussa 2005, AMD-V toukokuussa 2006 julkaistuissa suorittimissa). Joistain halvemman sarjan suorittimista nämä ominaisuudet puuttuvat. Uusien ominaisuuksien avulla virtualisointiohjelmistot pystyvät ajamaan olemassa olevia käyttöjärjestelmiä muuttamattomina. Kuvat:
Seminaarityön raportti 8(11)
Seminaarityön raportti 9(11)
Seminaarityön raportti 10(11)
Seminaarityön raportti 11(11) Lähteet: http://en.wikipedia.org/wiki/wine_is_not_an_emulator http://www.winehq.org/ http://sourceforge.net/projects/wine/ http://www.vmware.com/ http://en.wikipedia.org/wiki/vmware