Wine

Fra Wikipedia, den frie encyklopædi
Gå til: navigation, søg
Wine
WINE-logo.png
Wineie on ubuntu.png
Wine Internet Explorer med forsiden af engelsk Wikipedia, kørende på Ubuntu 10.10
Original skaber(e) Alexandre Julliard
Udvikler(e) WineHQ
Udgivet 4. juli 1993
Stabil version 1.4.1 (15. juni 2012)
Nyeste version 1.5.20 (21. december 2012)
Skrevet i C
Operativsystem Unix-systemer
Platform Platformsuafhængighed
Tilgængelig på Engelsk
Type Kompatibilitetslag
Licens GNU LGPL v2.1+
Hjemmeside http://www.winehq.org

Wine er et frit tilgængeligt program der tillader programmer, skrevet til at køre på Microsoft Windows, at køre på Unix-lignende systemer. Wine indeholder endvidere et softwarebibliotek kaldet Winelib, som udviklere kan anvende til at lave Windows-programmer, som skal overføres til Linux.

Wine er ikke en emulator, men et kompatibilitetslag, der har alternative implementeringer af dynamic link libraries (DLL-filer), som Windows kalder, når de køres. De skal fungere som en substitut til Windows NT kernelen. Udviklingen af Wine er sket gennem Black-box testing for at undgå copyright-spørgsmål.

Oprindeligt betød Wine WINdows Emulator[1], men det skiftede til betegnelsen Wine Is Not an Emulator. Nu og da kaldes programmet WINE og wine, men udviklerne har besluttet at anvende betegnelsen Wine.

En undersøgelse gennemført af desktoplinux.com blandt 38.500 Linux-brugere viste, at 31.5% af respondenterne brugte Wine til at køre Windows-programmer[2]. Det var betydeligt flere end dem der kørte x86 virtualiseringsprogrammer samt dem, der slet ikke kørte Windowsprogrammer[3].

Historie[redigér | redigér wikikode]

Bob Amstadt (den oprindelige projektleder) og Eric Youndale startede Wine projektet i 1993 som en måde, hvorpå Windowsprogrammer kunne afvikles på Linux. Programmet var inspireret af to Sun Microsystems programmer, Wabi for Solaris operativsystemet, og Public Windows Initiative[4]. Wine var oprindeligt målrettet Windows 3.x, men siden 2010 fokuserer det på 32-bit og 64-bit programmer. Projektet opstod oprindeligt på Usenet i comp.os.linux i 1993. Siden 1994 har Alexandre Julliard ledet projektet.

Projektet er yderst tidskrævende og vanskeligt for udviklere, eftersom dokumentationen til Windows APIen ikke er komplet. Microsoft har dokumenteret langt de fleste Win32 funktioner, men områder så som filformater og protokoller har ingen officiel Microsoft specifikation. Microsoft Windows indeholder også udokumenterede funktioner og obskure fejl, som Wine skal duplikere præcist for at få programmer til at fungere ordentligt. Som konsekvens har Wine-holdet gennemført reverse engineering[5] for at få dette til at virke. En anden teknik som er ved at brede sig i Wine-miljøet, er analyser af åben software projekters koder.

Wine projektet blev oprindeligt udgivet under en MIT licens ligesom X Window System, men grundet stigende bekymringer om private projekter baseret på Wine der ikke gav deres viden tilbage til miljøet, blev licensen i 2002 udskiftet med en LGPL licens[6][7].

Wine blev officielt udgivet som en betaversion i 2005. Version 1.0 blev udgivet i 2008, 15 år efter udviklingen startede. Version 1.2 blev udgivet den 16 juli, 2010. Udviklingsversioner udgives cirka hver anden uge.

Firmasponsorart[redigér | redigér wikikode]

Wines hovedsponsor er CodeWeavers, der har ansat Julliard og mange andre af Wines udviklere til at arbejde på Wine og CrossOver, der er CodeWeavers supporterede version af Wine. Crossover inkluderer nogle applikationsspecifikke tweaks, som ikke anses for at være i overenstemmelse med WineHQ versionen såvel som nogle ejendomsretligt baserede komponenter[8].

