Für manche ist es ein Traum, für andere eher ein Albtraum: Windows-Programme nativ unter Linux zu nutzen. Der Linux Unified Kernel alias “Longene” soll es möglich machen – doch der Teufel steckt im Detail.
Beim Linux Unified Kernel [1] handelt es sich um einen leicht abgeänderten Linux-Kernel 2.6.23 inklusive einer speziellen Wine-Version. Die Wine-Version benötigt der Longene-Kernel, da noch nicht sämtliche Systemaufrufe im Kernelmodul integriert sind. In späteren Versionen des Linux Unified Kernel, will man komplett auf Wine verzichten. Der “Longene”-Kernel hat weite Teile des Codes auch von ReactOS [2] übernommen, darunter die grundlegenden Systemaufrufe. Zurzeit stellt Longene somit eine Hybridlösung von ReactOS und Wine auf Linux-Basis dar.
Dieser Artikel stellt die Version 0.2.4 des Linux Unified Kernels vom 22. Mai 2009 vor. Sie basiert auf dem Linux-Kernel 2.6.23 und Wine 1.0.0. Sie finden den Longene-Quellcode auch auf der Heft-DVD. Zu den Neuerungen von Version 0.2.4 gehört unter anderem die direkte Unterstützung der Dateisystemfunktionen durch den Kernel, wodurch Longene im Vergleich zu Wine deutlich zügiger arbeiten soll. In unseren Tests konnten wir dies jedoch nicht messen, da der Longene-Kernel kein einziges Windows-Programm starten konnte.
Der Linux Unified Kernel wird bereits seit 2006 von der chinesischen Firma Insigma Co. Ltd entwickelt. In unseren Breitengraden kennt man Longene erst, seitdem Insigma im Januar 2009 die Homepage auch in englischer Sprache online stellte. Die Dokumentation zum Projekt findet sich in Form eines Whitepapers [3] auf der Projektseite. Das Papier steht allerdings zurzeit nur in Chinesisch bereit, eine englische Version soll in Kürze folgen.
Der Unified Linux Kernel unterstützt in der aktuellen Version 0.2.4 das Dateisystem Ext4 nicht. Wer das Wurzelverzeichnis auf einem Ext4-Dateisystem betreibt (unter anderem aktuelle Ubuntu- und Fedora-Versionen), kann deshalb die Features des Longene-Kernels nicht nutzen. Longene arbeitet zudem nur auf 32-Bit-Systemen und bringt keinen Support für Mehrkern-Prozessoren mit.
Installation
Auf Systemen unter Ubuntu, Fedora oder Red Flag kommt man am einfachsten zum Unified Kernel: Für diese drei Distributionen stehen auf der Projektseite fertige Kernel- sowie Wine-Pakete zum Download bereit [4]. Diese installieren Sie zum Beispiel im Fall von Ubuntu auf der Kommandozeile über
$ sudo dpkg -i kernel_2.6.23-0.2.4uk_i386.deb $ sudo dpkg -i wine_1.0.0-0.2.4uk_i386.deb
Beim Neustart finden Sie dann den Longene-Kernel 2.6.23 im Grub-Menü zur Auswahl. Nutzen Sie eine andere Distribution, dann müssen Sie den Unified Kernel von Hand bauen. Die dazu nötigen Schritte erklärt der Kasten “Hand anlegen”.
Hand anlegen
Die vorkompilierten Kernel- und Wine-Pakete für Ubuntu, Fedora und Red Flag lassen sich theoretisch auch unter anderen Systemen nutzen, es empfiehlt sich jedoch auf einer nicht direkt unterstützten Version den Quellcode selbst zu übersetzen. Als Vorwarnung sei hier erwähnt, dass es in den Tests nicht gelang, den derzeit aktuellen Unified Kernel zu kompilieren, die Anleitung sollte aber auch auf dessen kommende Versionen passen.
Im Quellcode (unifiedkernel-0.2.4-full.tar.bz2) befinden sich die Verzeichnisse linux-2.6.23, module, patches und wine-1.0. Bei linux-2.6.23 und wine-1.0 handelt es sich somit um die jeweilige Originalversion, die Sie zunächst mit den Longene-Patches versehen müssen. Wechseln Sie dazu in das Verzeichnis linux-2.6.23 und rufen Sie folgenden Befehl auf:
$ patch -p1 < ../patches/unifiedkernel-0.2.4-linux-2.6.23.diff
Der Patch enthält auch eine passende Konfigurationsdatei, sodass Sie ohne make menuconfig sogleich make aufrufen können. Der Kompiliervorgang dauert je nach CPU-Leistung zwischen 40 Minuten und mehreren Stunden, brach in den Test mit Ubuntu 9.04 und OpenSuse 11.1 jedoch beim Übersetzen des eigentlichen Kernels jeweils ab (Abbildung 2).
Haben Sie mehr Erfolg, dann starten Sie nach dem Kompilieren des Kernels make modules_install und anschließend make install. Eine RAM-Disk benötigt der Longene-Kernel nicht. In einem zweiten Schritt kompilieren Sie die vom Longene-Projekt bereitgestellte Wine-Version. Auch hier müssen Sie zunächst einen Patch anwenden:
$ cd unifiedkernel-0.2.4-full/wine-1.0 $ patch -p1 < ../patches/unifiedkernel-0.2.4-wine-1.0.diff
Anschließend führt der übliche Dreischritt ./configure, make und make install (als root) zum Erfolg. Eine eventuell bereits installierte Wine-Version müssen Sie zunächst über das Paketmanagement entfernen. Laut einem Eintrag im chinesischen Longene-Forum [5] bietet Insigma auch einen CVS-Zugriff zum Quellcode an, in unseren Tests misslang aber der Login- und Checkout-Versuch.
Kein Wein
Hat die Installation über den Quellcode oder die fertigen Pakete geklappt, dann können Sie nun in Dolphin oder einem beliebigen Dateimanager eine EXE-Datei per Doppelklick ausführen. Auf den ersten Blick lässt sich denn auch kein Unterschied zwischen der Nutzung des Longene-Kernels und von Wine zu erkennen. In Wirklichkeit führt jedoch der Linux-Kernel das Programm aus.
Sichtbar wird dies, wenn Sie eine Windows-Anwendung auf der Kommandozeile starten: Dazu machen Sie das Binary zunächst mit chmod +x Programm.exe ausführbar und starten es dann über ./Programm.exe. Ohne Longene-Kernel erhalten Sie in einem solchen Fall die Fehlermeldung cannot execute binary file. Mit Longene-Kernel startet jedoch – im Optimalfall – das Windows-Programm. In unseren Tests erhielten wir lediglich Fehlermeldungen (Abbildung 1).

