Kapitel Adaptivität fertig
@ -2872,7 +2872,7 @@ Architekturvarianten - drei unterschiedliche Prinzipien:
|
|||||||
- ✓ Anwendungen isolierbar
|
- ✓ Anwendungen isolierbar
|
||||||
|
|
||||||
Hardware-Voraussetzungen
|
Hardware-Voraussetzungen
|
||||||
- Voraussetzungen zum Einsatz von Typ- 1 - HV
|
- Voraussetzungen zum Einsatz von Typ-1-HV
|
||||||
- Ziel: Nutzung von Virtualisierung auf PC-Hardware
|
- Ziel: Nutzung von Virtualisierung auf PC-Hardware
|
||||||
- systematische Untersuchung der Virtualisierbarkeit von Prozessoren bereits 1974 durch Popek & Goldberg [Popek&Goldberg74]
|
- systematische Untersuchung der Virtualisierbarkeit von Prozessoren bereits 1974 durch Popek & Goldberg [Popek&Goldberg74]
|
||||||
- Ergebnis:
|
- Ergebnis:
|
||||||
@ -2944,6 +2944,259 @@ Intel-Architektur ab 386
|
|||||||
- erste virtualisierungsfähige Intel-Prozessorenfamilie (s. [Adams2006] ): VT, VT-x® (2005)
|
- erste virtualisierungsfähige Intel-Prozessorenfamilie (s. [Adams2006] ): VT, VT-x® (2005)
|
||||||
- dito für AMD: SVM, AMD-V® (auch 2005)
|
- dito für AMD: SVM, AMD-V® (auch 2005)
|
||||||
|
|
||||||
|
Forschungsarbeit 1990er Jahre
|
||||||
|
- verschiedene akademische Projekte zur Virtualisierung bisher nicht virtualisierbarer Prozessoren
|
||||||
|
- erstes und vermutlich bekanntestes: DISCO- Projekt der University of Stanford
|
||||||
|
- Resultat: letztlich VMware (heute kommerziell) und Typ-2-Hypervisors...
|
||||||
|
|
||||||
|
### Typ-2-Hypervisor
|
||||||
|