Corel havde en interesse i projektet i det det ønskede at porte dets kontorprogram WordPerfect Office til Linux og særligt Corel Linux. Senere opgav Corel alle sine Linux projekter efter Microsoft investeringer i Corel. Dermed stoppede Corel også sit engagement i Wine[9].

Andre firmasponsorer inkluderer Google, der hyrede CodeWeavers til at porte deres Picasa program direkte til Windows ved at bruge den samme binære kode som på Windows. Google betalte senere for en forøget understøttelse af Adobe Photoshop CS2. Wine modtager også bidrag fra Googles Summer of Code program[10][11].

Arkitektur[redigér | redigér wikikode]

Wine implementerer Windows APIen i sit user space i stedet for som et kernel modul. De opgaver som Windows' kernel normalt tager sig af, håndteres i stedet for af en daemon kaldet wineserver. Wineserveren implementerer basal Windows funktionalitet så vel som integration med X Window System, der håndterer langt de fleste Unix operativsystemers grafik. En central opgave er oversættelse af signaler til Windows undtagelser.

Selvom Wine implementerer nogle aspekter af Windows kernelen, er det ikke muligt at anvende oprindelige Windows drivere grundet Wines underlæggende arkitektur. Dette forhindre at nogle programmer fungere.

Wine er primært udviklet for Linux, men kan også køre på Mac OS X, FreeBSD og Solaris. Wine er også tilgængelig for brugere af OpenBSD[12] og NetBSD gennem OpenBSD og Net BSD pkgsrc. Siden 2010, har Wine også fungere på ARM platformen som Winelib, der tillader brugere at kompilere Windows kode på Linux. Nogle versioner af Wines DLL'er er også tilgængelig for Windows, men Wine kan stadig ikke afvikles på Windows.

Funktionalitet[redigér | redigér wikikode]

Fra 2011 kører Wine programmer med god stabilitet og andre med mindre problemer. Udviklerne af Direct3D delene til Wine har fortsat med at udvikle egenskaber så som pixel shaders i forsøg på at øge undestøttelsen af spil. Wine kan også køre oprindelige DLL'er direkte, hvilket også er med til at øge funktionaliteten. Problemet opstår når der er krav om en Windows licens. Her er det nødvendigt at programmet selv forsyner Wine med de nødvendige DLL'er.

Winecfg

winecfg er et grafisk konfigurationsværktøj, de er inkluderet i Wine. Winecfg gør det muligt at konfigurere Wine hurtigere end gennem registrene. Dette kan dog gøres med en register editor, der minder om Windows' regedit. Wine tillader også egen åben source implementeringer af andre Windowsprogrammer så som notepad, wordpad, control, iexplorer og explorer.

Bagudkompatibilitet[redigér | redigér wikikode]

Wine sikrer god kompatiblitet med tidligere programmer, og dækker dermed stadig Windows 3.1. Wine kan imitere Windows versioner tilbage til version 2.0. Denne bagudkompatbilitet overgår den, som nyere versioner af Windows har. Det er dermed muligt for Wine at køre 16-bit Windows programmer på et 64 bit system, som bruger en x86-64 eller 64-bit CPU.

AppDB[redigér | redigér wikikode]

Wine Application Database eller AppDB inderholder information om programmers kompatiblitet med Wine. Her kan brugere bidrage med oplysninger om et givent programs evne til at køre på en Unix platform via Wine. Dette sker gennem et rating system, der skal give brugeren en ide om det pågældende programs chance for succesfuld afvikling. Programmer, der får kategorien "garbage" kan ikke anvendes, hvor programmer, der har store problemer bliver kategoriseret som bronze software. Sølv software er software med små problemer mens guld og platinium software, er software som kører (stort set) uden fejl.

