Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einleitung
TEIL I: Einstieg in Linux
2 Die Installation
3 Erste Schritte
4 Linux als Workstation für Einsteiger
TEIL II: Grundlagen
5 Kernel
6 Grundlagen aus Anwendersicht
TEIL III: Die Shell
7 Die Shell
8 Reguläre Ausdrücke
9 Konsolentools
10 Die Editoren
11 Shellskriptprogrammierung mit der bash
12 Die C-Shell
TEIL IV: System- & Netzwerkadministration
13 Benutzerverwaltung
14 Grundlegende Verwaltungsaufgaben
15 Netzwerkgrundlagen
16 Anwendersoftware für das Netzwerk
17 Netzwerkdienste
18 Mailserver unter Linux
19 LAMP & Co.
20 DNS-Server
21 Secure Shell
TEIL V: Die grafische Oberfläche
22 Die grafische Oberfläche
23 Window-Manager und Desktops
24 X11-Programme
25 Multimedia und Spiele
TEIL VI: Systeminterna
26 Prozesse und IPC
27 Bootstrap und Shutdown
28 Dateisysteme
29 Virtualisierung und Emulatoren
TEIL VII: Programmierung und Sicherheit
30 Softwareentwicklung
31 Crashkurs in C und Perl
32 Einführung in Computersicherheit
33 Netzwerksicherheit überwachen
TEIL VIII: Anhang
A Lösungen zu den einzelnen Aufgaben
B Kommandoreferenz
C X11-InputDevices
D MBR
E Buch-DVDs
F Glossar
G Literatur
Stichwort
Ihre Meinung?

Spacer
Linux von Johannes Plötner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
Rheinwerk Computing
1282 S., 5., aktualisierte Auflage 2012, geb., mit 2 DVDs
49,90 Euro, ISBN 978-3-8362-1822-1
Pfeil 29 Virtualisierung und Emulatoren
Pfeil 29.1 Einführung
Pfeil 29.1.1 Betriebssystem-Virtualisierung
Pfeil 29.1.2 Emulation
Pfeil 29.2 Wine, Cedega und Crossover
Pfeil 29.2.1 Cedega
Pfeil 29.2.2 CrossOver
Pfeil 29.2.3 Wine
Pfeil 29.3 ScummVM
Pfeil 29.3.1 Klassiker und Open-Source-Spiele
Pfeil 29.3.2 Spiele installieren
Pfeil 29.4 Oldie-Emulatoren und Nostalgie
Pfeil 29.4.1 DOSBox
Pfeil 29.4.2 UAE
Pfeil 29.4.3 Weitere Emulatoren
Pfeil 29.5 Hardware-Virtualisierung mit Xen
Pfeil 29.5.1 Die Xen-Architektur
Pfeil 29.5.2 Administration via xm
Pfeil 29.6 Hardware-Virtualisierung mit KVM
Pfeil 29.6.1 Die KVM-Architektur
Pfeil 29.6.2 Administration via QEMU
Pfeil 29.6.3 KVM vs. Xen
Pfeil 29.6.4 Weitere Lösungen
Pfeil 29.7 Zusammenfassung
Pfeil 29.8 Aufgaben

»Mache alles so einfach wie möglich,
doch nicht einfacher.«
– Albert Einstein

29 Virtualisierung und EmulatorenZur nächsten Überschrift

In diesem Kapitel beschäftigen wir uns mit Emulatoren und virtuellen Maschinen (VMs) unter Linux.

Durch Virtualisierung oder Emulation einer Systemumgebung wird es möglich, unter Linux auch Anwendungen für andere Betriebssysteme beziehungsweise sogar komplette Betriebssysteme zu betreiben.


Rheinwerk Computing - Zum Seitenanfang

29.1 EinführungZur nächsten ÜberschriftZur vorigen Überschrift

Zuerst einmal wollen wir die Begriffe klären. Virtualisierung und Emulation sind zwar verwandt, aber nicht zu verwechseln.


Rheinwerk Computing - Zum Seitenanfang

