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 Toimintaperiaate...5 Käyttötarkoituksia...5 Virtualisointiohjelmistoja...5 Lähteitä...6
Wine API Yleistä Winestä Wine on ohjelmisto, joka mahdollistaa Windows -pohjaisten ohjelmien käytön muissa käyttöjärjestelmissä. Sen toiminnallisena periaatteena on toimia yhteensopivuuskerroksena, joka kääntää käyttöjärjestelmän ja Windows -pohjaisten ohjelmien välistä kommunikaatiota. Windows -pohjaisen ohjelman lähettämät kutsut ovat muotoa Win32 API, joita esimerkiksi Linux ei ymmärrä ilman, että ohjelmakutsut käännetään sen ymmärtämään muotoon. Ensisilmäyksellä Wine saattaa vaikuttaa windowsin emulaattorilta, eli eräänlaiselta virtuaaliohjelmistolta, mutta se on todellisuudessa varsin poikkeava toimintatavaltaan. Se ei käsittele Windows -pohjaista ohjelmaa kuin sitä käsiteltäisiin Windowsissa. Se ei "kannattele" kuvitteellista käyttöjärjestelmää ohjleman ja käytetyn käyttöjärjestelmän välille, vaan kääntää suoraan kutsut ohjelmalta käyttöjärjestelmälle jne. Näin Wine syö huomattavasti vähemmän tehoja koneesta kuin emulaattorit ja virtuaalikoneet. Jo Winen nimi tulee sanoista Wine Is Not an Emulator. API (Application Programming Interface) Vaikka Wine on luotu pääasiassa Linuxin, Solariksen ja FreeBSD:n, käyttöön, sen on sanottu otetuksi osittain käyttöön myös seuraavilla alustoilla: -SPARC -OpenBSD -S/390 -Aix 5.2 -Darwin -HP/UX -MacOS X Winessä on laaja API-kirjasto, kattaen jopa n. 90% Windowsin käyttämistä kutsuista. Se on suunniteltu yhteensopivaksi 32-bittisen Win32 -koodin kanssa, ja sen tulisi toimia monien C -kielen kääntäjien kanssa. Winen lähdekoodi on pääasiassa C:tä, joten tämä on melko luonnollista. Historiaa Projektin liikkeellepano Windows -ohjelmistoja pidettiin yleisesti niin hyvinä ja houkuttelevina, että Microsoft sai Windows -käyttöjärjestelmän iskostettua valtaosaan kotitietokoneista, ja muut ohjelmistofirmat pättivät liittää Windows -ohjelmistojen tuen tuotteisiinsa. Ensimmäinen mainittava ohjelmisto oli Sunin vuonna 1993 julkaisema Wabi, jolla Windowsin ohjelmistoja kyettiin tuomaan käyttöön mm sen Solaris x86- ja Solaris 2.2 käyttöjärjestelmissä. Muut sen ajan vastaavat ohjelmat olivat vatineet DOSin ja Windowsin asentamisen koneelle, mikä teki Wabista tuotteellisen edelläkävijän. Kesäkuussa 1993 uuden Linux -käyttöjärjestelmän käyttäjät halusivat vastaavanlaisen ohjelmiston liittämistä Linuxiin, mutta koska Wabia ei voitu liittää, aloitettiin Linuxin vastaava projekti Wine. Projektin ideana oli aluksi saada Windowsin 16-bittiset ohjelmistot toimimaan Linuxissa, ja tuloksia alkoi syntyä jo alle puolessa vuodessa.
1990 -luvun kehitystä: -Solitaire toimi Linuxissa 1993 -joulukuussa 1993 Wine toimi NetBSD:ssä -John Brezak -Win32 -tuki toukokuussa 1995 -tammikuu 1996 Word ja Excel saatiin toimimaan -1997 DirectX tuki -Marcus Meissner -joulukuu 1997 winehq.com -Doug Ridgway Tuki ja kehitystyöhön osallistuminen 1998 Corel päätti tehdä ohjelmistoistaan täysin Linux -tuettuja. Se alkoi ensimmäisenä rahoittaa Winen kehitystä. Sen yhteistyö Winen parissa päättyi vuonna 2001, mutta sen Wineä kehittämään palkkaama CodeWeavers jatkoi Winen työstämistä. CodeWeaversin versiossa Wineen lisättiin graafisen käsittelyn työkaluja, ja helppokäyttöiset asetukset. Yhtiön julkaisema CrossOver Plugin mahdollisti Netscapen lisäosien käytön Linuxissa, ja vuonna 2002 julkaistiin CrossOver Office, jossa oli toimisto-ohjelmien tuki. PC -pelejä oli totuttu luomaan Microsoftin DirectX -järjestelmällä, mikä teki pelien valmistamisen Linuxille ja muille alustoille hankalaksi. Gavriel State loi Winestä pelaajille suunnitellun version, jolla hän aloitti myös Marcus Meissnerin vuonna 1997 luoman, rajoitetusti toimineen DirectX -tuen jatkokehityksen. Lokakuussa 2001 julkaistiin WineX 1.0. Vuonna 2002 Winen kehittämisessä alettiin käyttää uudenlaista lisenssiä, joka sopi yleisesti Winen kehittäjille. Siispä ohjelmiston kehitys kiihtyi roimasti, ja vuosittain Wineen lisättiin erilaisia ominaisuuksia. Vuonna 2005 julkaistu Wine 0.9.0 sanottiin olevan Betatason ohjelmisto, ja vuonna 2008 ilmestyi Wine 1.0. Kasvaneesta kehityksestään huolimatta, ja vaikka Wine tukee jo suurinta osaa Windows -ohjelmistoista käytettävän Linuxissa, sen laajentaminen jatkunee vielä pitkään vuodesta toiseen. Uusin vakaa Winen versio on 1.0.1, kehityksen alla on versio 1.1.33. Winen kehitystyötä on johtanut vuodesta 1994 lähtien Alexandre Julliard. Etuja ja haittoja Wine on ilmainen ohjelma, joka on hyödyllinen kaikille, jotka haluavat käyttää Windowsille suunniteltuja ohjelmia. Koska Wine on toistaiseksi jatkuvassa kehitystilassa, ja päivityksiä on luvattu olevan saatavilla puolen kuukauden välein, voi Winen käyttäminen ja päivittäminen vaikuttaa turhauttavalta, mutta se on kirkkaasti vaivansa arvoista. Koska kyseessä ei ole raskas virtualisointiohjelmisto tai emulaattori, Winen käyttö on vaivatonta, ja kuluttaa huomattavasti vähemmän tietokoneen muistia ja prosessointiaikaa. Toisaalta koska Wine kykenee ajamaan Windowsin binäärikoodia, on mahdollista, että Windowsille tyypilliset virukset voivat levitä toiseen käyttöjärjestelmään. Tämän vuoksi Wineä ei tulisi tietokoneen turvallisuuden vuoksi käyttää käyttäjätileillä, joilla on admin- tai muita korkeimpia oikeuksia.
Virtualisointiohjelmistot Toimintaperiaate Toisin kuin Wine, tyypillinen virtualisointiohjelmisto on eräänlainen simulaattori jostain käyttöjärjestelmästä tai laitteesta, ja sitä voi käyttää myös yksittäisen ohjelman suorittamiseen. Virtualisointiohjelmisto toimii koneen normaalin käyttöjärjestelmän päällä, ja sekä normaalia- että, virtualisoitua käyttöjärjestelmää voidaan käyttää päällekkäin, aivan kuin virtualisoitu käyttöjärjestelmä olisi normaali suoritettava ohjelma. Normaalisti virtualisoitu käyttöjärjestelmä lukee tietokoneen kansioita ja tiedostoja samalla tavalla kuin koneen oma käyttöjärjestelmä, mutta siinä on erillisiä toimintoja ja säätöjä, jotka eivät vaikuta tietokoneen oman käyttöjärjestelmän asetuksiin. Käyttötarkoituksia Virtualisointiohjelmistoja käytetään laajalti esimerkiksi testitarkoituksissa. Virtuaalikoneella suoritetut ohjelmat eivät vaikuta tietokoneeseen, ja sellaiset toiminnot, jotka normaalisti johtaisivat järjestelmän kaatumiseen, eivät vaikuta vahingollisesti tietokoneen pääkäyttöjärjestelmään tai hardwareen. Toinen yleinen käyttötarkoitus virtualisointiohjelmistoille onkin palvelinten ylläpito, sillä virtuaalikoneita voi tehdä useita, ja niiden asetuksia voi muuntaa ja testata rauhassa ennen muutoksien toimeenpanemista virallisella palvelin-virtuaalilaitteella. Virtualisointiohjelmat ovatkin erityisen hyödyllisiä jos yhden käyttöjärjestelmän päällä haluaa käyttää tai testata toista käyttöjärjestelmää. Esimerkiksi Linuxilla voi käyttää Windowsia virtuaalisointiohjelmiston kautta. Yksittäistä prosessia pyörittävää virtuaalilaitetta käytetään mm. Ohjelmointisovelluksissa, tarjoamaan ohjelmointiympäristön, joka on riippumaton käyttöjärjestelmästä, jolla ohjelmointisovellusta käytetään. Samalla se mahdollistaa luodun ohjelman käytön missä tahansa käyttöjärjestelmässä. Esimerkiksi Java -ohjelmointikieltä koodatessa käytetään usein Java -virtuaalilaitetta (JVM -Java virtual machine). Virtualisointiohjelmistoja Käyttöjärjestelmää pyörittäviä: -VMWare Prosessia Pyörittäviä -Azul VM -Microsoft Java virtual Machine -.NET Framework
Lähteitä: -http://wiki.winehq.org -http://fi.wikipedia.org hakusanoilla Wine ja Wine API -http://en.wikipedia.org hakusanoilla emulator, virtual machine ja Wine -Forsström Tuomas, Virtualisoidun palvelinympäristön asennus ja käyttöönotto Laurean Neon-laboratoriossa, opinnäytetyö 2009