Paravirtualisierung
This commit is contained in:
		
							parent
							
								
									2f4137dd74
								
							
						
					
					
						commit
						fb9e0e31c7
					
				
							
								
								
									
										
											BIN
										
									
								
								Advanced Operating Systems - Cheatsheet.pdf
									 (Stored with Git LFS)
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Advanced Operating Systems - Cheatsheet.pdf
									 (Stored with Git LFS)
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -2807,8 +2807,8 @@ | |||||||
|         \item vollständige Übersetzung des Maschinencodes, der in VM ausgeführt wird, in Maschinencode, der im HV ausgeführt wird |         \item vollständige Übersetzung des Maschinencodes, der in VM ausgeführt wird, in Maschinencode, der im HV ausgeführt wird | ||||||
|         \item praktische Forderung: HV sollte selbst abstrahierte HW-Schnittstelle zur Ausführung des (komplexen!) Übersetzungscodes zur Verfügung haben |         \item praktische Forderung: HV sollte selbst abstrahierte HW-Schnittstelle zur Ausführung des (komplexen!) Übersetzungscodes zur Verfügung haben | ||||||
|         \item[$\rightarrow$] Typ-2-HV als Kompromiss |         \item[$\rightarrow$] Typ-2-HV als Kompromiss | ||||||
|             \item korrekte Ausführung von virtualisierter Software auf virtualisierter HW |         \item korrekte Ausführung von virtualisierter Software auf virtualisierter HW | ||||||
|             \item beherrschbare Komplexität der Implementierung |         \item beherrschbare Komplexität der Implementierung | ||||||
|     \end{itemize*} |     \end{itemize*} | ||||||
| 
 | 
 | ||||||
|     aus Nutzersicht |     aus Nutzersicht | ||||||
| @ -2863,72 +2863,55 @@ | |||||||
|     \end{itemize*} |     \end{itemize*} | ||||||
| 
 | 
 | ||||||
|     \subsubsection{Paravirtualisierung} |     \subsubsection{Paravirtualisierung} | ||||||
| 
 |  | ||||||
|     Funktionsprinzip |     Funktionsprinzip | ||||||
| 
 |  | ||||||
|     \begin{itemize*} |     \begin{itemize*} | ||||||
|         \item ... unterscheidet sich prinzipiell von Typ-1/2-Hypervisor |         \item ... unterscheidet sich prinzipiell von Typ-1/2-Hypervisor | ||||||
|         \item wesentlich: Quellcode des Gast-Betriebssystems modifiziert |         \item wesentlich: Quellcode des Gast-Betriebssystems modifiziert | ||||||
|         \item sensible Instruktionen: durch Hypervisor-Calls ersetzt |         \item sensible Instruktionen: durch Hypervisor-Calls ersetzt | ||||||
|         \item Folge: Gast-Betriebssystem arbeitet jetzt vollständig wie |         \item[$\rightarrow$] Gast-Betriebssystem arbeitet vollständig wie Nutzerprogramm, welches Systemaufrufe zum Betriebssystem (hier Hypervisor) ausführt | ||||||
|         Nutzerprogramm, welches Systemaufrufe zum Betriebssystem (hier dem |         \item Hypervisor: muss geeignetes Interface definieren (HV-Calls) | ||||||
|         Hypervisor) ausführt |         \item[$\rightarrow$] Menge von Prozedur-Aufrufen zur Benutzung durch Gast-Betriebssystem | ||||||
|         \item dazu: |         \item bilden eine HV-API als Schnittstelle für Gast-Betriebssysteme | ||||||
|         \begin{itemize*} |  | ||||||
|             \item Hypervisor: muss geeignetes Interface definieren (HV-Calls) |  | ||||||
|             \item[$\rightarrow$] Menge von Prozedur-Aufrufen zur Benutzung durch Gast-Betriebssystem |  | ||||||
|             \item bilden eine HV-API als Schnittstelle für Gast-Betriebssysteme (nicht für Nutzerprogramme!) |  | ||||||
|         \end{itemize*} |  | ||||||
|         \item mehr dazu: Xen |  | ||||||
|     \end{itemize*} |     \end{itemize*} | ||||||
| 
 | 
 | ||||||
|     Verwandtschaft mit Mikrokernel-Architekturen |     Verwandtschaft mit Mikrokernel-Architekturen | ||||||
| 
 |  | ||||||