Abbildung 1: Nach einem Hinweis auf eine fehlende DLL verabschiedet sich das Windows-Programm mit einer Fehlermeldung.
Zeigt das Terminalfenster beim Start die Meldung “Speicherzugriffsfehler” an, dann ist vermutlich das zugehörige Kernelmodul nicht geladen. Abhilfe schaffen Sie hier mit
# depmod -a # modprobe unifiedkernel
Bevor Sie jedoch irgendwelche Programme aus dem Internet herunterladen, empfiehlt es sich, für einen ersten Test winecfg zu starten und danach unter .wine/drive_c/windows den Editor notepad.exe auszuführen. So lange Notepad nicht funktioniert, müssen Sie es mit anderen Programmen gar nicht erst versuchen.
Überwiegend nachteilig
Zurzeit machen die Vorteile beim Einsatz des Longene-Kernels dessen Nachteile nicht wett. So basiert Longene auf einer für Linux-Verhältnisse relativ alten Kernelversion, wodurch zum Beispiel auf aktuellen Notebooks weder die Webcam noch die WLAN-Treiber funktionieren. Der Kernel bereitet zudem Probleme, sobald man andere Treiber einbinden möchte, etwa solche für einen DVB-T-Stick oder die proprietären Grafikkartentreiber von ATI und Nvidia. Auch bei der Wine-Version hinkt Longene zwangsläufig hinterher, da bis zur Integration der Wine-Systemaufrufe meistens schon eine aktuellere Version des Windows-(Nicht-)Emulators zur Verfügung steht. Noch fehlt dem Linux-Unified-Kernel-Projekt auch der Support für die von Ndiswrapper unterstützten WLAN-Treiber. Als einzigen Vorteil hat der Longene-Kernel somit die bessere Performance zu bieten, die wir in den Tests zu diesem Artikel allerdings aus den beschriebenen Gründen nicht nachweisen konnten. Wer häufig Windows-Programme unter Linux nutzt, sollte das Projekt im Auge behalten – die aktuelle Wine-Version bereitet aber deutlich mehr Freude.
Infos
[1] Projektseite: http://www.unifiedkernel.com/en/index.php
[2] ReactOS: http://www.reactos.org
[3] Longene-Whitepaper: http://www.longene.org/whitepaper.php
[4] Download: http://www.longene.org/en/download.php
[5] CVS-Zugang: http://www.longene.org/forum/viewtopic.php?f=17&t=748






