Wine: Windows voor iedereen



Vergelijkbare documenten
Programmeren in C ++ met wxwidgets les 5

Open Source Software. Bart van Dijk

LINUX ZORIN. een alternatief voor MS Windows

UBC op Microsoft Windows 64-bits

Het besturingssysteem of operating system, vaak afgekort tot OS is verantwoordelijk voor de communicatie van de software met de hardware.

Beschrijving toolset Netwerk/Protocol/Applicatie test Datum 11 januari 2012 Auteur Louis de Wolff Versie 1.0

Voordat er optimaal gebruik gemaakt kan worden gemaakt van Magister 5 via het web, kan deze FAQ mogelijk van pas komen.

FAQ Aura Client/Server

Van dvd naar webserver. Marcel Nijenhof 18 Juli

Applications & Clients

Les 11: systeemarchitectuur virtuele machines

INSTRUCT Samenvatting Basis Computer Essentials, Theorie 2014, H3

De handboek van Desktop Sharing. Brad Hards Vertaler/Nalezer: Freek de Kruijf

TALIS. Basis systeemeisen. Versie 3.4 Approved CREATED WITH

Gratis software op het Internet. Karel Nijs 2009/03

De computer, software

Windows XP Migratie opties. Bart van Dijk

Foxit Phantom PDF Suite

TALIS. Systeemeisen. Versie 1 CREATED WITH

TALIS. Basis systeemeisen. Versie 3 Approved CREATED WITH

Linux. Linux lezing 13 april 2005 Marcel Nijenhof Note: De slechste vragen zijn niet gestelde vragen

Applications & Clients

Software is in veel manieren te indelen,meest bekend op grond van :

TALIS. Systeemeisen Basis. Versie 3.0 Approved CREATED WITH

Tinus Plotseling MySQL

Onderzoek Migratie Windows NT voor Wegontwerpafdelingen in Rijkswaterstaat

De handboek van Desktop Sharing. Brad Hards Vertaler/Nalezer: Freek de Kruijf

OpenChange. Jelmer Vernooij. LinuxWorld 2009, Utrecht 4 november OpenChange. MAPI MAPI/RPC OpenChange Huidige status Toekomst.

Analyse Programmeertalen

Software hoofdstuk Wat is de functie van een besturingssysteem? 2. Welke hoofdtaken heeft het besturingssysteem?

1 Client/Server. 2 Geschiedenis. 3 Toekomst

Indoor Navigation System

Zonder kosten van Windows 7 naar windows 10. Handleiding van Helpmij.nl. Auteur: leofact

SYSTEEMVEREISTEN TRACK VERZUIM 4

Ontwikkelingen in SMB/CIFS

Gebruik Windows Server 2008 neemt toe

Gebruikershandleiding

Hoofdstuk 2. - is verantwoordelijk voor de communicatie van de software met de hardware.

Cloud Computing: Met HPC in de wolken Ron Trompert

Organisatie. Gestart in 2009 Open Source Webdevelopment Grafische achtergrond Servicegericht

TALIS. Systeemeisen. Versie 2.0 CREATED WITH

MA!N Rapportages en Analyses

Waarmaken van Leibniz s droom

Windows Basis - Herman Van den Borre 1

Installatiehandleiding. ixperion Word Import. voor Windows 2008 R2 64bit. Smartsite ixperion WordImport Implementatie. Copyright

ViSoft Premium. Nieuw in Update NIEUWE FUNCTIES. worden dan automatisch alle profielen vervangen en in 3D getoond.

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

5,5. Werkstuk door een scholier 1934 woorden 3 februari keer beoordeeld. Nederlands

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

1. Uw computer leren kennen

Samengesteld door: Xerox Corporation Global Knowledge and Language Services 800 Phillips Road, Bldg S Webster, New York USA

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

De laatste versie is beschikbaar Van onze software

Linux voor S/390 (IBM z-series)

VMware ThinApp. Application Virtualization Platform that enables complex software to be delivered as self-contained EXE files

Thuiswerken bij Groenhuysen

4. Eerste hulp bij softwareproblemen

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder

Linux Mint Cinnamon 18.1 Ervaringen. Bart van Dijk

Door toenemende automatisering en slimmere tools verdwijnt het werk voor de klassieke IT beheerder

Gebruikershandleiding. Copyright 2013 Media Security Networks BV. All rights reserved.

RLBS (robbert Location based services)

Office 365 versus Online Werkplek

LET OP! Lees dit eerst even door!