|     \begin{itemize*} |     \begin{itemize*} | ||||||
|         \item Geht man vom Typ-1-HV noch einen Schritt weiter ... |         \item entfernt alle sensiblen Instruktionen aus Gast-Betriebssystem... | ||||||
|  |         \item ersetzt durch Hypervisor-Aufrufe, um Systemdienste zu nutzen... | ||||||
|  |         \item hat man praktisch den Hypervisor in Mikrokernel transformiert | ||||||
|  |         \item ... das wird schon gemacht: $L^4$Linux (TU Dresden) | ||||||
|         \begin{itemize*} |         \begin{itemize*} | ||||||
|             \item und entfernt alle sensiblen Instruktionen aus Gast-Betriebssystem ... |             \item Basis: stringente $L^4\mu$ Kernel-Implementierung %(Typ-1-HV-artiger Funktionsumfang) | ||||||
|             \item und ersetzt diese durch Hypervisor-Aufrufe, um Systemdienste wie E/A zu benutzen, ... |  | ||||||
|             \item hat man praktisch den Hypervisor in Mikrokernel transformiert. |  | ||||||
|         \end{itemize*} |  | ||||||
|         \item ... und genau das wird auch schon gemacht: $L^4$Linux (TU |  | ||||||
|         Dresden) |  | ||||||
|         \begin{itemize*} |  | ||||||
|             \item Basis: stringente $L^4\mu$ Kernel-Implementierung (Typ-1-HV-artiger Funktionsumfang) |  | ||||||
|             \item Anwendungslaufzeitumgebung: paravirtualisierter Linux-Kernel als Serverprozess |             \item Anwendungslaufzeitumgebung: paravirtualisierter Linux-Kernel als Serverprozess | ||||||
|             \item Ziele: Isolation (Sicherheit, Robustheit), Echtzeitfähigkeit durch direktere HW-Interaktion (vergleichbar Exokernel-Ziel) |             \item Ziele: Isolation, Echtzeitfähigkeit durch direktere HW-Interaktion %(vergleichbar Exokernel-Ziel) | ||||||
|         \end{itemize*} |         \end{itemize*} | ||||||
|     \end{itemize*} |     \end{itemize*} | ||||||
| 
 | 
 | ||||||
|     Zwischenfazit Virtualisierung |     \subsubsection{Zwischenfazit Virtualisierung} | ||||||
|  |     Ziele: Adaptivität komplementär zu | ||||||
|  |     \begin{description*} | ||||||
|  |         \item[Wartbarkeit] ökonomischer Betrieb ohne dedizierte Hardware | ||||||
|  |         \item[Sicherheit] von nichtvertrauenswürdigen Anwendungen isoliert | ||||||
|  |         \item[Robustheit] Fehler in VMs beeinträchtigen nicht andere VMs | ||||||
|  |     \end{description*} | ||||||
| 
 | 
 | ||||||
|  |     Idee: drei gängige Prinzipien | ||||||
|  |     \begin{description*} | ||||||
|  |         \item[Typ-1-HV] unmittelbares HW-Multiplexing, trap-and-emulate | ||||||
|  |         \item[Typ-2-HV] HW-Multiplexing auf Basis eines Host-OS, binarytranslation | ||||||
|  |         \item[Paravirtualisierung] Typ-1-HV für angepasstes Gast-OS, kein trap-and-emulate nötig $\rightarrow$ HV ähnelt $\mu$Kern | ||||||
|  |     \end{description*} | ||||||
|  | 
 | ||||||
|  |     Ergebnisse | ||||||
|     \begin{itemize*} |     \begin{itemize*} | ||||||
|         \item Ziele: Adaptivität komplementär zu... |         \item[\cmark] VMs mit individuell anpassbarer Laufzeitumgebung | ||||||
|         \begin{itemize*} |         \item[\cmark] isolierteVMs | ||||||
|             \item Wartbarkeit : ökonomischer Betrieb von Cloud-und Legacy-Anwendungen ohne dedizierte Hardware |         \item[\cmark] kontrollierbare VM-Interaktion (untereinander und mit HW) | ||||||
|             \item Sicherheit : sicherheitskritische Anwendungen können vollständig von nichtvertrauenswürdigen Anwendungen (und untereinander) isoliert werden |         \item[\xmark] keine hardwarespezifischen Optimierungen aus VM heraus möglich $\rightarrow$ Performanz, Echtzeitfähigkeit, Sparsamkeit | ||||||
|             \item Robustheit : Fehler in VMs (= Anwendungsdomänen) können nicht andere VMs beeinträchtigen |  | ||||||
|         \end{itemize*} |  | ||||||
|         \item Idee: drei gängige Prinzipien: |  | ||||||
|         \begin{itemize*} |  | ||||||
|             \item Typ-1-HV: unmittelbares HW-Multiplexing, trap-and-emulate |  | ||||||
|             \item Typ-2-HV: HW-Multiplexing auf Basis eines Host-OS, binarytranslation |  | ||||||
|             \item Paravirtualisierung: Typ-1-HV für angepasstes Gast-OS, kein trap-and-emulate nötig $\rightarrow$ HV ähnelt $\mu$Kern |  | ||||||
|         \end{itemize*} |  | ||||||
|         \item Ergebnisse: |  | ||||||
|         \begin{itemize*} |  | ||||||
|             \item[\cmark] VMs mit individuell anpassbarer Laufzeitumgebung |  | ||||||
|             \item[\cmark] isolierteVMs |  | ||||||
|             \item[\cmark] kontrollierbare VM-Interaktion (untereinander und mit HW) |  | ||||||
|             \item[\xmark] keine hardwarespezifischen Optimierungen aus VM heraus möglich $\rightarrow$ Performanz, Echtzeitfähigkeit, Sparsamkeit! |  | ||||||
|         \end{itemize*} |  | ||||||
|     \end{itemize*} |     \end{itemize*} | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     \subsection{Container} |     \subsection{Container} | ||||||
| 
 |  | ||||||
|     Ziele: |     Ziele: | ||||||
| 
 |  | ||||||
|     \begin{itemize*} |     \begin{itemize*} | ||||||
|         \item Adaptivität , im Dienste von ... |         \item Adaptivität , im Dienste von ... | ||||||
|         \item ... Wartbarkeit: einfachen Entwicklung, Installation, Rekonfiguration |         \item ... Wartbarkeit: einfachen Entwicklung, Installation, Rekonfiguration | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user