Open Source im professionellen Einsatz
Newsletter abonnieren
HEFTARCHIV | NEWS | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO

Partner-Links:
Yatego Shopping
Notebook Themenwelt
 
Yatego Deutschlands größte Shoppingmall. Über 8500 Shops, und 3 Mio Artikel.
Alle Bestseller, Gutscheine
und Shopping Tops.

Firewall bei Mercateo kaufen.

Ein Preisvergleich bei Hardware lohnt sich.

Sie suchen günstige Laptops? Schauen Sie doch mal bei Preisvergleich.org, Preisvergleich.eu, Preisvergleich.ch und Preisvergleich.at vorbei.

Linux Jobs

Job offers Netherlands


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
Grenzübertritt Solaris-Software nach Linux portieren
Gipfeltreffen Bericht von der Linuxconf Europe und dem Kernel-Summit in
Kern-Technik Kernel- und Treiberprogrammierung mit dem Kernel 2.6 - Folge 28
Senkrechtstarter KVM verzeichnet Geländegewinne
Engagierte Spielmacher Einsatzszenarien und Trends in der Virtualisierung
Whitepaper
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

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

Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)
 

Impressum |Datenschutzerklärung  | Mediadaten  | © 2010Linux New Media AG
Linux New Media Websites
Deutschland: [Admin-Magazin] [LinuxUser] [EasyLinux] [Linux-Community] [Linux Technical Review] [Ubuntu User]
Europa: [EasyLinux Polen] [Linux Magazine Polen] [Linux Magazine Spanien]
International: [Linux Magazine International] [Linux Pro Magazine] [Ubuntu User] [Linux Magazine Brasilien] [EasyLinux Brasilien]