Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2009  »  03  »  Völlig losgelöst  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Binaries auf fremder Architektur mit Quicktransit

Völlig losgelöst

von Peter Kreußel
Erschienen im Linux-Magazin 2009/03

Normalerweise ist es wünschenswert, dass die CPU-Befehle einer virtuellen Maschine ohne Umwege auf der Wirts-CPU ablaufen. Quicktransit von den Machern des Apple-Plattform-Emulators Rosetta virtualisiert auch die CPU. Mit zwischengelagerter Übersetzung sind Binaries dann architekturübergreifend lauffähig.

Virtuelle Maschinen gleichen der Host-Maschine normalerweise mindestens in der CPU-Architektur. Die meisten Maschinenbefehle aus der virtuellen Maschine verarbeitet die Wirts-CPU dann ohne Umweg. Die Virtualisierungssoftware fängt lediglich Hardware-bezogene Systemcalls ab.

Etwas völlig anderes tut der auf Intel-Macs in OS X integrierte Emulator Rosetta: Er sorgt dafür, dass vorliegende Power-Mac-Binaries auf den Intel-Maschinen arbeiten. Das Binary läuft in der Systemumgebung, für die es konzipiert ist, allerdings nicht auf der richtigen Architektur. Rosetta übersetzt daher die Maschinenbefehle für die Intel-Architektur. Hinter der Apple-Emuationslösung steckt die Firma Transitive [1], die IBM Ende November gekauf hat.

Die Quicktransit-Produktreihe [2] der Firma kombiniert Architektur- und Systememulation: Die Sparc/Solaris-Linux-x86-Emulationssoftware startet Sparc/Solaris-Anwendungen auf Linux-Systemen, die auf einer x86-Maschine laufen. Die Entwickler nennen dies Crossplattform-Virtualisierung. Eine Sparc-x86-Lizenz kostete vor der Übernahme durch IBM pro Prozessor inklusive Support 875 Dollar im Jahr. Aktuelle Preise sollen nach telefonischer Auskunft ab Ende Februar verfügbar sein.

Die GPL-Virtualisierungslösung Qemu kann das auch: Sie führt zum Beispiel PC-Anwendung auf Power Macs aus und umgekehrt. Als Preis für die Architekturabstraktion sinkt die Performance um ein Vielfaches. Die Translation-Engine von Quicktransit versucht die Geschwindigkeitsverluste durch einen Codecache abzumildern (Abbildung 1).


Abbildung 1: Optimierter Übersetzungsvorgang: Die Crossplattform-Virtualisierungslösung Quicktransit beschleunigt das rechenaufwändige Übersetzen von Maschinenbefehlen aus der Wirts- in die Gastarchitektur durch Segmentieren und Puffern.

Übersetzer in Aktion

Abbildung 1 schematisiert den Ablauf beim Starten eines Sparc-Binary auf einer x86-Maschine. Die Schritte 1 bis 5 zeigen die normale, unbeschleunigte Übersetzung. Beim Übersetzen kennt Quicktransit neben dem normalen Interpreter-Modus, der einzelne Instruktionen überträgt, zwei Blockmodi. Der Basic-Blockmode erkennt Codeblöcke, die normalerweise an Codeverzweigungen enden. Der Group-Blockmode geht noch einen Schritt weiter, er kombiniert mehrere Basic-Blocks und optimiert den Zielcode noch stärker. Diese aufwändige Optimierung kommt aber nur bei besonders häufig ausgeführten Codestellen zum Einsatz. Ein Codecache hält außerdem bereits übersetzten Maschinencode vor.

Doppelt abstrahiert

Eine Abstraktion der CPU-Architektur reicht noch nicht aus, um eine Solaris-Anwendung auf einer x-86-Maschine zu starten, auf der Linux läuft. Neben der Übersetzung des Maschinencode ist noch eine Übertragung der Systemcalls der von der Solaris-Anwendung genutzen Bibliotheken in ihre Linux-Entsprechung erforderlich. Auch diese stellt Quicktransit bereit (Abbildung 2). So läuft eine Sparc/Solaris-Anwendung auf einem x86/64-Bit-Linux-System. Modifikationen sind dabei weder am Wirtssystem noch an der Gastanwendung erforderlich.


Abbildung 2: Zweifach fremdgegangen: Ein Sparc/Solaris-Binary läuft mit Hilfe von Quicktransit auf einem x86-Linux-System. Die Emulator-Lösung übersetzt sowohl die Sparc-Maschinenbefehle als auch die Solaris-Systemcalls.

Statt - ähnlich wie Wine - einer Übersetzungssicht für einzelne Anwendungen stellt Quicktransit alternativ eine vollständige virtuelle Maschine bereit (Abbildung 3). Dann läuft nicht mehr bloß eine einzelne Anwendung, sondern ein komplettes System auf einer fremdem Architektur. Der Systemcall-Mapper ist durch virtualisierte Hardware ersetzt, die Sparc/Solaris-Anwendung läuft nun unter einem Solaris-Kernel.


Abbildung 3: Komplett umgezogen: Quicktransit überträgt nicht nur einzelne Anwendungen, sondern alternativ auch komplette Betriebssysteme auf eine fremde Architektur.

Als besonders Performance-kritisch bei der Übersetzung des architekturspezifischen Code gilt die MMU-Emulation. Ohne Hardware-Unterstützung fallen die Kosten dafür besonders hoch aus. Daher nutzt Quicktransit unter Linux KVM, um den Gast- vom Übersetzungs-Adressenraum zu trennen. So kann es Hardware-Unterstützung für das Adressmapping in Anspruch nehmen. Quicktransit ersetzt dabei Qemu, das die Kernelentwickler als Standard-Virtualisierungssoftware für die KVM-Schnittstelle vorgesehen haben: Es stellt die virtualisierte Hardware zur Verfügung und läuft dabei dank KVM-Schnittstelle im Userspace.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Handliche Bibliotheken Optimale C-Bibliotheken für Embedded Linux
Gipfeltreffen Bericht von der Linuxconf Europe und dem Kernel-Summit in
Kern-Technik Kernel- und Treiberprogrammierung mit dem Kernel 2.6 - Folge 28
Grenzübertritt Solaris-Software nach Linux portieren
Winterrätsel Rückblick auf das vergangene Jahr in Quizform
Engagierte Spielmacher Einsatzszenarien und Trends in der Virtualisierung
Whitepaper
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)