Читать книгу ICT-Virtualisierung - Johann Widmer - Страница 22
1.6.Aufruf von Prozessor-Befehlen
ОглавлениеEs gibt nicht privilegierte und privilegierte Befehle im Befehlssatz von Prozessoren. Der Aufruf von privilegierten Befehlen muss einen Sprung ins Betriebssystem (Trap, Unterbrechung) auslösen. Es gibt privilegierte Befehle, die dürfen nur im Kernelmodus ausgeführt werden, wobei diese einen Trap ins Betriebssystem bewirken.
Es gibt in Prozessoren noch eine Kategorie „sensitiven Befehle” welche zustandsverändernd (z.B. Zugriff auf I/O-Geräte oder die MMU oder auf Statusregister) sind und auch nur im Kernelmodus ausgeführt werden.
Kritische Befehle sind privilegierte Befehle, die im Usermodus keinen Trap (Ausnahme) auslösen
In der x.86 Architektur gibt es ca. 17 von 250 Befehlen, die bezüglich der Virtualisierung als kritisch zu bezeichnen sind. Dies sind zum Beispiel:
GDT (Store Global Descriptior Table)
Stackzugriff mit PUSHF und POPF, usw
Um sicher zu stellen, dass insbesondere in virtualisierten Umgebungen nicht dauernd das System stürzt, wird das sogenannte „Code Patching” oder Binärübersetzung (Binary Translation) eingesetzt. Das heisst, dass kritische Befehle vor der Ausführung, also z.B. beim Starten eines Programms durch den Hypervisor erkannt und ausgetauscht werden. Diese ausgetauschten Befehle führen einen Sprung in den Hypervisor aus, wo eine Emulation der kritischen Befehle erfolgen kann, wodurch trotz der Schwächen der x86-Architektur eine vollständige Virtualisierung erreicht werden kann.
Mit diesem Wissen untersuchen wir nun die verschiedenen Virtualisierungsansätze und Konzepte: Vollständige Virtualisierung, Paravirtualisierung, Hardware-Virtualisierung, Betriebssystem-Virtualisierung, Speicher-Virtualisierung, Netzwerk-Virtualisierung.
1 Siehe ISO-Website: http://www.iso.org/iso/home/search.htm?qt=2382&sort=rel&type=simple&published=on
2 Das Konzept der Maschine des Herrn von Neumann findet sich auch in “Embedded Systems” wie Waschmaschinensteuerungen, Industriecomputern oder in Routern, Switches und anderen modernen Computern. Selbstverständlich ist diese heute im Einsatz stehende Hardware stark weiterentwickelt worden. Von Neumann Maschinen sind Single Instruction, Single Data Architekturen.
3 Zum Beispiel Stackrechner, Rechner mit Assoziativspeicher oder Parallelrechner
4 Der Prozessor wird oft fälschlicherweise CPU genannt – die CPU besteht aus Prozessor (Steuer- und Rechenwerk), Speicherwerk und Ein-/Ausgabewerk.
5 Die ersten PCs arbeiteten mit 8 Bit Worten. Neuere Rechner (und somit auch die Betriebssysteme) arbeiten mit 64 Bit Worten. Die Busse dieser Maschinen müssen demnach auch entsprechend breit ausgelegt sein und bestehen heute aus 64 parallelen Datenleitungen.
6 Der Prozessor muss deshalb so genau beschrieben werden, weil sich die Befehle der einzelnen Prozessoren in der Regel voneinander unterscheiden. Der Befehlssatz des Z80 oder 8080 ist somit nicht ganz genau gleich wie derjenige des proprietären Game Boy Prozessors.
7 ASSEMBLER wird benutzt, um sehr schnelle aber einfache Programme zu schreiben. ASSEMBLER ist schwierig zu benutzen, weil keine einfachen Entwicklungsumgebungen eingesetzt werden können.
8 Befehlsphase, instruction fetch.
9 Befehlsausführungsphase, instruction execution
10 Z.B. das Berechnen von Werten aus Messresultaten, Schreiben eines Textes und Darstellen in einem bestimmten Format, Zeichnen einer Linie und Ausgeben auf einem Drucker.
11 Hier ist mit Editor ein Texteditor gemeint, der es erlaubt, einen einfachen, unformatierten Text abzuspeichern.
12 Die Rolle des Betriebssystems als Zwischenglied zwischen den Anwenderprogrammen und der Hardware wird an dieser Stelle aus Gründen der Anschaulichkeit weggelassen und erst weiter hinten erklärt.
13 Eingabewerte können Tastatureingaben, Werte aus Tabellen oder Mausklicks sein.
14 Eine genauere Betrachtung einer weiteren Variante, den Interpretern, folgt weiter hinten.
15 Es ist nicht möglich, dass ein Compiler für den Motorola Prozessor im Macintosh Rechner einen Code erzeugt, der auch auf Intel basierten Rechnern lauffähig ist.
16 z.B. Textprogramme auf PCs, Wachmaschinen-Ablaufprogramme, Handy-Benutzerfunktionen
17 Beispielsweise die oben dargestellte PC Platine in Bild 4.
18 Kleine Programme, die es dem Betriebssystem oder der Applikation ermöglichen die Funktionen der Hardware anzusprechen.
19 Zur Klärung der Begriffe wird wird hier die Harddisk mit den dazugehörenden Treibern verwendet.
20 Die sogenannten magnetischen Domänen.
21 IDE: Integrated Device Electronics Bus, ein PC- (und Workstation-) Interface, für den Anschluss von Harddisks.
SCSI: Small Computer Systems Interface, eine PC und Workstation-Schnittstelle zum Anschluss von Harddisks aber auch Scannern und anderen Peripheriegeräten.
22 Dies wären z.B. die IDE oder SCSI-Treiber.
23 Logische Unterteilung der Platten. Den logischen Partitionen werden die Laufwerksbuchstaben C:, D:, ... (DOS, Windows) oder hda1, sda1, ... in Unix zugeordnet. Für praxisorientierte Angaben soll der geneigte Leser im Internet oder der einschlägigen Fachliteratur nachschauen.
24 Schreibbar machen der Partitionen. Es wird dabei das Dateisystem erstellt (z.B. FAT32, NTFS bei Windows oder ext2, Reiser, Journaling FS unter Linux)
25 Diese Betriebssystemkomponenten liegen als Software vor. Man nennt diese Software auch Kernel. Ein Kernel besteht aus einigen oder allen der hier genannten Grund-Komponenten. Die verschiedenen Ausprägungen der Kernel in den verschiedenen Betriebssystemen werden weiter hinten genauer beschrieben.
26 Dies fehlte bei der von Neumann Maschine und stellt einen grosen Nachteil dieser Maschine dar. Nur das OS/2 von IBM nutzt noch den Ring 2 für hardwarenahe Geräte wie z.B. Grafikkarten, respektive deren Treiber – alle anderen Betriebssysteme nutzen nur die Ringe 0 und 3.