29.1.1 Betriebssystem-VirtualisierungZur nächsten ÜberschriftZur vorigen Überschrift

In Kapitel kap_kernel, »Der Kernel«, wurde Virtualisierung bereits so definiert, dass dabei vorhandene Ressourcen wie Speicher oder CPU-Rechenzeit unter den laufenden Prozessen aufgeteilt werden.

Virtuelle Maschine

Wenn von der Virtualisierung ganzer Systeme die Rede ist, meint man den Betrieb verschiedener Betriebssystem-Instanzen oder virtueller Maschinen auf einem physischen System. Damit man nun zwei oder mehr unabhängige Linux-Systeme oder auch Windows und Linux parallel auf derselben Maschine betreiben kann, benötigt man einen Hypervisor.

Ein Hypervisor ist eine Software, die eine Umgebung für virtuelle Maschinen bereitstellt bzw. diese verwaltet.

Für die Virtualisierung von Betriebssystemen gibt es unterschiedliche Hypervisor-Technologien mit jeweils eigenen Vor- und Nachteilen:

  • Virtualisierung mittels Container / Zone / Jail
    Hier wird eine komplette Betriebssystemumgebung innerhalb eines abgeschlossenen Containers zur Verfügung gestellt. Charakteristisch für diese Virtualisierungsform ist, dass nur ein Kernel des Betriebssystems läuft, der die jeweiligen Container verwaltet und eine saubere Trennung sicherstellt. Mit dieser Virtualisierungsform können selbstverständlich jeweils nur gleiche Betriebssysteme virtualisiert werden, die Virtualisierung eines Windows-Systems unter Linux ist hier nicht möglich.
  • Diese Virtualisierung existiert unter verschiedenen Unix-Varianten: Unter Solaris spricht man von Zones, unter FreeBSD von Jails. [Fn. Unter OpenBSD lässt sich durch Kombination von chroot und systrace Ähnliches bewirken.] Unter Linux gibt es User Mode Linux, das ebenfalls eine Variante eines Containers darstellt. [Fn. Jedoch wird hier – im Widerspruch zur »reinen Lehre« – innerhalb eines Containers wieder ein spezieller User-Mode-Linux-Kernel gestartet.]

    Bei dieser Virtualisierung ist der Hypervisor eigentlich der Kernel selbst.

  • Virtualisierung in Software
    Bei der Virtualisierung in Software läuft der Hypervisor als eigenes Programm auf einem vollwertigen Betriebssystem und nutzt dessen Treiber.
  • Vorteil ist hier, dass kaum Anpassung an das zugrunde liegende Wirtssystem notwendig ist. Weiterhin hat jede virtuelle Maschine im Gegensatz zu einer Container-Virtualisierung einen eigenen vollwertigen Kernel. Ein wesentlicher Nachteil können jedoch Performanceinbußen sein, die aufgrund eventuell mangelnder Hardwareunterstützung für solche Virtualisierungslösungen entstehen können – schließlich laufen die virtuellen Gastsysteme nicht parallel auf einer geteilten Hardware, sondern mehr oder weniger innerhalb des Wirts-Betriebssystems.

    Beispiele für diese Art der Virtualisierung wären VMware Workstation, VirtualBox oder QEMU (ohne KVM).

  • Hardware-Virtualisierung
    Im Gegensatz zur Software-Virtualisierung läuft der Hypervisor hier direkt auf der Hardware und bringt in der Regel seine eigenen Treiber mit. Alle virtuellen Gastsysteme laufen somit direkt auf der zugrunde liegenden Hardware parallel neben dem »kontrollierenden« Hypervisor, was im Vergleich zur Software-Virtualisierung deutliche Performance-Vorteile mit sich bringt. Das in einer virtuellen Maschine ausgeführte Gastsystem muss somit jedoch auch kompatibel zur eingesetzten Hardware sein. Selbstverständlich nutzen die virtuellen Gastsysteme ebenfalls einen eigenen Kernel.
  • Paravirtualisierung

    Eine besondere Form der Hardware-Virtualisierung ist die Paravirtualisierung: Hier wird die gemeinsam genutzte Hardware vom Hypervisor zu einer generischen Schnittstelle abstrahiert, was in der Folge nur spezielle Gastsysteme beziehungsweise Gastsysteme mit speziell angepassten Kerneln erlaubt. Durch die vorgenommene Abstraktion kann die virtuelle Maschine aber besonders schlank und effizient gestaltet werden, was im Betrieb wiederum weitere Geschwindigkeitsvorteile bringt.

    Beispiele für eine Hardware- beziehungsweise Paravirtualiserung sind beispielsweise VMware ESX Server oder auch Xen unter Linux.

