Wine

Från Wikipedia
Hoppa till: navigering, sök
Wine
Wine:s logotyp, ett stiliserat vinglas
Senaste utgåva 1.4-rc2
(2012-02-02[1])
Operativsystem Multiplattform (unixliknande)
Typ Kompatibilitetslager, emulator
Licens LGPL 2.1+
Webbplats www.winehq.org

Wine är programvara som låter en användare köra program för Microsoft Windows under andra, unixliknande, operativsystem. Exempelvis kan man med hjälp av Wine köra Microsofts kontorsprogram i Linux. Wine emulerar inte hårdvaran och programmen måste alltså köras på den typ av dator (datorarkitektur) de är kompilerade för. Eftersom program för Windows i allmänhet bara stöder x86 och AMD64 (x86-64) har Wine inte heller portats till andra datortyper.

Wine erbjuder också ett programbibliotek under namnet Winelib i vilket programmerare kan kompilera Windows-applikationer för Unixliknande system, för att underlätta portning.[2]

Den första stabila utgåvan (version 1.0) av Wine släpptes den 17 juni 2008, efter 15 år av utveckling. Wine är fri programvara under GNU Lesser General Public License.

Ingen emulator[redigera | redigera wikitext]

Skärmdump på en inbyggd variant av Internet Explorer framställd för Wine som körs på Ubuntu 10.10.

Namnet Wine kommer från en rekursiv akronym; Wine Is Not an Emulator (Wine Är Inte en Emulator).[3]

En egentlig emulator emulerar själva datorhårdvaran, Wine emulerar inte processorn.[4] Wine kan köras på en ARM processor. Wine nöjer sig i allmänhet med att förbereda programmets miljö (minnesrymden) så att den till behövliga delar följer konventionerna under Windows och så att anrop till programbibliotek och operativsystem sker via Wine och Winelib. Wine räknas dock som en emulator i den meningen att den erbjuder program en miljö som ser ut att vara, "emulerar", Windows.

Till den del ett program använder kod som distribueras med programmet kan det köra under vilket operativsystem som helst, förutsatt att datorn är av rätt typ (datorarkitektur, till exempel AMD64). Ett program som Wine behövs när tillämpningsprogrammet anropar operativsystemkärnan eller programbibliotek som distribueras med operativsystemet, då programmet tar sig för stora friheter eller då programmet förväntar sig att omgivningen skall följa konventioner som inte gäller på andra operativsystem.

Emulering av hårdvara kräver ofta mycket stora datorresurser och därför är detta, att Wine inte är en emulator, väsentlig för prestandan. De programbibliotek som Wine erbjuder är inte nödvändigtvis långsammare än de som kommer med Windows (också DLL-filer från Windows kan användas under Wine); omskrivning av anropen så att de motsvarar vad som krävs under Unix-system kräver för det mesta marginella resurser. De flesta program blir ändå något långsammare under Wine, dels för att Wine-koden ännu inte är optimerad för snabbhet, dels för att programrutiner skrivna att utnyttja windows-funktioner på optimalt sätt inte nödvändigtvis är optimala i den främmande miljön. En del program kan också ha bättre prestanda under Wine än i Windows.[5] Ett benchmarktest visade till och med att Mozilla Firefox för Windows som kördes med hjälp av Wine var snabbare än Firefox:s Linux-version.[6] En oviss förklaring kan vara långsammare kod när Firefox kompileras med GCC kompilatorn.

Funktion[redigera | redigera wikitext]

Wine ljudkonfiguration.

Då man kör ett Windows-program under Wine startar man i själva verket Wine med upplysning om vilket program som skall köras. Wine skapar en Windows-lik miljö för programmet och startar en Wine-server, som bland annat sköter kommunikation mellan Windows-processer. Därefter laddas programmet och de programbibliotek det behöver. Wine-kod sköter om kopplingen mellan wines .so-bibliotek och de efterfrågade DLL-biblioteken.

Då funktionaliteten i programbibliotek eller systemanrop under Windows och Linux motsvarar varandra, är Wine-bibliotekens uppgift i första hand att skriva om anropen så att de blir korrekta under Linux. I de fall där Windows erbjuder ytterligare funktionalitet sköts denna genom extra kod, för systemanrop inom ramen för Wine-servern. Då funktionaliteten i Windows skiljer sig mycket från den i Linux implementeras den helt genom Wine-kod, detta var till exempel fallet med trådar tills trådimplementationen under Linux blev tillräckligt bra.

Wine har till stor del skrivits med hjälp av omvänd ingenjörskonst som inte kräver kunskap om inre konstruktion eller källkod från Windows.

Program kan även skrivas direkt för Wine eller portas med hjälp av Winelib. Sådana program kan vid sidan av Wine använda normala Linux-programbibliotek (.so) och Linux-systemanrop, utom vad gäller viss funktionalitet, där samspelet mellan Wine och Linux är alltför komplicerat och känsligt, såsom implementationen av trådar.

Med hjälp av Wines konfigurationsfiler kan man vid behov använda Windows' egna programbibliotek förutsatt att man har tillgång till dem, istället för motsvarande Wine-bibliotek. Normalt används Windows-bibliotek om sådana finns, utom i de fall Wine har en fullgod implementation av biblioteket ifråga eller det är känt att Windows-biblioteket inte fungerar tillsammans med Wine.

Ett eventuellt utsläpps kriterium för framtida Wine är USB-stöd och även AcceptEx stöd har implementerats för att kunna koppla up sig till Battle.net.[7]

Portabelt[redigera | redigera wikitext]

Wine är ett portabelt C-program och finns tillgängligt för GNU/Linux, Mac OS X, FreeBSD och eventuellt andra BSD-varianter, OpenSolaris och Solaris.

Olika programtyper[redigera | redigera wikitext]

Wine stöder så väl DOS-program (även om stödet för tillfället inte är särskilt bra), 16 bitars program för tidiga Windows-versioner ("NE") och program för olika 32 bitars Windows-versioner ("PE"). 64 bitars program (AMD64) stöds sedan version 1.2, utgiven 2010. I tidigare versioner var man tvungen att använda 32-bitarsvarianter av programmen. I en konfigurationsfil anges vilken version av Windows som Wine skall utge sig vara, normalt (i version 1.3) Windows XP. Man kan prova ställa in Wine på "Windows 98" eller "Windows 95" för äldre program. Fr.o.m. Wine 1.3.15 testas inte längre Windows 9x beteende.[8] Det går till exempel att installera Microsoft Internet Explorer 6.0 med hjälp av Wine.

DOS-program körs i en emulator. 16-bitars Windows-program, som använder samverkande multikörning, körs som trådar i en gemensam process. 32-bitarsprogram körs som separata Unix-processer.

Winetricks[redigera | redigera wikitext]

Winetricks är ett skript för att till exempel installera grundläggande komponenter som krävs för vissa applikationer som till exempel Adobe Photoshop. Exempel av en ungefärlig installation av Photoshop från en terminalemulator, skriv

wget http://kegel.com/wine/winetricks
sh winetricks corefonts vcrun6 msxml6 gdiplus gecko vcrun2005
wine Setup.exe

Winetricks 20110311 har ett nytt grafiskt användargränssnitt.

Crossover[redigera | redigera wikitext]

CrossOver är en kommersiell version av Wine som marknadsförs och säljs av CodeWeavers. Google anställde CodeWeavers att fixa Wine Picasa som körde tillräckligt bra ska flyttas direkt till Linux, med samma binära som på Windows. Google betalade senare för förbättringar av Wines stöd för Adobe Photoshop CS2. Wine är också en vanlig mottagare av Google's Summer of Code program.[9] CodeWeavers stöder Wine projektet.[10][11] Crossover Linux stödjer bland annat World of Warcraft och Microsoft Office 2007 utom Access, som inte stöds för tillfället.[12] Microsoft Office 2010 fungerar inte bra i dagsläget.

Källor[redigera | redigera wikitext]

  1. ^ ”Wine 1.4-rc2 Released” (på engelska). http://www.winehq.org/news/2012020201. Läst 2012-02-03. 
  2. ^ ”Winelib”. Wine HQ. http://www.winehq.org/site/winelib. Läst 29 juni 2008. 
  3. ^ ”Why do some people write WINE and not Wine?” (på en). http://wiki.winehq.org/FAQ#head-8b4fbbe473bd0d51d936bcf298f5b7f0e8d25f2e. Läst 2008-07-09. 
  4. ^ ”Non X86 Processors ARM etc..”. http://wiki.jswindle.com/index.php/Installing_Wine#Non_X86_Processors_ARM_etc... Läst 2011-03-19. 
  5. ^ ”BenchMark-0.9.5 - The Official Wine Wiki”. wiki.winehq.org. http://wiki.winehq.org/BenchMark-0.9.5. Läst 15 november 2010. 
  6. ^ ”Browser benchmarks 2: even Wine beats Linux Firefox”. tuxradar.com. http://www.tuxradar.com/content/browser-benchmarks-2-even-wine-beats-linux-firefox. Läst 15 mars 2011. 
  7. ^ ”WineReleaseCriteria - The Official Wine Wiki”. http://wiki.winehq.org/WineReleaseCriteria. Läst 28 maj 2011. 
  8. ^ ”Wine 1.3.15 Released” (på en). http://www.winehq.org/news/2011030401. Läst 2011-03-15. 
  9. ^ Dan Kegel (14 februari 2008). ”Open Source Patches: Wine”. Google. http://article.gmane.org/gmane.comp.emulators.wine.devel/56872. Läst 3 januari 2009. 
  10. ^ ”CodeWeavers: Proud Supporters of The Wine Project”. codeweavers.com. http://www.codeweavers.com/products/support_wine/. Läst 5 januari 2011. 
  11. ^ Winehq: download (15.3.2011)
  12. ^ ”Microsoft Access 2007”. 18 maj 2010. http://www.codeweavers.com/compatibility/browse/name/?app_id=3907. Läst 28 maj 2011. 

Webbkällor[redigera | redigera wikitext]

  • Wine HQ officiell webbplats (engelska)
  • Wine Application Database Lista över applikationer som har testats med Wine - med info om hur det gick samt tips för att få det att fungera. (engelska)

Se även[redigera | redigera wikitext]

  • Cygwin - mjukvara för att köra Unix-program under Windows
  • CrossOver Office - en kommersiell variant av Wine med teknisk hjälp och grafisk installation för många vanliga program. Används bland annat av Disney för att köra Photoshop under Linux.
  • Cedega - ett kommersiellt program som har sitt ursprung i Wine, men numera är helt fristående. Cedega inriktar sig främst på att köra spel som använder DirectX. Många[vem?] anser att Wine numera har lika bra eller bättre stöd för DirectX, men det kan vara värt att prova om det inte fungerar med Wine.
  • ReactOS - ett försök att implementera ett komplett operativsystem som är kompatibelt med Windows och alltså skulle kunna användas istället. Projektet delar mycket kod och flera utvecklare med Wine.
  • Dosbox - är en emulator som emulerar en IBM PC kompatibel dator som kör med MS-DOS
  • Darwine

Externa länkar[redigera | redigera wikitext]

  • Frank's Corner med information om hur Wine kan användas. (engelska)
  • PlayOnLinux är en programvara som gör att du enkelt installera och använda många spel och program avsedda att köras med Microsoft Windows. (engelska)