Wine

Wine er et program som lar en x86 PC som kjører et UNIX-liknende operativsystem og vindussystemet X kjøre programmer som opprinnelig ble utviklet for Windows. Wine kommer fra det rekursive akronymet Wine Is Not an Emulator. Navnet kan forekomme i forskjellige former som WINE og wine, men prosjektutviklerne har blitt enige om å standardisere formen Wine. Wine kommer for tiden under en LGPL-lisens, som betyr at Wine er fri programvare og hvem som helst kan bidra med kildekode og benytte programmet. Wine er også gratis. Alternativt kan de som ønsker å portere en Windows-applikasjon til et Unix-liknende operativsystem kompilere programmet mot Winelib.

Historie 
Wine ble startet av Bob Amstadt og Eric Youngdale i 1993 etter diskusjoner på Usenet i comp.os.linux. I begynnelsen søkte det å støtte 16-bit Windows 3.x-applikasjoner, men i dag er fokuset på 32-bits applikasjoner. Prosjektet har blitt ledet av Alexandre Julliard siden 1994.

Utviklerne skriver Wine hovedsakelig for Linux, men Mac OS X-, FreeBSD- og Solaris-porteringene er godt oppdatert.

Prosjektet har vist seg å være tidkrevende og vanskelig for utviklerne, delvis på grunn av ufullstendig og feil dokumentasjon av Windows API. Selv om Microsoft har dokumentert de fleste Win32-funksjonene, er noen områder, slik som filformater og protokoller, ikke offisielt dokumentert i det hele tatt. Det er også udokumenterte kernelnivå-funksjoner og obskure feilkodinger som Wine må duplikere nøyaktig for å la noen programmer fungere skikkelig. Det har ført til at det har vært nødvendig å kunne reverse engineere mange funksjoner og filformater.

Selskapet Corel assisterte prosjektet en stund, mest ved å ansette Julliard for å jobbe med Wine. Corel hadde interesse i å få WordPerfect, Corels kontorpakke til å kjøre på Linux. Men etter at Microsoft gjorde store investeringer i Corel, droppet Corel alle Linux-relaterte prosjekter og Wine-innsatsen stoppet. CodeWeavers har i dag ansatt Julliard og mange andre Wine-utviklere for å jobbe med Wine og CrossOver, CodeWeavers støttede versjon av Wine som også benytter noe ekstra proprietær kode.

Wine-prosjektet ble opprinnelig utgitt under samme MIT-lisens som X vindusystemet, men på grunn av bekymringer om at proprietære versjoner av Wine ikke skulle bidra tilbake med kode, blir Wine fra og med mars 2002 utgitt under LGPL.

Hvorfor er Wine nødvendig? 
Operativsystemet Windows, for personlige datamaskiner, har en meget høy markedsandel i mange land og generelt verden over. Et tilsvarende stort antall profesjonelle og private brukere er således henvist til – eller velger selv – å bruke programmer som er utviklet for denne plattformen. Imidlertid er det ikke alle som ønsker eller har anledning til å benytte Windows. I tillegg er dette operativsystemet på grunn av sin utbredelse mest utsatt for angrep fra datavirus og trojanske hester. Ved siden av at indviduelle brukere beskytter seg ved bruk av alternative operativsystemer (og eventuell bruk av Windows-emuleringsprogramvare), kan dette også bidra til å hemme spredning av virus i større omfang. En del sikkerhetsanalytikere i USA regner i dag virustrusselen som en fare for nasjonal sikkerhet.

Funksjonalitet 
I dag kjører Wine en del programvare stabilt og de fleste programmer med mindre feil. De fleste opprinnelige Windows DLL-filene som er nødvendige for å kjøre 32-bit Windows binærefiler, har kompatible erstatninger i Wine.

Utviklerne av Direct3D-delene av Wine har fortsatt med å implementere nye egenskaper, som pikselskyggeleggere for å øke spillstøtten.

Wine kan også benytte originale Windows DLL-filer, og dermed øke funksjonaliteten, men da kreves en Windowslisens.

Verktøy for Wine 

winecfg er et GUI-basert konfigurasjonsverktøy for Wine. Winecfg gjør det lettere å konfigurere Wine ved at det blir unødvendig å redigere registeret direkte.

WineTools er et GUI-basert installasjonsprogram for omtrent 90 Windowsprogrammer som kan benytte Wine. Programmet er i stand til å håndtere Internet Explorer 6, Photoshop 7.0, Illustrator 9.0, og mange andre programmer.

Wine-Doors er et program-håndteringsverktøy for GNOME, som gir Wine nye funksjoner. Wine-Doors er et alternativ til WineTools som søker å forbedre WineTools egenskaper og utvide den opprinnelige idéen med et mer moderne design.

WineBot er et program-håndteringsverktøy som skal fungere tilsvarende et Linux-pakkesystem som apt/dpkg/rpm. Prosjektet søker datakompatibilitet med Wine-Doors i tillegg til en plattform for å spore hacks nødvendig for å installere forskjellige programmer. Det søker også å tilby et rammeverk for automatisert regresjonstesting for selve Wine-prosjektet.

WineXS er et program som tilbyr en enkel GUI for ett-klikks tilgang til Wine-registeret, winecfg og en rekke andre tjenester. Det har en installasjonsopsjon som skal spare brukeren fra å måtte huske hvor hvert enkelt program er.

Andre versjoner av Wine 

