Wine

Wikipediasta
Siirry navigaatioon Siirry hakuun
Wine
WINE-logo.png
”Wine Internet Explorer” (Gecko-moottoria käyttävä verkkoselain) Ubuntussa
”Wine Internet Explorer” (Gecko-moottoria käyttävä verkkoselain) Ubuntussa
Kehittäjä Wine-tiimi
Kehityshistoria
Ensijulkaisu 4. heinäkuuta 1993 (27 vuotta sitten)
Vakaa versio 6.0 ()[1]
Kehitystilanne aktiivinen
Tiedot
Ohjelmistotyyppi Windows-yhteensopivuuskerros
Alusta BSD, Linux, OS X
Ohjelmointikielet C
Lisenssi LGPL
Aiheesta muualla
Kotisivu
Versiohallinta
Winen asetusikkuna winecfg.

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 (muuntamista) Unixin kaltaisille käyttöjärjestelmille.[2] Vaikka nimestä näkee joskus käytettävän muotoja WINE ja wine, projektin kehittäjät ovat ilmoittaneet virallisen muodon olevan Wine.[3]

Wine ei ole emulaattori vaan yhteensopivuuskerros, joka toteuttaa Windows API:n. Wine-projektissa on vaihtoehtoiset toteutukset Windows-ohjelmien käyttämistä DLL-kirjastoista ja prosessi joka korvaa Windows NT:n ytimen. Koska Wine ei ole emulaattori, sillä voi ajaa tavallisia x86/x86-64-arkkitehtuurille tehtyjä Windows-ohjelmia ainoastaan tietokoneessa, jossa on vastaava yhteensopiva prosessori. Wine ei myöskään ole tietoturvaan käytettävä "hiekkalaatikko".

Tekijänoikeusongelmien välttämiseksi Wine kirjoitetaan enimmäkseen mustan laatikon testausta hyväksi käyttäen.[4] Menetelmässä toteutus tehdään julkisesti saatavan dokumentaation mukaan, jonka jälkeen tehdään testitapaukset varmistamaan sen paikkansapitävyys: useissa tapauksissa MSDN:n dokumentaatio on hyvin virheellistä.[4]

Nimi Wine oli alun perin akronyymi sanoista WINdows Emulator,[5] mutta se muuttui myöhemmin rekursiiviseksi backronyymiksi Wine Is Not an Emulator.[6]

Kehitys[muokkaa | muokkaa wikitekstiä]

Wine-projekti alkoi kesäkuussa 1993 Sun Microsystemsin esittelemän Wabin inspiroimana.[7] Varhaisia kehittäjiä olivat Bob Amstad, Eric Youngdale, Alexandre Julliard ja Miguel de Icaza.[7] Alun perin se oli tarkoitettu ajamaan 16-bittisiä Windows 3.x -ohjelmia, mutta nykyään painopiste on Win32 APIssa ja 32-bittisissä Windows-ohjelmissa. 64-bittisten ohjelmien tuesta ilmoitettiin joulukuussa 2008.[8] Alexandre Julliard on ollut projektin johtaja vuodesta 1994.

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 myös FreeBSD ja Solaris ovat tuettuja.

Projekti on ollut aikaa vievää ja vaikeaa kehittäjille, ainakin keskeneräisen, puutteellisen tai väärän Win32 API:n dokumentaation takia. Vaikka useimmat Win32:n funktiot on dokumentoitu, joillekin osa-alueille kuten tiedostomuodoille ja protokollille ei ole virallisia Microsoftin määrittelyitä. Lisäksi Windows-APIssa on useita Microsoftin tekemiä ohjelmien yhteensopivuuskorjauksia, joita ei ole dokumentoitu missään.

Vasta 25. lokakuuta 2005, yli 12 vuoden kehityksen jälkeen, Winestä julkaistiin ensimmäinen varsinainen beetaversio versionumeroltaan 0.9. Tämän jälkeen uusia beetaversioita julkaistiin noin kahden viikon välein yli kahden ja puolen vuoden ajan. Versio 1.0 julkaistiin lopulta 17. kesäkuuta 2008 15 vuoden kehitystyön tuloksena.[9]

Wine 2.0 julkaistiin 24. tammikuuta 2017[10], Wine 3.0 julkaistiin 18. tammikuuta 2018[11] ja Wine 4.0 julkaistiin 22. tammikuuta 2019.[12] Versio 5.0 on julkaistu 21. tammikuuta 2020.[13]

Wine versiossa 5.0 on noin 5,7 miljoonaa lähdekoodiriviä.[14]

Käyttö[muokkaa | muokkaa wikitekstiä]

Tavallinen käyttötapa on ajaa wine-komento ja antaa sille parametrina ajettavan ohjelman nimi:[15]

wine program.exe

.. jossa program.exe on ajettava ohjelma.

Winen asetuksia voi muokata graafisella winecfg-ohjelmalla.[16] Useat ohjelmat toimivat ilman erillistä konfigurointia.[16]

Wineä voidaan käyttää säiliöissä kuten LXC-säiliöissä.[17]

Toimintaperiaate[muokkaa | muokkaa wikitekstiä]

Linuxissa Wine asennetaan yleensä jakelun paketinhallintajärjestelmällä tai kääntämällä lähdekoodista.

Winen toimintaperiaate on muuttaa Windows-ohjelmien käyttämän Windows API -rajapinnan kutsut vastaaviksi tietokoneen käyttöjärjestelmän ymmärtämiksi kutsuiksi.

"Wineserver" on Winen prosessi, joka toteuttaa useita Windowsin ytimen toimintoja kuten ikkunoinnin hallinnan, asynkronisen IO:n, prosessien ja säikeiden tilat, nimetyt putket ja niin edelleen.[18][19]

Kun ohjelma käynnistetään se yrittää lähettää käyttöjärjestelmälle tiettyjä viestejä kuten muistin varaamiseen ja ohjelman ajamiseen tarvittavia muuttujia. Koska alla oleva käyttöjärjestelmä ei ymmärrä ohjelman käyttämän Win32 API:n kutsuja on Winen tulkattava käytetyt kutsut käyttöjärjestelmän ymmärtämään muotoon. Windows-ohjelma taas ei ymmärrä käyttöjärjestelmän vastauksia joten Wine tulkkaa käyttöjärjestelmän vastaukset Windows-ohjelman ymmärtämään muotoon jolloin ohjelma pystyy toimimaan ikään kuin se ajettaisiin Windows-ympäristössä.

Vastaavalla tavalla toimiva ohjelma on OS X:n Classic-tulkki.

Direct3D-rajapinnan käyttö ohjataan Vulkan-rajapintaan WineD3D- tai vkd3d-toteutuksen kautta.[20][21][22][23] Aiempi ohjaus OpenGL-rajapintaan on myös mahdollinen.[21] Vaihtoehtoinen tapa on käyttää DXVK-kirjastoa, joka käyttää epäyhteensopivaa lisenssiä eikä siten ole mukana Winessä.[24][21]

Kehityksessä on Wayland-tuki, jolloin Windows GDI- ja OpenGL- sovelluksia voi suorittaa ilman välikerrosta muuntamassa X11:lle ja XWaylandille.[25]

Microsoftin suhtautuminen Wineen[muokkaa | muokkaa wikitekstiä]

Microsoft ei ole ilmaissut varsinaista julkilausumaa liittyen Wineen. Microsoftin päivitystyökalu estää kuitenkin Microsoft-sovellusten päivittämisen Winen kautta. Wine-kehittäjä Ivan Leo Puoti huomasi 16. helmikuuta 2005 Microsoftin alkaneen estää osien päivittämisen, jos se havaitsee päivitysten yhteydessä Wineen viittaavia asetusavaimia Windowsin rekisteristä. Puoti kertoi, että näin ”Microsoft on ensimmäistä kertaa myöntänyt Winen olemassaolon.”[26]

Windowsin aitoustarkastuskin tarkastaa, onko Wine-rekisteriavaimia olemassa. Windowsin aitoustarkastuksen usein kysytyissä kysymyksissä kerrotaan, että aitoustarkastus ei toimi Winessä, sillä Wine ei ole ”aito Windows”.[27] Huomattuaan Wine-järjestelmän olevan käytössä aitoustarkastus kertoo käyttäjälle epäaidon Windowsin käytöstä, ja estää aitoustarkastusta vaativien ohjelmien lataamisen. Joistakin ohjelmistaan kuten Internet Explorer 7:stä ja Windows Media Playerista Microsoft on poistanut aitoustarkastuksen käytöstä helpottaen täten kyseisten sovellusten käyttöä Winessä.

