Warum haben 32-Bit-Windows-Anwendungen unter Wine auf modernen 64-Bit-Betriebssystemen häufig Startschwierigkeiten?
Das Ausführen von 32-Bit-Windows-Anwendungen unter Wine auf modernen 64-Bit-Systemen (insbesondere Linux und macOS) ist technisch komplexer, als es auf den ersten Blick scheint. Es gibt mehrere Gründe, warum es hier häufig zu Startschwierigkeiten kommt:
1. Fehlende 32-Bit-Bibliotheken auf dem Host-System (Multiarch)
Dies ist die häufigste Ursache unter Linux. Ein 64-Bit-Linux-System ist heute der Standard, und viele Distributionen (wie Fedora oder Ubuntu) liefern standardmäßig nur noch 64-Bit-Systembibliotheken aus.
- Das Problem: Eine 32-Bit-Windows-App benötigt 32-Bit-Pendants der Linux-Bibliotheken (z. B. für Grafik, Sound und Netzwerk), um mit der Hardware zu kommunizieren.
- Die Folge: Wenn man Wine installiert, werden oft nicht alle notwendigen 32-Bit-Abhängigkeiten (z. B.
libGL,libX11,GnuTLSin der i386-Version) automatisch mitinstalliert. Ohne diese stürzt die Anwendung sofort beim Start ab oder zeigt kein Bild.
2. Die Architektur von Wine (WoW64-Herausforderung)
Wine nutzt unter Windows ein Konzept namens WoW64 (Windows-on-Windows 64-bit), um 32-Bit-Code auf einem 64-Bit-System auszuführen.
- Der "alte" Weg: Lange Zeit benötigte Wine zwingend ein 32-Bit-Wine-Binary und 32-Bit-Unix-Bibliotheken, um 32-Bit-Windows-Apps auszuführen. Das machte die Einrichtung auf reinen 64-Bit-Systemen extrem mühsam.
- Der "neue" Weg (New WoW64): Seit Wine 9.0 gibt es einen Modus, in dem 32-Bit-Windows-Code in einem 64-Bit-Unix-Prozess ausgeführt werden kann. Dies ist jedoch ein massiver Umbau des Wine-Kernels, der noch nicht für alle Anwendungen zu 100 % stabil ist.
3. macOS und der harte Cut (Ab Catalina 10.15)
Apple hat die Unterstützung für 32-Bit-Code komplett aus dem Betriebssystem entfernt.
- Das Problem: Während Linux-Kernel noch 32-Bit-Code ausführen können, verweigert macOS dies strikt.
- Die Lösung von Wine: Die Entwickler (insbesondere CodeWeavers/CrossOver) mussten eine spezielle Technik entwickeln, um 32-Bit-Windows-Befehle "on the fly" in 64-Bit-Befehle für macOS umzuwandeln (Thunking). Dies ist extrem fehleranfällig und führt oft zu Inkompatibilitäten.
4. Grafiktreiber und Hardwarebeschleunigung
Grafikintensive Anwendungen (Spiele) benötigen Zugriff auf OpenGL oder Vulkan.
- Moderne Grafiktreiber (NVIDIA, AMD, Intel) müssen im 64-Bit-OS auch als 32-Bit-Treiber-Paket vorliegen.
- Fehlen diese (was bei minimalistischen Installationen oft der Fall ist), kann Wine keine 3D-Beschleunigung initialisieren, was zum Absturz führt.
5. Wine-Prefix-Konflikte
Wine speichert Einstellungen und simulierte Windows-Dateien in sogenannten "Prefixes" (meist ~/.wine).
- Ein Standard-Prefix ist oft als 64-Bit-Umgebung konfiguriert. Manche sehr alten 32-Bit-Anwendungen oder Installer kommen damit nicht zurecht und erwarten eine reine 32-Bit-Umgebung (
WINEARCH=win32). - Wenn man versucht, eine 32-Bit-App in einen korrupten oder inkompatiblen 64-Bit-Prefix zu installieren, kommt es häufig zu Fehlern in der Registry oder bei den DLL-Registrierungen.
Zusammenfassung und Lösung
Die Startschwierigkeiten liegen meist an einer unvollständigen Multiarch-Konfiguration des Betriebssystems.
Was hilft meistens?
- 32-Bit-Architektur aktivieren: (Unter Debian/Ubuntu:
sudo dpkg --add-architecture i386 && sudo apt update). - Abhängigkeiten installieren: Sicherstellen, dass die 32-Bit-Versionen von Mesa, Treibern und Wine-Abhängigkeiten vorhanden sind.
- Hilfsprogramme nutzen: Tools wie Lutris, Bottles oder Steam/Proton nehmen dem Nutzer die mühsame Verwaltung dieser Bibliotheken ab, indem sie oft eigene Runtime-Umgebungen mitbringen, die alle nötigen 32-Bit-Teile enthalten.