Dutch / Nederlands. Versie 1.2

Handleiding. vworkspace VGGM. Handleiding voor gebruikers.

Software kan worden ingedeeld in verschillende manieren. Bijvoorbeeld:

Systeemeisen Solid Edge Wat zijn de minimale systeemeisen voor een werkbaar CAD-systeem?

USB 3.0 naar VGA video adapter met automatische on-board driver installatie x1200

Een product van Visma Software BV

Beginnen met businessdesk

Outlook is een mogelijke opvolger voor Windows Live Mail aangezien Microsoft (WLM) de ondersteuning van dit product per 10 januari 2017 heeft gestopt.

Samba Windows Netwerken onder Linux

Extra uitleg bij installatie EPB-software 3G

HET BESTURINGSSYSTEEM

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

OpenChange. Jelmer Vernooij. NLLGG-bijeenkomst 13 december OpenChange. MAPI MAPI/RPC OpenChange Huidige status Toekomst.

Ictivity Een vreemde eend in de bijt

Tekla Structures Hardware aanbevelingen

Rhino: Back-up maken. RsyncBackup

SuperOffice Systeemvereisten

Cerussa FIN Pre-requirements

MINIMALE SYSTEEMEISEN. Vakware 6

Logicsim Hydraulics. Vak/onderwerp Techniek, motorvoertuigentechniek, hydrauliek, mechanica

Het handboek van Remote Desktop Connection. Brad Hards Urs Wolfer Vertaler/Nalezer: Freek de Kruijf

Werken zonder zorgen met uw ICT bij u op locatie

NIEUWSBRIEF JULI 2009

Deze software regelt en ondersteunt der werking van de computer.bv; besturingssystemen,windows en Linux.

Handleiding Niki API

MS Office 365 installeren op Windows 8

Bureel PC 840 * * Ook betaling per maand mogelijk Prijs met Linux Mint bit: 790. Gratis:

6,7. Werkstuk door een scholier 2286 woorden 24 januari keer beoordeeld. Informatica. Algemeen

DuboCalc 4.0. Installatie instructie

Installatiegids Registratie Hardware specificaties

Microsoft Office 365 voor bedrijven. Remcoh legt uit

CareConnect Fin Pre-requirements

Webwinkel in het D-cluster van de opleiding Logistiek

Windows op de Linux Desktop

Getting Started Guide Nederlands

Transcriptie:

Wine: Windows voor iedereen Klaas van Gend Sioux Technische Software Ontwikkeling B.V. Wine is een Open Source project om Windows te imiteren op andere platforms zoals Linux. Dit artikel geeft een overzicht van het project. Wine staat voor Wine Is Not an Emulator en betekent dat Wine technisch gesproken niet emuleert, maar een Windows programma gewoon uitvoert. Het vervangt calls naar het Windows systeem door eigen functies. De geschiedenis Sinds het ontstaan van Linux in 1991 hebben al veel mensen geklaagd over het gemis aan applicaties voor Linux. Met een scheef oog werd gekeken naar het grote voorbeeld: Windows, met duizenden applicaties. In 1993 startten wereldwijd enkele pioniers om Windows 3.1 programma s ook onder Linux te kunnen gebruiken. Zij stelden zich tot doel een interface-laag te schrijven, die gewone Windows programma s zou laten geloven dat ze op Windows draaien, in plaats van op Linux. Deze interface-laag (die de Win en later ook de Win32 API s moest imiteren) bevat de systeemcalls, en is het enige waarmee een Windows programma met de computer kan en mag communiceren. Deze laag wordt door Microsoft ongeveer gedocumenteerd in de diverse Helpbestanden, MSDN en diverse boeken. De werking van het onderliggende Windows systeem moet dus vaak reverse engineered worden. Dit is door een cynicus ook wel eens omschreven als een bug-by-bug replication of Windows. Nu Ondertussen draait Wine op veel meer dan alleen Linux, er zijn in de loop der tijd ports gedaan naar Solaris x86, FreeBSD en OS/2. Enkele mensen werken momenteel aan een port naar BeOS. In alle gevallen gaat het om de Intelvariant van het platform: Wine draait het programma namelijk gewoon op de processor en de systeemcalls worden opgevangen en omgeleid. Wine draait programma s bij benadering even snel, afhankelijk van de efficiency van de onderliggende code kan Wine zelfs sneller zijn dan Windows! Wine bestaat tegenwoordig uit zowel een programma om Windows programma s te runnen, alsook een library (Winelib) die aan een bestaande Windows source gelinkt kan worden om eenvoudig een Linux programma te maken van Windows code. Open Source Wine is een Open Source project. Alle ongeveer 150 programmeurs werken open: hun wijzigingen worden publiek gemaakt en opgenomen in een publieke source-tree (zie verderop).

In tegenstelling tot bijvoorbeeld Linux, wordt de source niet publiek gemaakt onder de GNU Public License (GPL), maar onder een BSD-achtige licentie: deze staat toe dat delen van de Wine-code mogen worden gebruikt in andere projecten (ook commerciële), zolang er maar een goede, originele copyright vermelding in blijft staan. Een uitgebreide verhandeling over licenties is geschreven door Bruce Perens voor het boek Open Sources [1]. Het project Wine wordt sinds 1994 geleid door Alexandre Julliard. Alles is georganiseerd rond de website WineHQ [2]. Daar staat een source-tree onder versiebeheer waar door iedereen een volledige source (actueel of een voorgaande versie) kan worden opgehaald. Ontwikkelaars sturen wijzigingen aan deze tree op naar een speciale mailing list. Alle abonnees van deze lijst krijgen zo de kans om de code te reviewen. Alexandre neemt vervolgens alle goedgekeurde wijzigingen over in de tree. Elke twee weken wordt een snapshot van de hele tree beschikbaar gesteld voor de 90.000 gebruikers. Omdat Wine nog in het alpha stadium is, wordt er geen garantie gegeven dat zo n snapshot compileert of werkt, maar meestal is een snapshot gewoon bruikbaar. Het gebruikte versiebeheersysteem, CVS is zelf ook een Open Source project met een eigen website [3]. Microsoft Sinds het voorzichtige begin in 1993 is er veel gebeurd. Zo kwamen Windows 95 en Windows NT 4.0 op de markt, elk met flinke uitbreidingen op de oorspronkelijke interfaces. Helaas ontstond er ook nog een wirwar aan versies, wat nog werd versterkt doordat Microsoft niet alles even goed heeft gedocumenteerd. Zo roepen enkele Microsoft DLL s functies in andere DLL s aan die officieel niet bestaan of worden functies ineens met meer dan het gedocumenteerde aantal parameters aangeroepen. Vooral in de user-interface (comctrl32.dll) zijn veel Figuur 1: Excel 97 toont een grafiek onder Wine

undocumented features gevonden. En er zijn ook andere applicaties (vooral van Microsoft), die gebruik maken van deze niet-bestaande calls. In Office 2000 heeft Jürgen Schmied bovendien een specifiek anti-wine truukje ontdekt: Excel 2000 leest een deel van de BIOS-ROM van de computer uit om daar enkele vreemde dingen mee te doen Terwijl dit soort systeem-specifieke handelingen verboden is door Microsoft zelf. Corel et al. Toch gaat het goed vooruit. Eind 1998 besloot Corel Corporation [4] om Winelib te gaan gebruiken voor het porten van WordPerfect Office 2000 en CorelDRAW 9 naar Linux. Hiervoor heeft Corel ongeveer twintig developers ingehuurd die fulltime werken aan het verbeteren van Wine. En bijna alle code wordt ook netjes weer teruggegeven, waardoor Wine het afgelopen jaar een enorme sprong heeft gemaakt. Onder andere de Windows95-look is nu vrijwel perfect. Het bedrijfje CodeWeavers maakt gebruik van de source van Wine om hun concurrerend project Twine [5] te verbeteren. Sinds kort werkt Alexandre Julliard fulltime voor CodeWeavers. Ook het bedrijfje Mainsoft [6] maakt een bibliotheek om Windows programma s te kunnen porten naar UNIX. Half oktober 1999 maakten zij bekend deze ook geschikt te zullen gaan maken voor Linux. Deze bibliotheek was al beschikbaar voor o.a. Solaris en wordt door Microsoft zelf gebruikt om de Internet Explorer te porten naar niet-windows platforms. Mainsoft is door Microsoft gelicenceerd om delen van de Windows NT code te mogen bekijken en hergebruiken. Resultaten Ruim vijf jaar na het begin is Wine in staat om al een aardig aantal applicaties te laten draaien. Een van de belangrijkste applicaties is natuurlijk Microsoft Office. In Figuur 1 is een screendump te zien van Excel 97 onder Linux. Er zijn nog wat onvolkomenheden te zien, zo heeft de titelbalk van het child-window niet helemaal correcte afmetingen. Excel is bruikbaar, maar zeker nog niet zo stabiel als onder Windows zelf. Computergames zijn met Wine al goed mogelijk, spellen als Warcraft, Unreal en Bladrunner zijn gewoon te spelen, waarbij sommige gebruikers rapporteren dat de game onder Linux sneller aanvoelt. Andere mensen rapporteren echter het tegenovergestelde. De website Linuxgames [7] houdt een lijst bij van games die via Wine bruikbaar zijn. Ter illustratie van de snelheid heeft de auteur een benchmark gedraaid met behulp van het programma WinTach. In beide gevallen is gebruik gemaakt van dezelfde computer. Een screenshot van het programma is te vinden in Figuur 2. (Pentium 100, 64 MB RAM, S3 Trio 64V+, grotere getallen in de tabel geven betere performance weer)