|
||||||
|
|
||||||
|
Virtualisierung ohne Hardwareunterstützung:
|
||||||
|
- keine Möglichkeit, trap-and-emulate zu nutzen
|
||||||
|
- keine Möglichkeit, um
|
||||||
|
1. korrekt (bei sensiblen Instruktionen im Gast-Kernel) den Privilegierungsmodus zu wechseln
|
||||||
|
2. den korrekten Code im HV auszuführen
|
||||||
|
|
||||||
|
Übersetzungsstrategie in Software:
|
||||||
|
- vollständige Übersetzung des Maschinencodes, der in VM ausgeführt wird, in Maschinencode, der im HV ausgeführt wird
|
||||||
|
- praktische Forderung: HV sollte selbst abstrahierte HW-Schnittstelle zur Ausführung des (komplexen!) Übersetzungscodes zur Verfügung haben (z.B. Nutzung von Gerätetreibern)
|
||||||
|
- $\rightarrow$ Typ-2-HV als Kompromiss:
|
||||||
|
- korrekte Ausführung von virtualisierter Software auf virtualisierter HW
|
||||||
|
- beherrschbare Komplexität der Implementierung
|
||||||
|
|
||||||
|
aus Nutzersicht
|
||||||
|
- läuft als gewöhnlicher Nutzer-Prozess auf Host-Betriebssystem (z.B. Windows oder Linux)
|
||||||
|
- VMware bedienbarwie physischer Rechner (bspw. erwartet Bootmedium in virtueller Repräsentation eines physischen Laufwerks)
|
||||||
|
- persistente Daten des Gast-BS auf virtuellem Speichermedium ( tatsächlich: Image-Datei aus Sicht des Host-Betriebssystems)
|
||||||
|
|
||||||
|
Mechanismus: Code-Inspektion
|
||||||
|
- Bei Ausführung eines Binärprogramms in der virtuellen Maschine (egal ob Bootloader, Gast-BS-Kernel, Anwendungsprogramm): zunächst inspiziert Typ-2-HV den Code nach Basisblöcken
|
||||||
|
- Basisblock: Befehlsfolge, die mit privilegierten Befehlen oder solchen Befehlen abgeschlossen ist, die den Kontrollfluss ändern (sichtbar an Manipulation des Programm-Zählers eip), z.B. jmp, call, ret.
|
||||||
|
- Basisblöcke werden nach sensiblen Instruktionen abgesucht
|
||||||
|
- diese werden jeweils durchAufruf einer HV-Prozedur ersetzt, die jeweilige Instruktion behandelt
|
||||||
|
- gleiche Verfahrensweise mit letzter Instruktion eines Basis-Blocks
|
||||||
|
|
||||||
|
Mechanismus: Binary Translation (Binärcodeübersetzung)
|
||||||
|
- modifizierter Basisblock: wird innerhalbdes HVin Cachegespeichert und ausgeführt
|
||||||
|
- Basisblock ohne sensible Instruktionen: läuft unter Typ-2-HV exakt so schnell wie unmittelbar auf Hardware (weil er auch tatsächlich unmittelbar auf der Hardware läuft, nur eben im HV-Kontext)
|
||||||
|
- sensible Instruktionen: nach dargestellter Methode abgefangen und emuliert $\rightarrow$ dabei hilft jetzt das Host-BS (z.B. durch eigene Systemaufrufe, Gerätetreiberschnittstellen)
|
||||||
|
|
||||||
|
Mechanismus: Caching von Basisblöcken
|
||||||
|
- HV nutzt zwei parallel arbeitende Module (Host-BS-Threads!):
|
||||||
|
- Translator: Code-Inspektion, Binary Translation
|
||||||
|
- Dispatcher: Basisblock-Ausführung
|
||||||
|
- zusätzliche Datenstruktur: Basisblock-Cache
|
||||||
|
- Dispatcher: sucht Basisblock mit jeweils nächster auszuführender Befehlsadresse im Cache; falls miss $\rightarrow$ suspendieren (zugunsten Translator)
|
||||||
|
- Translator: schreibt Basisblöcke in Basisblock-Cache
|
||||||
|
- Annahme: irgendwann ist Großteil des Programms im Cache, dieses läuft dann mit nahezu Original-Geschwindigkeit (theoretisch)
|
||||||
|
|
||||||
|
Performanzmessungen
|
||||||
|
- zeigen gemischtes Bild: Typ2-HV keinesfalls so schlecht, wie einst erwartet wurde
|
||||||
|
- qualitativer Vergleich mit virtualisierbarer Hardware (Typ1-Hypervisor):
|
||||||
|
- „trap-and-emulate,,: erzeugt Vielzahl von Traps $\rightarrow$ Kontextwechsel zwischen jeweiliger VM und HV
|
||||||
|
- insbesondere bei Vielzahl an VMs sehr teuer: CPU-Caches, TLBs, Heuristiken zur spekulativen Ausführung werden verschmutzt
|
||||||
|
- wenn andererseits sensible Instruktionen durch Aufruf von VMware-Prozeduren innerhalb des ausführenden Programms ersetzt: keine Kontextwechsel-Overheads
|
||||||
|
|
||||||
|
Studie: (von Vmware) [Adams&Agesen06]
|
||||||
|
- last-und anwendungsabhängig kann Softwarelösung sogar Hardwarelösung übertreffen
|
||||||
|
- Folge: viele moderne Typ1-HV benutzen aus Performanzgründen ebenfalls Binary Translation
|
||||||
|
|
||||||
|
### Paravirtualisierung
|
||||||
|
Funktionsprinzip
|
||||||
|
- ... unterscheidet sich prinzipiell von Typ-1/2-Hypervisor
|
||||||
|
- wesentlich: Quellcode des Gast-Betriebssystems modifiziert
|
||||||
|
- sensible Instruktionen: durch Hypervisor-Calls ersetzt
|
||||||
|
- Folge: Gast-Betriebssystem arbeitet jetzt vollständig wie Nutzerprogramm, welches Systemaufrufe zum Betriebssystem (hier dem Hypervisor) ausführt
|
||||||
|
- dazu:
|
||||||
|
- Hypervisor: muss geeignetes Interface definieren (HV-Calls)
|
||||||
|
- $\rightarrow$ Menge von Prozedur-Aufrufen zur Benutzung durch Gast-Betriebssystem
|
||||||
|
- bilden eine HV-API als Schnittstelle für Gast-Betriebssysteme (nicht für Nutzerprogramme!)
|
||||||
|
- mehr dazu: Xen
|
||||||
|
|
||||||
|
Verwandtschaft mit Mikrokernel-Architekturen
|
||||||
|
- Geht man vom Typ-1-HV noch einen Schritt weiter ...
|
||||||
|
- und entfernt alle sensiblen Instruktionen aus Gast-Betriebssystem ...
|
||||||
|
- und ersetzt diese durch Hypervisor-Aufrufe, um Systemdienste wie E/A zu benutzen, ...
|
||||||
|
- hat man praktisch den Hypervisor in Mikrokernel transformiert.
|
||||||
|
- ... und genau das wird auch schon gemacht: $L^4$Linux (TU Dresden)
|
||||||
|
- Basis: stringente $L^4\mu$ Kernel-Implementierung (Typ-1-HV-artiger Funktionsumfang)
|
||||||
|
- Anwendungslaufzeitumgebung: paravirtualisierter Linux-Kernel als Serverprozess
|
||||||
|
- Ziele: Isolation (Sicherheit, Robustheit), Echtzeitfähigkeit durch direktere HW-Interaktion (vergleichbar Exokernel-Ziel)
|
||||||
|
|
||||||
|
Zwischenfazit Virtualisierung
|
||||||
|
- Ziele: Adaptivität komplementär zu...
|
||||||
|
- Wartbarkeit : ökonomischer Betrieb von Cloud-und Legacy-Anwendungen ohne dedizierte Hardware
|
||||||
|
- Sicherheit : sicherheitskritische Anwendungen können vollständig von nichtvertrauenswürdigen Anwendungen (und untereinander) isoliert werden
|
||||||
|
- Robustheit : Fehler in VMs (= Anwendungsdomänen) können nicht andere VMs beeinträchtigen
|
||||||
|
- Idee: drei gängige Prinzipien:
|
||||||
|
- Typ-1-HV: unmittelbares HW-Multiplexing, trap-and-emulate
|
||||||
|
- Typ-2-HV: HW-Multiplexing auf Basis eines Host-OS, binarytranslation
|
||||||
|
- Paravirtualisierung: Typ-1-HV für angepasstes Gast-OS, kein trap-and-emulate nötig $\rightarrow$ HV ähnelt $\mu$Kern
|
||||||
|
- Ergebnisse:
|
||||||
|
- ✓ VMs mit individuell anpassbarer Laufzeitumgebung
|
||||||
|
- ✓ isolierteVMs
|
||||||
|
- ✓ kontrollierbare VM-Interaktion (untereinander und mit HW)
|
||||||
|
- ✗ keine hardwarespezifischen Optimierungen aus VM heraus möglich $\rightarrow$ Performanz, Echtzeitfähigkeit, Sparsamkeit!
|
||||||
|
|
||||||
|
## Container
|
||||||
|
Ziele:
|
||||||
|
- Adaptivität , im Dienste von ...
|
||||||
|
- ... Wartbarkeit: einfachen Entwicklung, Installation, Rekonfiguration durch Kapselung von
|
||||||
|
- Anwendungsprogrammen
|
||||||
|
- + durch sie benutzte Bibliotheken
|
||||||
|
- + Instanzen bestimmter BS-Ressourcen
|
||||||
|
- ... Portabilität: Betrieb von Anwendungen, die lediglich von einem bestimmten BS-Kernel abhängig sind (nämlich ein solcher, der Container unterstützt); insbesondere hinsichtlich:
|
||||||
|
- Abhängigkeitskonflikten (Anwendungen und Bibliotheken)
|
||||||
|
- fehlenden Abhängigkeiten (Anwendungen und Bibliotheken)
|
||||||
|
- Versions-und Namenskonflikten
|
||||||
|
- ... Sparsamkeit: problemgerechtes „Packen,, von Anwendungen in Container $\rightarrow$ Reduktion an Overhead: selten (oder gar nicht) genutzter Code, Speicherbedarf, Hardware, ...
|
||||||
|
|
||||||
|
Idee:
|
||||||
|
- private Sichten (Container) bilden = private User-Space-Instanzen für
|
||||||
|
verschiedene Anwendungsprogramme
|
||||||
|
- Kontrolle dieser Container i.S.v. Multiplexing, Unabhängigkeit und API: BS-Kernel
|
||||||
|
- somit keine Form der BS-Virtualisierung, eher: „User-Space-Virtualisierung,,
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Anwendungsfälle für Container
|
||||||
|
- Anwendungsentwicklung:
|
||||||
|
- konfliktfreies Entwickeln und Testen unterschiedlicher Software, für unterschiedliche Zielkonfigurationen BS-User-Space
|
||||||
|
- Anwendungsbetrieb und -administration:
|
||||||
|
- Entschärfung von „dependency hell,,
|
||||||
|
- einfache Migration, einfaches Backup von Anwendungen ohne den (bei Virtualisierungsimages als Ballast auftretenden) BS-Kernel
|
||||||
|
- einfache Verteilung generischer Container für bestimmte Aufgaben
|
||||||
|
- = Kombinationen von Anwendungen
|
||||||
|
- Anwendungsisolation? $\rightarrow$ Docker
|
||||||
|
|
||||||
|
Zwischenfazit: Container
|
||||||
|
- Ziele: Adaptivität komplementär zu...
|
||||||
|
- Wartbarkeit : Vermeidung von Administrationskosten für Laufzeitumgebung von Anwendungen
|
||||||
|
- Portabilität : Vereinfachung von Abhängigkeitsverwaltung
|
||||||
|
- Sparsamkeit : Optimierung der Speicher-und Verwaltungskosten für Laufzeitumgebung von Anwendungen
|
||||||
|
- Idee:
|
||||||
|
- unabhängige User-Space-Instanz für jeden einzelnen Container
|
||||||
|
- Aufgaben des Kernels: Unterstützung der Containersoftware bei Multiplexing und Herstellung der Unabhängigkeitdieser Instanzen
|
||||||
|
- Ergebnisse:
|
||||||
|
- ✓ vereinfachte Anwendungsentwicklung
|
||||||
|
- ✓ vereinfachter Anwendungsbetrieb
|
||||||
|
- ✗ Infrastruktur nötig über (lokale) Containersoftware hinaus, um Containern zweckgerecht bereitzustellen und zu warten
|
||||||
|
- ✗ keine vollständige Isolationmöglich
|
||||||
|
|
||||||
|
Beispielsysteme (Auswahl)
|
||||||
|
- Virtualisierung: VMware, VirtualBox
|
||||||
|
- Paravirtualisierung: Xen
|
||||||
|
- Exokernel: Nemesis, MirageOS, RustyHermit
|
||||||
|
- Container: Docker, LupineLinux
|
||||||
|
|
||||||
|
### Hypervisor
|
||||||
|
#### VMware
|
||||||
|
- " ... ist Unternehmenin PaloAlto, Kalifornien (USA)
|
||||||
|
- gegründet 1998 von 5 Informatikern
|
||||||
|
- stellt verschiedene Virtualisierungs-Softwareprodukte her:
|
||||||
|
1. VMware Workstation
|
||||||
|
- war erstes Produkt von VMware (1999)
|
||||||
|
- mehrere unabhängige Instanzen von x86- bzw. x86-64-Betriebssystemen auf einer Hardware betreibbar
|
||||||
|
2. VMware Fusion: ähnliches Produkt für Intel Mac-Plattformen
|
||||||
|
3. VMware Player: (eingestellte) Freeware für nichtkommerziellen Gebrauch
|
||||||
|
4. VMware Server (eingestellte Freeware, ehem. GSX Server)
|
||||||
|
5. VMware vSphere (ESXi)
|
||||||
|
- Produkte 1 ... 3: für Desktop-Systeme
|
||||||
|
- Produkte 4 ... 5: für Server-Systeme
|
||||||
|
- Produkte 1 ... 4: Typ-2-Hypervisor
|
||||||
|
- bei VMware-Installation: spezielle vm- Treiber in Host-Betriebssystem eingefügt
|
||||||
|
- diese ermöglichen: direkten Hardware-Zugriff
|
||||||
|
- durch Laden der Treiber: entsteht ,,Virtualisierungsschicht'' (VMware-Sprechweise)
|
||||||
|
|
||||||
|
- 
|
||||||
|
- 
|
||||||
|
- Typ1- Hypervisor- Architektur
|
||||||
|
- Anwendung nur bei VMware ESXi
|
||||||
|
- 
|
||||||
|
- Entsprechende Produkte in Vorbereitung
|
||||||
|
|
||||||
|
#### VirtualBox
|
||||||
|
- Virtualisierungs-Software für x86- bzw. x86-64-Betriebssysteme für Industrie und ,,Hausgebrauch'' (ursprünglich: Innotek , dann Sun , jetzt Oracle )
|
||||||
|
- frei verfügbare professionelle Lösung, als Open Source Software unter GNU General Public License(GPL) version 2. ...
|
||||||
|
- (gegenwärtig) lauffähig auf Windows, Linux, Macintosh und Solaris Hosts
|
||||||
|
- unterstützt große Anzahl von Gast-Betriebssystemen: Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7), DOS/Windows 3.x, Linux (2.4 and 2.6), Solaris and OpenSolaris , OS/2 , and OpenBSD u.a.
|
||||||
|
- reiner Typ-2-Hypervisor
|
||||||
|
|
||||||
|
### Paravirutalisierung: Xen
|
||||||
|
- entstanden als Forschungsprojekt der University of Cambridge (UK), dann XenSource Inc., danach Citrix, jetzt: Linux Foundation (,,self-governing'')
|
||||||
|
- frei verfügbar als Open Source Software unter GNU General Public License (GPL)
|
||||||
|
- lauffähig auf Prozessoren der Typen x86, x86-64, PowerPC, ARM, MIPS
|
||||||
|
- unterstützt große Anzahl von Gast-Betriebssystemen: FreeBSD, GNU/Hurd/Mach, Linux, MINIX, NetBSD, Netware, OpenSolaris, OZONE, Plan 9
|
||||||
|
- ,,Built for the cloud before it was called cloud.'' (Russel Pavlicek, Citrix)
|
||||||
|
- bekannt für Paravirtualisierung
|
||||||
|
- unterstützt heute auch andere Virtualisierungs-Prinzipien
|
||||||
|
|
||||||
|
Xen : Architektur
|
||||||
|
- Gast-BSe laufen in Xen Domänen (,,$dom_i$'', analog $VM_i$)
|
||||||
|
- es existiert genau eine, obligatorische, vertrauenswürdige Domäne: $dom_0$
|
||||||
|
- Aufgaben (Details umseitig):
|
||||||
|
- Bereitstellen und Verwalten der virtualisierten Hardware für andere Domänen (Hypervisor-API, Scheduling-Politiken für Hardware-Multiplexing)
|
||||||
|
- Hardwareverwaltung/-kommunikation für paravirtualisierte Gast-BSe (Gerätetreiber)
|
||||||
|
- Interaktionskontrolle (Sicherheitspolitiken)
|
||||||
|
- $dom_0$ im Detail: ein separates, hochkritisch administriertes, vertrauenswürdiges BS mit eben solchen Anwendungen (bzw. Kernelmodulen) zur Verwaltung des gesamten virtualisierten Systems
|
||||||
|
- es existieren hierfür spezialisierte Variantenvon Linux, BSD, GNU Hurd
|
||||||
|
- 
|
||||||
|
|
||||||
|
Xen : Sicherheit
|
||||||
|
- Sicherheitsmechanismusin Xen: Xen Security Modules (XSM)
|
||||||
|
- illustriert, wie (Para-) Typ-1-Virtualisierung von BS die NFE Sicherheit unterstützt
|
||||||
|
- PDP: Teil des vertrauenswürdigen BS in $dom_0$, PEPs: XSMs im Hypervisor
|
||||||
|
- Beispiel: Zugriff auf Hardware
|
||||||
|
- Sicherheitspolitik-Integration, Administration, Auswertung: $dom_0$
|
||||||
|
- 
|
||||||
|
- Beispiel: Inter-Domänen-Kommunikation
|
||||||
|
- Interaktionskontrolle (Aufgaben wie oben): $dom_0$
|
||||||
|
- Beispiel: [VisorFlow](https://www.flyn.org/projects/VisorFlow/)
|
||||||
|
- selber XSM kontrolliert Kommunikation für zwei Domänen
|
||||||
|
|
||||||
|
### Exokernel
|
||||||
|
Nemesis
|
||||||
|
- Betriebssystemaus EU-Verbundprojekt „Pegasus,, zur Realisierung eines verteilten multimediafähigen Systems (1. Version: 1994/95)
|
||||||
|
- Entwurfsprinzipien:
|
||||||
|
1. Anwendungen: sollen Freiheit haben, Betriebsmittel in für sie geeignetster Weise zu nutzen (= Exokernel-Prinzip)
|
||||||
|
2. Realisierung als sog. vertikal strukturiertes Betriebssystem:
|
||||||
|
- weitaus meiste Betriebssystem-Funktionalität innerhalb der Anwendungen ausgeführt (= Exokernel-Prinzip)
|
||||||
|
- Echtzeitanforderungen durch Multimedia $\rightarrow$ Vermeidung von Client-Server-Kommunikationsmodell wegen schlecht beherrschbarer zeitlicher Verzögerungen (neu)
|
||||||
|
- 
|
||||||
|
|
||||||
|
MirageOS + Xen
|
||||||
|
- Spezialfall: Exokernel als paravirtualisiertes BS auf Xen
|
||||||
|
- Ziele : Wartbarkeit (Herkunft: Virtualisierungsarchitekturen ...)
|
||||||
|
- ökonomischer HW-Einsatz
|
||||||
|
- Unterstützung einfacher Anwendungsentwicklung
|
||||||
|
- nicht explizit: Unterstützung von Legacy-Anwendungen!
|
||||||
|
- Idee: ,,Unikernel'' $\rightarrow$ eine Anwendung, eine API, ein Kernel
|
||||||
|
- umfangreiche Dokumentation, Tutorials, ... $\rightarrow$ [ausprobieren](https://mirage.io/wiki/learning)
|
||||||
|
- Unikernel - Idee
|
||||||
|
- Architekturprinzip: 
|
||||||
|
- in MirageOS: 
|
||||||
|
- Ergebnis: Kombination von Vorteilen zweier Welten
|
||||||
|
- Virtualisierungs vorteile: Sicherheit, Robustheit ($\rightarrow$ Xen - Prinzip genau einer vertrauenswürdigen, isolierten Domäne $dom_0$)
|
||||||
|
- Exokernelvorteile: Wartbarkeit, Sparsamkeit
|
||||||
|
- nicht: Exokernelvorteil der hardwarenahen Anwendungsentwicklung... ($\rightarrow$ Performanz und Echzeitfähigkeit )
|
||||||
|
|
||||||
|
### Container: Docker
|
||||||
|
- Idee: Container für einfache Wartbarkeit von Linux-Anwendungsprogrammen ...
|
||||||
|
- ... entwickeln
|
||||||
|
- ... testen
|
||||||
|
- ... konfigurieren
|
||||||
|
- ... portieren $\rightarrow$ Portabilität
|
||||||
|
- Besonderheit: Container können - unabhängig von ihrem Einsatzzweck - wie Software-Repositories benutzt, verwaltet, aktualisiert, verteilt ... werden
|
||||||
|
- Management von Containers: Docker Client $\rightarrow$ leichtgewichtiger Ansatz zur Nutzung der Wartbarkeitsvorteile von Virtualisierung
|
||||||
|
- Forsetzung unter der OCI (Open Container Initiative)
|
||||||
|
- ,,Docker does a nice job [...] for a focused purpose, namely the lightweight packaging and deployment of applications.'' (Dirk Merkel, Linux Journal)
|
||||||
|
- Implementierung der Containertechnik basierend auf Linux-Kernelfunktionen:
|
||||||
|
- Linux Containers (LXC): BS-Unterstützung für Containermanagement
|
||||||
|
- cgroups: Accounting/Beschränkung der Ressourcenzuordnung
|
||||||
|
- union mounting: Funktion zur logischen Reorganisation hierarchischer Dateisysteme
|
||||||
|
- 
|
||||||
|
|
||||||
# Performanz und Parallelität
|
# Performanz und Parallelität
|
||||||
# Zusammenfassung
|
# Zusammenfassung
|
||||||
|
|
||||||
|
BIN
Assets/AdvancedOperatingSystems-Nemesis-struktur.png
Normal file
After Width: | Height: | Size: 137 KiB |
BIN
Assets/AdvancedOperatingSystems-Xen-architektur.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
Assets/AdvancedOperatingSystems-Xen-sicherheit.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
Assets/AdvancedOperatingSystems-container.png
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
Assets/AdvancedOperatingSystems-docker.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
Assets/AdvancedOperatingSystems-edf-prioritätsumkehr.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Assets/AdvancedOperatingSystems-mirageOs-architektur.png
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
Assets/AdvancedOperatingSystems-typ-2-hypervisor.png
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
Assets/AdvancedOperatingSystems-unikernel-architektur.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
Assets/AdvancedOperatingSystems-vmware-bare-metal.png
Normal file
After Width: | Height: | Size: 182 KiB |
After Width: | Height: | Size: 218 KiB |
BIN
Assets/AdvancedOperatingSystems-vmware-paravirtualisierung.png
Normal file
After Width: | Height: | Size: 191 KiB |