Wine

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif
Wine
Wine:s logotyp, ett stiliserat vinglas
Wine Configuration.png
Utvecklare
Senaste utgåva 1.0 / 2008-06-17 [1]
Operativsystem GNU/Linux, FreeBSD, Mac OS X, Solaris
Programkategori 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 stöder bara 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.

Innehåll

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.

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, i fall av 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.

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.

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) kommer att stödas i ett senare skede, men tills vidare måste 32-bitarsvarianter av programmen användas. I en konfigurationsfil anges vilken version av Windows som Wine skall utge sig vara.

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.

Källor

  1. ”Wine HQ - Announce” (på en). http://www.winehq.org/?announce=1.0. Läst 2008-06-17. 
  2. ”Winelib”. Wine HQ. http://www.winehq.org/site/winelib. Läst 2008-06-29. 
  3. ”Why do some people write WINE and not Wine?” (på en). http://wiki.winehq.org/FAQ#head-8b4fbbe473bd0d51d936bcf298f5b7f0e8d25f2e. Läst 2008-07-09. 

Webbkällor

(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 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.

Externa länkar

(engelska)

Personliga verktyg