Aber Achtung: Die Literatur ist in diesen Definitionen nicht eindeutig, auch viele Hersteller nutzen dieselben Begriffe in teilweise unterschiedlichen Bedeutungen. Passen Sie also auf, wenn Sie anderswo mit diesen Begriffen konfrontiert werden und hinterfragen Sie gegebenenfalls den Kontext. Für unser Verständnis und das weitere Kapitel sind diese Definitionen aber eindeutig und mehr als ausreichend.


Rheinwerk Computing - Zum Seitenanfang

29.1.2 EmulationZur vorigen Überschrift

Während eine Virtualisierung also immer etwas vorhandenes – im Regelfall Systemressourcen – aufteilt, wird bei einer Emulation etwas nachgebildet, was eigentlich nicht da ist. Meist handelt es sich bei diesen »Nachbildungen« um spezielle Schnittstellen oder gleich ganze Systemumgebungen.

Analog zum Hypervisor ist ein Emulator eine Software, die eine fremde Systemumgebung (gegebenenfalls in Teilen) nachbildet.

Ein Emulator ist nach dieser Definition im Gegensatz zum Hypervisor immer ein Programm, das innerhalb Ihres Betriebssystems läuft.

Hardware-Emulator

Ein spezielles Beispiel für Emulatoren ist dabei der Hardware-Emulator Bochs, der beispielsweise einen PowerPC-Prozessor unter einem normalen x86-Linux nachbilden kann. Innerhalb dieser Hardware-Emulationen können nun wieder ganze Betriebssysteme installiert (und gegebenenfalls auch betrieben) werden. In der Praxis wird der Bochs-Emulator vor allem zur Entwicklung und zum Testen diverser Betriebssystem-Portierungen benutzt.

Die meisten Emulatoren beschränken sich jedoch typischerweise darauf, Anwendungen auszuführen, die eigentlich für andere Betriebssysteme programmiert wurden. Der Einsatz eines solchen Emulators würde den Betrieb einer virtuellen Maschine mit einem separaten Betriebssystem ersetzen – ein wichtiger Aspekt, wenn Ressourcen knapp sind und nur einzelne Fremdanwendungen betrieben werden sollen.

[zB]Zum besseren Verständnis des Unterschieds zwischen Hypervisor und Emulatoren wollen wir Ihnen noch ein konkretes Beispiel geben: Sie haben auf Ihrem Computer Linux installiert, möchten aber unbedingt dieses tolle Windows-Spiel spielen. Für diesen Fall benötigen Sie entweder eine virtuelle Maschine, innerhalb derer Sie nun Windows und darin das jeweilige Spiel installieren können, oder Sie verwenden einen Emulator, der alle benötigten Schnittstellen nachbildet und direkt Windows-Programme ausführen kann – und installieren das Spiel innerhalb dieses Emulators.

In den folgenden Abschnitten werden wir auf konkrete Virtualisierungstechnolo- gien und Emulatoren eingehen – und das auch, aber nicht nur, um Windows-Spiele unter Linux nutzen zu können.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


Zum Rheinwerk-Shop: Linux Server






 Linux Server


Zum Rheinwerk-Shop: Raspberry Pi






 Raspberry Pi


Zum Rheinwerk-Shop: Ubuntu 14.04 LTS






 Ubuntu 14.04 LTS


Zum Rheinwerk-Shop: Roboter bauen mit Arduino






 Roboter bauen
 mit Arduino


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2012
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern