Windows-Programme unter Linux

tagged Linux

Windows-Programme laufen in Linux entweder unter der Windows-Emulation Wine oder in einer virtuellen Maschine wie Qemu (eventuell hardware-beschleunigt mit kqemu) oder Virtualbox. Wine ist ein Open-Source-Emulator, welcher die Windows-Systembibliotheken nachzubilden versucht. Die virtuellen Maschinen versuchen hingegen einen kompletten Computer nachzubilden mit Prozessor, Festplatte, Netzwerk, CD-ROM usw. In diesen virtuellen Rechnern kann dann ein Betriebssystem installiert werden. Bei Windows ist dazu jedoch eine gültige Lizenz notwendig.

Wine

Wine ist in der Version 0.9.54 über Portage installierbar, ich habe die Anwendungen mit 0.9.50 unter der Architektur AMD64 getestet. Die Konfiguration erfolgt als User über das Tool winecfg. Dort wird eingestellt, welches Windows jeweils simuliert werden soll (Win98, WinXP sind am weitesten fortgeschritten), die Laufwerke, usw. Die Oberfläche entspricht dabei schon den Windows-Fenstern. Es wird im Home-Verzeichnis des Nutzers ein verstecktes Verzeichnis ~/.wine angelegt, in diesem befindet sich jeweils das gesamte simulierte Windows-System ("drive_c" als Laufwerk C:\, darunter /windows mit den Systemdateien oder /Programme mit den installierten Programmen.

Programme startet man am besten in der Konsole (damit man all die schönen Fehlermeldungen mitbekommt) mit wine programm.exe. Wenn die Programme schon innerhalb der Windows-Verzeichnis-Struktur installiert sind, lautet der Befehl wine "C:\Programme..[Programm].exe", man beachte die Windows-Notierung der Verzeichnisse mit einem Backslash. Alternativ kann man sie auch mit wine ~/.wine/drive_c/Program\ files/[Programm].exe aufrufen, man beachte hier die Verwendung des Backslash als Escape-Sequenz vor einem Leerzeichen.

Internet Explorer

Bei der Installation bin ich der Anleitung unter http://appdb.winehq.org/appview.php?versionId=469 gefolgt. Dabei müssen zunächst die Dateien "Program Files/Internet Explorer/iexplore.exe" und mshtml.dll shdoclc.dll shdocvw.dll shlwapi.dll urlmon.dll wininet.dll im Verzeichnis windows/system32 gelöscht werden.

Dann wird winecfg gestart und im Reiter Bilbliotheken die Dateien iexplore.exe mshtml shdoclc shdocvw shlwapi urlmon wininet mlang auf "Native/Built-In" gestellt (es werden dann installierte Dateien und nicht die Emulations-Bibliotheken von wine verwendet). Weiterhin muss das Betriebssystem auf Win98 gestellt werden. Als nächstes lädt man die Datei ie6setup.exe (kleine Setup-Datei, welche die Installationsdateien vom Server herunterlädt) von Microsoft herunter. Diese startet man mit wine ie6setup.exe und lässt sich den Internet Explorer 6.1 installieren. Wenn das Programm aus irgendwelchen Gründen den Download abbricht, kann man das Setup abbrechen und mit wine ie6setup.exe sowie "Installation fortsetzen" weitermachen.

Nun sollte sich das Programm IEXPLORE.EXE im Verzeichnis C:\Programme\Internet Explorer\ befinden. Es geht dann weiter mit der Registrierung der neuen Bibiotheken im Verzeichnis windows/system32. Dazu wird in das Verzeichnis windows/system32 gewechselt und der Befehl $ for i in .dll .ocx; do regsvr32 /i $i; done ausgeführt. Danach hat der Befehl wine "c:\Programme\Internet Explorer\IEXPLORE.EXE" bei mir zum Start eines abgrundtief hässlichen, aber für die Website-Kontrolle manchmal notwendigen Internet Explorer geführt.

Galactic Civilizations - Teil 1

Das Spiel läuft unter der Emulation von WinXP ziemlich stabil. DirectX wird durch wine ebenfalls simuliert, die Grafikbeschleunigung ist okay. Das CD-ROM muss unter winecfg mit seinem Mountpunkt eingestellt sein. Nach Mounten der CD-ROM wird in das entsprechende Verzeichnis gewechselt und mit wine setup.exe das Programm auf der Festplatte installiert. Ausführen sollte man das Programm ebenfalls von der CD-ROM, ein Start von der Festplatte hat bei mir nicht funktioniert.

Qemu/KVM

Qemu ist eine mittlerweile schon recht lange in Enwticklung befindliche Virtuelle Maschine für Linux. Aufsehen erregte es durch die Aufnahme in den Kernel noch vor seinen großen Konkurrenten Xen und VMWare. Sein Vorteil ist die Tatsache, daß es wie VMWare und Virtualbox in einem eigenem Fenster auf dem Desktop laufen kann und nicht wie bei Xen als Virtuelle Maschine läuft, welche die gesamte grafische Oberfläche beansprucht. Dadurch können andere Linux-Programme parallel im Hintergrund weiterlaufen. Trotzdem ist die Variante KQemu teilweise Hardware-beschleunigt. Auf tolle 3D-Effekte muss man aber auch hier verzichten, da wie bei den Konkurrenten die Aufteilung des Grafikspeichers in einen "normalen" Bereich und einen reservierten Bereich für die VM nicht gelöst ist. Die in den Kernel integrierten Module sind leider ziemlich alt, die auf der Website http://fabrice.bellard.free.fr/qemu/ befindlichen Treiber sind wesentlich aktueller und sollten vorgezogen werden.

Bei meiner Installation mussten vor dem Start die Treiber manuell geladen werden und das Programm als Root gestartet werden, da es sonst ein Zugriffsproblem auf das kqemu-Device gab. CD-ROM kann hier problemlos eingebunden werden (Beschreibung auf der Website befolgen), die Installation des Betriebssystems erfolgt auf diesem Weg. Festplatten werden als ISO-Image erzeugt und eingebunden, direkten Zugriff auf die Linux-Partition gibt es nicht. Die eleganteste Variante des Zugriffs ist Installation eines SSH-Servers in Linux und die Installation des Programms WinSCP übers Netz in Windows. Damit kann man quasi übers lokale Netz auf die Linux-Partition zugreifen. Zum Start hab ich mir ein kleines Shell-Skript geschrieben:

'#!/bin/bash

modprobe kvm

modprobe kvm-amd

/opt/kvm/bin/qemu-system-x86_64 -hda /[Ort des Festplatten-Images]/vdisk.img -cdrom /dev/cdrom -m 1024'

Dieses muss wie gesagt als Root ausgeführt werden.

Elster Formular 2006/2007

Da es die Beamten der Finanzbehörde nach mehreren Jahren und vielen Versprechungen immer noch nicht hinbekommen haben, eine Linux-Version der elektronischen Einkommenssteuererklärung fertigzustellen, benötigt man als ehrlicher Steuerbürger weiterhin eine Windows-Lizenz. Zumindest läuft das Programm unter Qemu, wenn es schon nicht unter Wine funktioniert.

Unter Wine konnte es zwar gestartet werden, verlangt aber nach einem Upgrade. Das Dialogfenster verschwindet leider in den Hintergrund und läßt sich auch nicht hervorholen. Das Programm reagiert nicht mehr.