Bibliotheks-basierte Virtualisierung

Ähnliche Dokumente
Bibliotheks-basierte Virtualisierung

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2)

Architektur/Chip/Komponente

Betriebssystem-basierte Virtualisierung

Smartphone Entwicklung mit Android und Java

Aktuelle Themen der Informatik: Virtualisierung

Lösung von Übungsblatt 11. (Virtualisierung und Emulation)

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Xenologie oder wie man einen Plastikmainframe baut

Hinweise C-Programmierung

Projekt für Systemprogrammierung WS 06/07

Dynamisches Binden in Multics

Betriebssystem-basierte Virtualisierung

Konzepte von Betriebssystemkomponenten

Embedded Linux Portierung auf mobiles Datenerfassungsterminal. Ole Reinhardt

Hardware Virtualisierungs Support für PikeOS

kernkonzept L4Re ISOLATION UND SCHUTZ IN MIKROKERNBASIERTEN SYSTEMEN kernkonzept 1

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

CHARON-AXP Alpha Hardwarevirtualisierung

Freiberuflicher IT-Berater Schwerpunkte: Unix, Oracle, Netzwerk. Dipl.-Inform. Joachim Jäckel

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Assembler - Einleitung

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

Paravirtualisierung (2)

Virtualisierung ein Überblick

IaaS und Virtualisierung

Enterprise Portal - Abbildung von Prozessen, SAP-Datenintegration und mobile Apps

Assembler Kontrollstrukturen

Rechnernutzung in der Physik. Betriebssysteme

Systemanforderungen und Kompatibilität MSI-Reifen Rel.8

Betriebssysteme Vorstellung

Uberlegungen Einsatzgebiete Virtualisierungslosungen Fazit Hardwarevirtualisierung. Virtualisierung. Christian Voshage. 11.

Verteidigung der Diplomarbeit 3D-Netzwerk-Visualisierung

1 Windows 2000/XP (3.1, NT, 95, 98)

{BSDBootCamp} FreeBSD: Einführung, Struktur, Gremien, Ziele. Daniel Seuffert

Laptop-Pflicht für Studierende

Mit Clustertechnik zu mehr Verfügbarkeit:

Überblick. Virtualisierung Motivation Grundlagen Paravirtualisierung mit Xen Betriebssystemvirtualisierung mit Linux-VServer

Echtzeitbetriebssysteme

Fachreferat. EFI -BIOS Nachfolger-

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

Debugging mit uclinux auf ARM-Prozessoren

egenix PyRun Python Runtime in einer einzigen 12MB Datei FrOSCon 2012 Sankt Augustin Marc-André Lemburg EGENIX.COM Software GmbH Langenfeld, Germany

Prof. Dr. Sharam Gharaei. Inhaltsverzeichnis. 1 Einleitung 1. 2 Grundlage der Realisierung 2. 3 Die Realisierung 3. Literaturverzeichnis 7

Jürg Gutknecht, SI und ETH Zürich, April 2015

Betriebssysteme Kap A: Grundlagen

4D Server v12 64-bit Version BETA VERSION

Virtualisierung mit Xen

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN

Systemvoraussetzungen für ConSol*CM Version Architektur Überblick

Mindestanforderungen an Systemumgebung Für die Nutzung von excellenttango

Embedded-Linux-Seminare. Linux als Betriebssystem

VMware als virtuelle Plattform

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Virtualisierung Teil 5. Weiterführende Information

Mathematik Seminar WS 2003: Simulation und Bildanalyse mit Java. Software-Architektur basierend auf dem Plug-in-Konzept

Marketing Update. Enabler / ENABLER aqua / Maestro II

Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

Erlangen von Administrator-Privilegien unter Microsoft Windows NT 4.0 durch Ausnutzung einer Sicherheitslücke im Systemcache

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Embedded Linux. Embedded Linux. Daniel Buchheim Seminar "Eingebettete drahtlose Systeme"

Virtual Machines. Peter Schmid Hochschule für Technik Zürich Master of Advanced Studies, Informatik

Learning Suite Talent Suite Compliance Suite. Systemvoraussetzungen

RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam

Betriebssysteme KU - Einführungstutorium

