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).
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.