Kjernen av Wine-utviklingen tar sikte på en korrekt implementasjon av Windows API som en helhet og har noen ganger ligget etter i noen områder hva gjelder kompatibilitet for visse programmer. Direct3D ble for eksempel ikke implementert før i 1998, men nyere utgaver har en stadig økende komplett implementasjon.

CodeWeavers markedsfører CrossOver spesifikt med å kunne kjøre Microsoft Office og andre større Windows-applikasjoner, inkludert en del spill.  10. januar 2007 utga CodeWeavers en ny versjon kalt Crossover Mac for Intel-baserte Apple Macintosh-maskiner.

TransGaming Technologies utvikler det proprietære programmet Cedega, tidligere kjent som WineX. Cedega er en fork av den MIT-lisensierte versjonen av Wine fra 2002. Transgaming optimaliserer Cedega for å kjøre Windows PC-spill. TransGaming fører en abonnementsbasert forretningsmodell.

Transgaming har også utgitt Cider, et Wine-bibliotek for Intel-Mac. Istedenfor å være et sluttbrukerprodukt, er Cider (som Winelib) en wrapper, som lar utviklere tilpasse sine programmer til å kjøre på Intel Macs uten noen endringer i kildekoden.

Andre prosjekter som benytter kildekode fra Wine er blant andre:

 ReactOS, et prosjekt for å skrive et komplett Windows XP-kompatibelt operativsystem ned til enhetsdriver-nivå.
 Darwine, en port av Wine-bibliotekene til Darwin og Mac OS X. Darwine søkte opprinnelig å kompilere kildekode skrevet for Windows til Mach-O binærfiler. Med innføringen av Apple-Intel-arkitekturen begynte  Darwine å kjøre Win32 binærefiler på x86 og har nærmet seg versjonsparitet med Wine. Darwine-prosjektet fortsetter også å jobbe med kompatibilitet med PowerPC ved å kombinere Wine med QEMUs x86-emulator.
 Odin er et prosjekt for å kjøre Win32s binærfiler på OS/2 eller for å konvertere dem til et OS/2-format.
 E/OS, et prosjekt som forsøker å la et hvilket som helst program utviklet for et hvilket som helst operativsystem kjøre uten å faktisk måtte installere noe annet operativsystem.
 Rewind, en avdanket MIT-lisensiert avstikker fra den siste MIT-lisensierte versjonen av Wine.

Microsoft og Wine 
Microsoft har generelt sett ikke uttalt seg offentlig om Wine. Allikevel vil Microsoft Update blokkere oppdateringer til Microsoft-programmer som kjører i Wine-baserte miljøer. 16. februar 2005 oppdaget Ivan Leo Puoti at Microsoft hadde begynt å sjekke Windowsregisteret for Wines konfigurasjonsnøkkel og blokkere Windows Update for alle komponenter. Puoti skrev (oversatt), «... selv om dette er bare et innledende forsøk, ser det ut til at de forsøker å diskriminere Wine-brukere. Selv om dette kan være akseptabelt for operativsystemkomponenter/-oppdateringer, er det sannsynligvis et brudd på konkurranselovgivning for alle andre nedlastinger. Det er også den første gangen Microsoft har anerkjent eksistensen av Wine.»

Windows Genuine Advantage (WGA) leter også etter Wines registernøkler, og i WGAs ofte stilte spørsmål heter det at WGA, designmessig, ikke vil kjøre under Wine, siden Wine ikke representerer «genuin Windows», som beskrevet i WGAs FAQ (oversatt): «Når WGA-valideringen oppdager at systemet kjører WINE, vil det gjøre brukere oppmerksom på at de ikke bruker en genuin versjon av Windows, og det vil ikke tillate genuine Windowsnedlastinger til systemet». Ikke desto mindre har det sirkulert noen rapporter om at WGA-systemet har fungert i Wine. I  WGAs FAQ heter det imidlertid også at (oversatt): «Det er viktig å bemerke at Wine-brukere, og andre brukere av ikke-genuin Windows, kan fortsette å laste ned oppdateringer til de fleste Microsoftapplikasjoner fra Microsofts programspesifikke sider, slik som Office Update.»

Internet Explorer sjekker under installasjonen for WGA, slik at brukere ikke kan installere det på Linux-systemer som bruker Wine uten å modifisere Internet Explorers installasjonsprogram eller selve Wine.

Wine og spill

DirectX 
I 2007 var DirectX 10-støtte i Wine under planlegning. DirectX 9.0c er støttet, og det samme gjelder en del funksjonalitet i senere versjoner.

OpenGL 
Spill som baserer seg på OpenGL for å vise grafikken ryktes å kjøre lettere i Wine enn DirectX-baserte spill. Dette kan ha noe å gjøre med at OpenGL er en åpen standard og har opprinnelig støtte i Linux, mens DirectX er en proprietær standard som må implementeres eller oversettes til OpenGL. Windows implementasjon av OpenGL WGL er allikevel ikke helt lik de Linux har (GLX), og det kreves litt arbeid å oversette WGL-funksjoner til GLX-funksjoner.

Proton 
Valves spill- og programplattform Steam introduserte i august 2018 en teknologi ved navn Proton som gjør det mulig å bruke de fleste og applikasjoner fra plattformen på Linux.

Se også 
 Crossover
 Cedega
 ReactOS

Referanser

Eksterne lenker 
 

Linux-programmer
Fri programvare
Kompatibilitetslag
Grensesnitt for programvare