Figuur 2: Schermafbeelding van de benchmark WinTach Categorie Wine Win 95 991014 Wordprocessing 57.44 46.92 CAD / Draw 118.20 222.00 Spreadsheet 50.32 92.32 Paint 33.92 129.68 Opvallend is dat Wine in het geval van Wordprocessing sneller is, maar in het geval van een simulatie van Paint bijna een factor vier langzamer. Dit kan voor een groot deel verklaard worden uit de drivers van de grafische versnellende videokaarten onder Linux: deze zijn over het algemeen duidelijk minder geoptimaliseerd dan hun Windows tegenhangers. Voor games die gebruik maken van Glide (een API voor 3dfx videokaarten) geldt dat de drivers vrijwel even snel zijn. Omdat Linux minder overhead heeft dan Windows, werken dat soort games onder Linux sneller. In vrijwel alle gevallen geldt dat de applicatie onder een echte Windows sessie geïnstalleerd moet worden, omdat InstallShield gebruik maakt van een geheugenconfiguratie die onder Wine nog niet beschikbaar is. Dit laatste werkt helaas alleen op systemen waarop zowel Windows als Linux geïnstalleerd is. Printen in Wine De auteur van dit artikel houdt zich voornamelijk bezig met printerondersteuning in Wine. Dit is een nog grotendeels onontgonnen gebied. Een grote belemmering is namelijk het verschil in implementatie van de printerondersteuning in Windows NT in vergelijking tot Windows 95. Windows biedt vergaande en geavanceerde ondersteuning voor diverse soorten printers, terwijl de meeste Unixen niet

verder komen dan PostScript. Vanuit deze gedachte is er een generieke Wine PostScript driver geschreven. Via het gratis programma GhostScript kan PostScript dan worden omgezet naar informatie voor bijvoorbeeld deskjets. Momenteel is het nog niet mogelijk om vanuit 32-bits Windows programma s te printen, maar als we in het huidige tempo doorwerken, is dit nog voor het jaar 2000 wel mogelijk. De toekomst Wine is nog lang niet af, vooral de ondersteuning voor Windows NT laat nog veel te wensen over. Een 64-bits versie van Wine is voorlopig nog toekomstmuziek. Toch wordt er door veel mensen in de hele wereld aan gewerkt. Hoewel er nog enkele grote problemen liggen te wachten op een oplossing, zijn diverse applicaties onder Wine al bruikbaar. De port van Corel WordPerfect Office 2000 naar Linux komt rond kerst 1999 in de winkel, waarmee lijkt aangetoond dat Winelib al voldoende stabiel is voor de markt. Verder ligt het voor de hand dat Wine geport wordt naar andere platforms, zodra er een Intelprocessor emulator deel gaat uitmaken van de code. Naast de huidige ondersteuning voor FreeBSD, Linux, Solaris, BeOS en OS/2 kan er dan ook gedacht worden aan de andere Unixen en kunnen we misschien Windows programma s draaien op een Cray supercomputer Over de auteur Klaas van Gend is software engineer bij Sioux Technische Software Ontwikkeling B.V. [8] in Eindhoven. In zijn vrije tijd werkt hij als casual contributor mee aan Wine. Hij werkt voornamelijk aan de Printer API s en localization (ondersteuning voor andere talen dan Engels). Referenties [1] Open Sources: Voices from the Open Source Revolution Chris DiBona (ed), O Reilly Sebastopol USA 1999. [2] http://www.winehq.com [3] http://www.cyclic.com/cvs/info.html [4] http://linux.corel.com [5] http://www.codeweavers.com/twine [6] http://www.mainsoft.com/ [7] http://www.linuxgames.com/wine/ [8] http://www.sioux.nl