App-Entwicklung für Android

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Vorlesung: Virtualisierung und Rechenzentrumsinfrastrukturen. Lars Göbel & Christian Müller VL04: Einführung in die Virtualisierung

Maschinencode Dateiformat und Stackframes

Servervirtualisierung mit Xen Möglichkeiten der Netzwerkkonfiguration

Managed VPSv3 Was ist neu?

Virtual Machines. Peter Schmid Hochschule für Technik Zürich Master of Advanced Studies, Informatik

Grundlagen Rechnerarchitektur und Betriebssysteme

Virtualisierung in der Automatisierungstechnik

0. Einführung. C und C++ (CPP)

Infrastruktur im Wandel

Linux auf dem Nios II Softcore Prozessor

11 Dinge, die Hyper-V übel nimmt. Nils Kaczenski MVP Hyper-V faq-o-matic.net

Transkript:

Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) 1 11

Idee: Will man eine bestimmte Applikation laufen lassen, muss nur das ABI für das Programm korrekt vorhanden sein. Application Binary Interface ( ABI ): CPU-Instruktionen Memory-Layout (Shared-) Library-Interface Betriebssystem-Interface Werden System-Calls über die Library abgewickelt, entfällt der letzte Punkt. V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 2 11

CPU-Instruktionen CPU-Instruktionen: Es müssen die CPU-Instruktionen vorhanden sein, die das Programm nutzt. => CPU muss stimmen Beispiel: Windows-Programm auf einer Sparc-Prozessor-basierten Workstation auszuführen funktioniert daher mit dieser Methode nicht! V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 3 11

Memory-Layout Memory-Layout: Da, wo das zu startende Programm seinen Programm-Code erwartet, muss das Code-Segment liegen. Da, wo das zu startende Programm sein Daten-Segment erwartet, muss Read/Write-Memory sein. Da, wo das zu startende Programm sein Stack-Segment erwartet (i.a. dort, wo %esp hinzeigt), muss Read/Write-Memory sein. Verhindert es das Host-OS, an die entsprechende Stelle Speicher zu mappen, ist diese Virtualisierungs-Methode nicht anwendbar! Beispiele: Windows verhindert Mappings unterhalb von 1MB und oberhalb von 2GB. Linux verhindert Mappings oberhalb von 3GB. V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 4 11

V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 5 11

Vorteile: hohe Performance (nahe 100%) geringe Ressourcen-Anforderungen (z.b. kein zweites OS) Gast-Applikation läuft im Fenster parallel zu anderen Native-Applikationen Nachteile: ein Update der Original-Libraries erfordert ein Update der nachprogrammierten Libraries neue Original-Libraries erfordern neue nachprogrammierte Libraries Nachprogrammieren der Libraries u.u. schwierig (keine Dokumentation, kein Source-Code) nachprogrammierte Libraries u.u./i.a. fehlerbehaftet V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 6 11

I.A. existieren viele Libraries (Beispiel: Linux/Windows je ca. 100). höhere Schichten können ggf. unverändert bleiben niedrigere Schichten werden ersetzt Z.B. würde es reichen, die libc zu ersetzen, wenn man Linux-Programme auf anderen Plattformen ablaufen lassen wollte. (Beispiel: cygwin) V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 7 11

V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 8 11

Kennt das Betriebssystem den Applikation-Typ nicht, kann es ihn nicht laden und mit den Libraries linken. Möglichkeiten: Betriebssystem erweitern (Beispiel Linux: binfmt_*-module laden, linken und starten entsprechende Applikationen) Betriebssystem startet Extra-Programm, dass die eigentliche Applikation lädt, linkt und startet (Beispiel: wine-programm lädt, linkt und startet Windows-Applikation unter Linux) Entspricht Funktionalität eines Shared-Library-Linkers. V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 9 11

Problem: Programme, die System-Calls enthalten (z.b. statisch gebundene Programme) Lösung: Betriebssystem muss fremde System-Calls bereitstellen ( Personality, Execution Domain ). Beispiel: FreeBSD-Kernel kennt Linux Personality => Linux-Programme unter FreeBSD lauffähig. V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 10 11

V. Sieh Bibliotheks-basierte Virtualisierung (WS15/16) Bibliotheks-basierte Virtualisierung 11 11