Microsoft antaa aitoustarkastukseen 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-tarkastus 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.

Kehittäjät[muokkaa | muokkaa wikitekstiä]

Kehitykseen tullut tukea muun muassa CodeWeaversiltä ja Valve Corporationilta, sekä muuta kehitystä Collaboralta.[28] Valve käyttää Wine-ohjelmistoa Proton-yhteensopivuusohjelmistossaan.[28] CodeWeaversillä CrossOver-tuote, joka perustuu Wineen.[29]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Wine 6.0 Released (viitattu ). Arvo on haettu Wikidatasta.
  2. Winelib Wine HQ. Viitattu 23.11.2010. (englanniksi)
  3. Why Do Some People Write WINE And Not Wine? Wine HQ. Viitattu 23.11.2010. (englanniksi)
  4. a b Legal Issues forum.winehq.org. 26.12.2009. Viitattu 24.3.2020. (englanniksi)
  5. WINE (WINdows Emulator) Faqs. Viitattu 23.11.2010. (englanniksi)
  6. WABI Available on Linux or Not Groups Google. Viitattu 23.11.2010. (englanniksi)
  7. a b Wine History Wine HQ. Viitattu 22.1.2020. (englanniksi)
  8. Maarten Lankhorst: Wine64 hello world app runs! winehq.org. 5.12.2008. Viitattu 14.1.2021. (englanniksi)
  9. Wine Release Plan Wine HQ. Viitattu 29.4.2008. (englanniksi)
  10. Wine 2.0 Released Wine HQ. 24.1.2017. Viitattu 25.1.2017. (englanniksi)
  11. Wine 3.0 Released Wine HQ. 18.1.2018. Viitattu 18.2.2018. (englanniksi)
  12. Wine 4.0 Released Wine HQ. Viitattu 21.2.2019. (englanniksi)
  13. Wine 5.0 Released Wine HQ. Viitattu 21.1.2020. (englanniksi)
  14. Wine Is Approaching Six Million Lines of Code Phoronix. 22.1.2020. Viitattu 22.1.2020. (englanniksi)
  15. 3.1 How to Install And Run Windows Programs Wine HQ. Viitattu 21.1.2020. (englanniksi)
  16. a b Configuring WINE with Winecfg Linux Config. 25.10.2016. Viitattu 21.1.2020. (englanniksi)
  17. Wine inside LXC idziorek.net. Viitattu 29.10.2020. (englanniksi) 
  18. Zebediah Figura: Kernel interface for Wine synchronization primitives lore.kernel.org. 18.1.2021. Viitattu 29.1.2021. (englanniksi) 
  19. Russinovich, Mark E. & Solomon, David A.: Windows Internals, s. 35–36. Microsoft. (englanniksi)
  20. Wine 4.0 released with Vulkan, Direct3D 12, and better HiDPI support fosslinux.com. 23.12.2019. Viitattu 31.10.2020. (englanniksi) 
  21. a b c The New Wine Vulkan Backend For DirectX 9-11 Is Coming Along Nicely linuxreviews.org. 15.7.2020. Viitattu 31.10.2020. (englanniksi)
  22. Wine Announcement winehq.org. Viitattu 31.10.2020. (englanniksi) 
  23. What's new in Wine 6.0 winehq.org. Viitattu 14.1.2021. (englanniksi)
  24. How to Enable Vulkan Rendering in Wine Games using DXVK linuxhint.com. Viitattu 31.10.2020. (englanniksi)
  25. Alexandros Frantzi: RFC Announcing Wayland driver development winehq.org. 15.12.2020. Viitattu 15.12.2020. (englanniksi) 
  26. Winen postituslista Wine HQ. Viitattu 26.4.2010. (englanniksi)
  27. Aito Microsoft-ohjelmisto Microsoft. Viitattu 26.4.2010. (englanniksi)
  28. a b Linux Gaming in 2020 (PDF) static.sched.com. Viitattu 29.10.2020. (englanniksi)
  29. Download wiki.winehq.org. Viitattu 29.10.2020. (englanniksi) 

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]