Wine
Wine | |
Senaste utgåva | 1.3.12 (2011-01-21[1]) |
---|---|
Operativsystem | Multiplattform: GNU/Linux, FreeBSD, Mac OS X, Solaris |
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 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]
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
Namnet Wine kommer från en rekursiv akronym; Wine Is Not an Emulator (Wine Är Inte en Emulator).[3]
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. 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.
En egentlig emulator emulerar själva datorhårdvaran. 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.
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. Wine kan också ha bättre prestanda än i Windows.[4]
Funktion
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 t.ex. fallet med trådar tills trådimplementationen under Linux blev tillräckligt bra. Wine använder främst 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 Windows-biblioteket inte fungerar tillsammans med Wine.
Portabelt
Wine är ett portabelt C-program och finns utvecklat för GNU/Linux, Mac OS X, BSD-varianter och OpenSolaris.
Olika programtyper
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.
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.
Crossover
CrossOver är en kommersiell version av Wine som marknadsförs och säljs av CodeWeavers. CodeWeavers stöder Wine projektet.[5] Crossover Linux stödjer World of Warcraft och Microsoft Office 2007 utom Access, som inte stöds för tillfället.
Källor
- ^ ”Wine 1.3.12 Released” (på engelska). http://www.winehq.org/news/2011012101. Läst 27 januari 2011.
- ^ ”Winelib”. Winelib. Wine HQ. http://www.winehq.org/site/winelib. Läst 29 juni 2008.
- ^ ”Why do some people write WINE and not Wine?” (på engelska). http://wiki.winehq.org/FAQ#head-8b4fbbe473bd0d51d936bcf298f5b7f0e8d25f2e. Läst 9 juli 2008.
- ^ ”BenchMark-0.9.5 - The Official Wine Wiki”. BenchMark-0.9.5 - The Official Wine Wiki. wiki.winehq.org. http://wiki.winehq.org/BenchMark-0.9.5. Läst 15 november 2010.
- ^ ”CodeWeavers: Proud Supporters of The Wine Project”. CodeWeavers: Proud Supporters of The Wine Project. codeweavers.com. http://www.codeweavers.com/products/support_wine/. Läst 5 januari 2011.
Webbkällor
- 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
- 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
- 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)