Når en bruger indsender test data, skal programmets navn, version og licens beskrives såvel som hvad virker, hvad virker ikke og hvad der ikke var testet. Endvidere skal brugeren specificerer Wine version såvel som hvilken type operativsystem, der er anvendt til testen. Derudover kan brugeren angive yderligere kommentare, der typisk omhandler små fejl eller tweaks, der er krævet for at få programmet til at virke. Steams version af Civilization 3 kategoriseres som guld-software. Det kører uden væsentlige problemer, men der er små problemer med musikken. Derudover skal spillet ikke blot installeres, der skal også omdøbes nogle filer for at få det til at virke[13].

Blizzards World of Warcraft er rangeret som platinium software og fungerer uden problemer. Endvidere anslås latency til at være bedre end på Windows. FPS eller frames per sekund, er det samme. Imidlertid er der nogle krav til at få det til at virke så som en NTFS partition samt en særlig mounting af partionen[14]. I skrivende stund indeholder AppDB mere end 16500 programmer af forskellig kvalitet.

Sikkerhed[redigér | redigér wikikode]

Idet Wine kan køre binær Windows kode, kan blandt andet malware dermed trænge ind i Unix-systemet. Disse er dog begrænset til Unix-brugerens rettigheder. Det vil sige, at selve Unix-kernen typisk er beskyttet, eftersom adgang til den kræver, at man er logget på eller giver Wine super-bruger rettigheder. Dette frarådes.

Wine og Unix[redigér | redigér wikikode]

Netop fordi Wine eksisterer, spekuleres det i, at producenter af programmer hellere vil lave programmer der passer til Wine, i stedet for at lave dem til Unix. Dette er dog snarere spekulation end bevist. Wine forsvarer sig med at sige, at Wine kan løsne Microsofts greb om brugeren ved at gøre det muligt for brugere at anvende enkelte Windows programmer på Unix[15].

Microsoft og Wine[redigér | redigér wikikode]

Microsoft kommenterer generelt ikke på Wine, men Microsoft Update blokerer opdateringer til Microsoft programmer, der kører på Wine. Dermed har Microsoft indirekte sagt, at de ikke acceptere at deres programmer eksekveres på andre platforme end deres egne. Dermed siger de også, at de anerkender eksistensen af Wine[16].

Noter[redigér | redigér wikikode]

  1. WINE FAQ Old meaning of the name even used until 1997
  2. "Desktop Linux Market survey". 21 August 2007.
  3. Vaughan-Nichols, Steven J. (22 August 2007). "Running Windows applications on Linux". 2007 Desktop Linux Survey results. DesktopLinux.
  4. Det var et forsøg på at få Windows API'en fuldt ud tilgængelig som en ISO standard. Dette blev dog opgivet efter pres fra Microsft i 1996
  5. En måde hvorpå en ingeniør tager et færdigt projekt og søger at skille det ad og bruge det til løsninger til sit eget produkt.
  6. White, Jeremy (6 February 2002). "Wine license change". Retrieved 27 April 2010.
  7. Alexandre Julliard (18 February 2002). "License change vote results". Retrieved 27 April 2010.
  8. White, Jeremy (27 January 2011). "Announcing CrossOver 10.0 and CrossOver Games 10.0, The Impersonator". Codeweavers.com. Retrieved 28 January 2011
  9. Vaughan-Nichols, Steven J. (25 February 2002). "That's All Folks: Corel Leaves Open Source Behind". Linux.com. Retrieved 3 January 2009
  10. Kegel, Dan (14 February 2008). "Google's support for Wine in 2007". wine-devel mailing list. Retrieved 3 January 2009
  11. "Open Source Patches: Wine". Google. Retrieved 7 September 2008
  12. "OpenBSD Ports: emulators/wine". Openports.se. Retrieved 27 April 2010.
  13. WineHQ AppDB, Civilization 3, Steam udgave, 31. maj, 2011.
  14. WineHQ AppDB, World of Warcraft, version 4.1.x, 8. juni, 2011
  15. Bernhard Rosenkraenzer. "Debunking Wine Myths"
  16. Puoti, Ivan Leo (18 February 2005). "Microsoft genuine downloads looking for Wine". wine-users mailing list. Retrieved 23 January 2006.