Wine
| Wine | ||||
| Wine draaiend onder Ubuntu | ||||
| Ontwikkelaar | Wine team | |||
| Recentste versie | 1.2.3 (8 april 2011) | |||
| Laatste bètaversie | 1.3.36 (30 december 2011 [1]) | |||
| Besturingssysteem | Linux, BSD, Solaris en Mac | |||
| Geschreven in | C | |||
| Categorie | Compatibiliteit met Windows | |||
| Licentie | LGPL | |||
| Website | (en) Projectpagina | |||
|
||||
Wine is een opensourceprogramma om software die voor Windows geschreven is te gebruiken op andere besturingssystemen waaronder Linux en Mac OS X. Wine implementeert zowel de Win16- als Win32-API en kan dus zowel oude (16 bit-) als nieuwe (32 bit-)Windowsprogramma's draaien, maar kan Windows als besturingssysteem zelf niet uitvoeren. De naam Wine staat voor Wine Is Not an Emulator.
Inhoud |
Werking
Een programma in Windows maakt veel gebruik van standaard bibliotheken die bij Windows horen. In Wine zijn deze bibliotheken opnieuw geschreven zodat ze ongeveer hetzelfde doen. Des te meer een programma goed geschreven is en de standaardbibliotheken gebruikt, des te groter de kans dat het programma ook in Wine zal werken.
De code van een programma wordt eerst door Wine nagekeken op aanroepen van de bibliotheken. Deze aanroepen worden vertaald, zodat de bibliotheken van Wine worden aangeroepen. Vervolgens wordt de code van het programma op volle snelheid uitgevoerd. Er wordt dus geen code geëmuleerd, maar enkel de aanroepen van de bibliotheken worden vertaald.
In theorie zou een programma daarom ongeveer net zo snel moeten werken als in Microsoft Windows. In de praktijk kan het programma langzamer zijn, vanwege de vertaalslag die gemaakt wordt. Maar een programma onder Wine kan ook sneller werken, omdat de bibliotheken van Wine eenvoudiger zijn, en omdat de schijftoegang in Linux vaak sneller is.
Omdat in Linux OpenGL gebruikt kan worden, werkt een programma dat OpenGL gebruikt vaak goed in Wine. In Linux is echter geen DirectX te gebruiken. Toch kunnen spellen met DirectX in Wine werken, omdat de aanroepen naar DirectX door Wine vertaald worden naar OpenGL.
Emulator of niet?
Volgens de ontwerpers kan Wine geen emulator genoemd worden. Deze stelling veroorzaakt op internet vaak lange discussies. De ontwerpers definiëren een emulator namelijk als een virtuele machine en aangezien Wine geen virtuele machine is, is het dus geen emulator, zoals bijvoorbeeld VMWare. Bij een ruimere definitie van emulatie, zoals "het simuleren van een omgeving bovenop een bestaande omgeving", kan Wine wel een emulator worden genoemd.
Langdurig project
Het Wineproject loopt al sinds 1993. Wine is echter nog steeds maar beperkt effectief, veel programma's zijn niet onder Wine aan de gang te krijgen. Dit hoewel veel bedrijven grote investeringen in Wine gedaan hebben.
Een belangrijke reden hiervoor is dat de Windows-API erg complex is en Microsoft deze regelmatig verandert. Zo werd met de introductie van Windows 95 de bestaande 16 bit-API vervangen door een 32 bits-API. Met de introductie van Windows NT werd deze API nog eens flink uitgebreid. Bij Windows 95 werd een grafische interface DirectX geleverd. Bij de introductie van DirectX-versie 3 werd deze echter compleet vervangen door een nieuw systeem. De volgende versies waren minder radicaal, maar nog steeds werd iedere keer een flink stuk van de functionaliteit naar het verleden verwezen en vervangen door nieuwe functionaliteit. Met andere woorden, Wine loopt een beetje achter de feiten aan.
Een andere reden hiervoor is dat het Wineproject erg ambitieus is; het wil een Windows-implementatie tot stand brengen zonder afhankelijk te zijn van externe componenten. Het gevolg is dat behalve de Windows-kernel ook de bij Windows bijgeleverde bibliotheken nageprogrammeerd moeten worden. Verder wil men bijvoorbeeld dat Windows-programma's van X11-lettertypen gebruik kunnen maken en men mikt niet alleen op Linux, maar ook op andere besturingssystemen.
Na jaren ontwikkelen heeft Wine in maart 2008 aangekondigd versie 1 uit te geven. Op 17 juni 2008 is uiteindelijk versie 1.0 uitgegeven. Op 16 juli 2010 is versie 1.2 vrijgegeven. Er is na de stabiele release van 1.2 een nieuwe 1.3.x branch begonnen waarbij naar een stabiele Wine 1.4 toegewerkt wordt.
Door Wine werd OpenGL al ondersteund, maar ook DirectX van Microsoft wordt vrij goed ondersteund. In 2009 wordt er ook gewerkt aan ondersteuning voor de USB-bus. Steeds meer programma's gaan gebruikmaken van de Microsoft .NET-bibliotheken, en deze zijn nog niet eenvoudig onder Wine werkend te krijgen.
Commerciële edities
- Crossover Office is een commerciële versie van Wine, gericht op het draaien van kantoortoepassingen en dan met name Microsoft Office.
- Cedega (voorheen WineX) is een commerciële versie van Wine gericht op het draaien van spelletjes.
Beide pakketten leveren in hun doelmarkt een iets betere compatibiliteit en werken het normaal vrij ruwe, gebruiksonvriendelijke Wine af tot een verkoopbaar product.
Licentie
Aanvankelijk werd Wine onder een BSD-licentie verspreid. Tot ongenoegen van de Wine-ontwikkelaars gaven bedrijven die commercieel met Wine bezig waren hun wijzigingen niet terug aan het Wine-project. Daarom werd in maart 2002 de licentie veranderd in de LGPL-licentie, zodat het nu verplicht werd wijzigingen vrij te geven.
Zie ook
- ReactOS, een besturingssysteem dat gebruikmaakt van de kennis van het Wineproject.
Externe links
| Bronnen, noten en/of referenties |