Hoppa till innehållet

Wine: Skillnad mellan sidversioner

Från Wikipedia
Innehåll som raderades Innehåll som lades till
Ulf Abrahamsson (Diskussion | Bidrag)
m språkfix
Ulf Abrahamsson (Diskussion | Bidrag)
→‎Ingen emulator: +förvirrandemall
Rad 20: Rad 20:


==Ingen emulator==
==Ingen emulator==
{{Förvirrande}}
Tekniskt fungerar Wine inte som en emulator (utom för mycket gamla program, som kräver mer direkt kontakt med den underliggande apparaturen än Linux och moderna Windows-versioner tillåter), även om den ger Windows-program en miljö som verkar som, "emulerar", Windows. Genom avsaknaden av emulering är program inte nödvändigtvis långsammare då de körs under Wine än då de körs under Windows.
Tekniskt fungerar Wine inte som en emulator (utom för mycket gamla program, som kräver mer direkt kontakt med den underliggande apparaturen än Linux och moderna Windows-versioner tillåter), även om den ger Windows-program en miljö som verkar som, "emulerar", Windows. Genom avsaknaden av emulering är program inte nödvändigtvis långsammare då de körs under Wine än då de körs under Windows.



Versionen från 20 augusti 2008 kl. 23.53

Wine
Wine:s logotyp, ett stiliserat vinglas
Senaste utgåva1.0
(2008-06-17 [1])
OperativsystemGNU/Linux, FreeBSD, Mac OS X, Solaris
TypEmulator
LicensLGPL 2.1
Webbplatswww.winehq.org

Wine är en mjukvara med syfte att kunna köra program som skrivits för Microsoft Windowsunixliknande operativsystem med x86-arkitektur. 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]

Namnet Wine kommer från en rekursiv akronym; Wine Is Not an Emulator (Wine Är Inte en Emulator). Även om namnet ibland skrivs som "WINE" och "wine" har projektets utvecklare kommit överens om att standardisera stavningen till formen "Wine".[3]

Utvecklarna bakom Wine släppte version 1.0, efter 15 år av utveckling, den 17 juni 2008. Då Wine är släppts under GNU Lesser General Public License (LGPL) är programmet fri mjukvara.

Ingen emulator

Tekniskt fungerar Wine inte som en emulator (utom för mycket gamla program, som kräver mer direkt kontakt med den underliggande apparaturen än Linux och moderna Windows-versioner tillåter), även om den ger Windows-program en miljö som verkar som, "emulerar", Windows. Genom avsaknaden av emulering är program inte nödvändigtvis långsammare då de körs under Wine än då de körs under Windows.

Programkod som inte innehåller systemanrop eller anrop till externa programbibliotek körs nära nog exakt lika under Wine som under Windows (undantag gäller t.ex. minnesadministration och tidsdelning med orelaterade processer), kod som innehåller anrop kör annan kod under Wine, men i de fall funktionaliteten kan implementeras effektivt under Linux behöver inte heller den vara långsammare. Tills vidare är dock Wine-koden inte optimerad för snabbhet, vilket kan synas i programmens prestanda.

Eftersom Wine inte är en emulator så stöds inte program kompilerade för andra arkitekturer än den på vilken Wine körs. Då den mesta Windows-programvaran finns tillgänglig endast för x86 har inga större ansträngningar gjorts för att få Wine att fungera på andra arkitekturer. AMD64 kommer att stödas så småningom.

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 skrivas direkt för Wine eller portas med hjälp av Winelib. Sådana program kan även använda normala Linux-programbibliotek (.so) och Linus-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 bitars varianter av programmen användas. I en konfigurationsfil anges vilken version av Windows Wine skall uppge 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 bitars program körs som separata Unix-processer.

Källor

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

  • 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