Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin.

Ähnliche Präsentationen


Präsentation zum Thema: "WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin."—  Präsentation transkript:

1 WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin Leenen Im Rahmen des Seminars zur Übersetzung von künstlichen Sprachen

2 2 WIRTSCHAFTS INFORMATIKAgenda Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine Sicherheit Die Squawk Java Virtual Machine Fazit und Ausblick

3 3 WIRTSCHAFTS INFORMATIK Virtuelle Maschinen als Laufzeitumgebung Rechnerarchitektur als Software Compiler plattformunabhängiger Zwischencode (Bytecode) Ausführung durch plattformabhängige Virtuelle Maschine (VM): ­ Interpreter ­ Übersetzung beim Laden ­ Just-In-Time Compiler Quelle: Aho u. a., 2000

4 4 WIRTSCHAFTS INFORMATIKAgenda Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine ­ Die Programmiersprache Java ­ Das class-Dateiformat ­ Speicherbereiche ­ Verifizierung von class-Dateien ­ Ausführung der JVM Sicherheit Die Squawk Virtual Machine Fazit und Ausblick

5 5 WIRTSCHAFTS INFORMATIK Die Java Virtual Machine Die Programmiersprache Java Ziel ­ schnelle und einfach Beherrschbarkeit ­ Portabilität ­ Sicherheit Konzept: ­ objektorientiert ­ hoher Abstraktionsgrad ­ primitive - und Referenzdatentypen ­ streng getypt ­ Bezeichner in Unicode ­ l java Compiler class Gängige Java Virtual Machine (JVM): Java HotSpot VM

6 6 WIRTSCHAFTS INFORMATIKAgenda Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine ­ Die Programmiersprache Java ­ Das class-Dateiformat ­ Speicherbereiche ­ Verifizierung von class-Dateien ­ Ausführung der JVM Sicherheit Die Squawk Virtual Machine Fazit und Ausblick

7 7 WIRTSCHAFTS INFORMATIK Die Java Virtual Machine Das class-Dateiformat (1/2) ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count]; u2 attributes_count; attribute_info attributes[attributes_count]; } ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; constant_pool[constant_pool_count-1] cp_info constant_pool[constant_pool_count-1]; access_flags u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; fields[fields_count] field_info fields[fields_count]; u2 methods_count; methods[methods_count] method_info methods[methods_count]; u2 attributes_count; attribute_info attributes[attributes_count]; }

8 8 WIRTSCHAFTS INFORMATIK Die Java Virtual Machine Das class-Dateiformat (2/2) access_flags Regelung des Zugriffs fields[] Klassen- und Objektvariablen methods[] Auszuführender Code in: code[] constant_pool[] ­ Verweise auf Klassen, Felder und Methoden ­ symbolische Verweise in restl. class -Datei

9 9 WIRTSCHAFTS INFORMATIKAgenda Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine ­ Die Programmiersprache Java ­ Das class-Dateiformat ­ Speicherbereiche ­ Verifizierung von class-Dateien ­ Ausführung der JVM Sicherheit Die Squawk Virtual Machine Fazit und Ausblick

10 10 WIRTSCHAFTS INFORMATIK Die Java Virtual Machine Speicherbereiche JVM-abhängig ­ Heap ­ Methodenbereich Thread-abhängig ­ PC (Program Counter) Register ­ Native Methoden Stacks ­ Java Virtual Machine Stack – umfasst Frames: Variablenarray Operandenstack Verweis auf Konstantenpool

11 11 WIRTSCHAFTS INFORMATIKAgenda Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine ­ Die Programmiersprache Java ­ Das class-Dateiformat ­ Speicherbereiche ­ Verifizierung von class-Dateien ­ Ausführung der JVM Sicherheit Die Squawk Virtual Machine Fazit und Ausblick

12 12 WIRTSCHAFTS INFORMATIK Die Java Virtual Machine Verifizierung von class-Dateien (1/2) Überprüfung auf statische und strukturelle Bedingungen ­ statisch: Wohlgeformtheit ­ strukturell: gegenseitige Beziehung von Instruktionen Bytecode Verifier: ­ Aufsplitten von code[] in einzelne Bytes ­ Analyse einzelner Instruktionen Data-Flow Analyzer ­ changed-Bit für jede Instruktion 1) gehe zu Instruktion mit Bit auf 1 2) Auswirkungen auf Operandenstack und Variablenarray 3) Bestimmung aller Folgeinstruktionen 4) Zusammenführung von bisherigem und aktuellem Operandenstack und Variablenarray

13 13 WIRTSCHAFTS INFORMATIKAgenda Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine ­ Die Programmiersprache Java ­ Das class-Dateiformat ­ Speicherbereiche ­ Verifizierung von class-Dateien ­ Ausführung der JVM Sicherheit Die Squawk Virtual Machine Fazit und Ausblick

14 14 WIRTSCHAFTS INFORMATIK Die Java Virtual Machine Ausführung der JVM (1/2) Erstmalige Ausführung einer Klasse: Laden, Binden und Initialisieren notwendig Laden ­ Auslösung durch andere Klasse ­ Durchführung: Klassenlader Bootstrap-Klassenlader: Teil der JVM nutzerdefinierte Klassenlader: von extern zu laden Quelle: Venners, 2000

15 15 WIRTSCHAFTS INFORMATIK Die Java Virtual Machine Ausführung der JVM (2/2) Binden ­ Verifizierung ­ Vorbereitung: Speicherzuweisung für Klassenvariablen Initialisierung der Speicherbereiche ­ Auflösung der symbolischen Verweise Initialisieren: Zuweisung der vorgesehenen Werte zu Klassenvariablen Quelle: Venners, 2000

16 16 WIRTSCHAFTS INFORMATIKAgenda Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine Sicherheit Die Squawk Java Virtual Machine Fazit und Ausblick

17 17 WIRTSCHAFTS INFORMATIKSicherheit Hauptkomponenten der Sicherheitsarchitektur: ­ Bytecode-Verifier ­ Klassenlader ­ Sicherheitsmanager anfängliches Sicherheitsmodell: Sandbox-Modell ­ vertrauenswürdig: Systemdomäne ­ ansonsten: Sandbox

18 18 WIRTSCHAFTS INFORMATIK Sicherheit Aktuelles Sicherheitsmodell Generelle Strategie: Policy-Datei ­ Rechtevergabe abhängig von Herkunftsort und Signatur ­ Rechte: Lese-/Schreibzugriff, Verbindungsherstellung Schutzdomänen ­ Rechtevergabe an alle Klassen einer Domäne ­ Zugriff auf Systemressourcen: Systemdomäne Zugriffskontrolle ­ Access Controller im Sicherheitsmanager ­ Zugriffsüberprüfung anhand Policy-Datei ­ weitere Möglichkeit: Guarded Object

19 19 WIRTSCHAFTS INFORMATIK Sicherheit Sicherheitsrisiken nachträgliches Verändern von class -Dateien ­ Hinzufügen von Instruktionen in code[] ­ Veränderung der Zugriffsrechte in access_flags Probleme der Policy-Datei: ­ keine Überprüfung der angegebenen Herkunftsadresse ­ Policy-Datei einfach veränderbar ­ Datenbank mit Signaturen vom Nutzer zu pflegen ­ Zugriffskontrolle nur beim ersten Zugriff

20 20 WIRTSCHAFTS INFORMATIKAgenda Motivation: Flexible Ausführung höherer Programmiersprachen Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine Sicherheit Die Squawk Java Virtual Machine Fazit und Ausblick

21 21 WIRTSCHAFTS INFORMATIK Die Squawk Java Virtual Machine für kleine, portable Geräte konzipiert geringer Ressourcenanspruch größtenteils in Java geschrieben lauffähig ohne Betriebssystem – z. B. auf dem SPOT (Sun Small Programmable Object Technology) verteilte Architektur: ­ Desktoprechner: Suite Creator ­ geräteseitige VM

22 22 WIRTSCHAFTS INFORMATIK Die Squawk Java Virtual Machine Suite Creator Konvertierung von class - in suite - Dateien l suite -Datei: ­ 38% der Größe von class -Dateien ­ kann Klassenstrukturen umfassen ­ hierarchisch strukturierbar ­ Serialisierung vor Übertragung Bytecode-Verifier Signierung von suite -Dateien Quelle: Simon u. a., 2006

23 23 WIRTSCHAFTS INFORMATIK Die Squawk Java Virtual Machine Geräteseitige VM Betriebssystemfunktionen ­ Thread Scheduler ­ Behandlung von Interrupts Anwendungen als Objekte (Isolates) ­ Isolierung einzelner Anwendungen ­ gemeinsame Nutzung von VM-Ressourcen entferntes Debugging Serialisierung jedes Zustands möglich ­ Speicherung ­ direkt Übertragung an andere Squawk VM Quelle: Simon u. a., 2006

24 24 WIRTSCHAFTS INFORMATIKAgenda Motivation: Flexible Ausführung höherer Programmiersprachen Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine Sicherheit Die Squawk Java Virtual Machine Fazit und Ausblick

25 25 WIRTSCHAFTS INFORMATIK Fazit und Ausblick Zielerreichung von Java: ­ Portabilität durch Kombination von Bytecode und VM ­ Sicherheit ausgereifte Mechanismen zur Verifizierung und Zugriffskontrolle nach wie vor Verbesserungsbedarf stetiger Entwicklungsprozess ­ Verbesserung der Sicherheit ­ Entwicklungen im Bereich kleiner, portabler Geräten ­ Steigerung der Performance

26 26 WIRTSCHAFTS INFORMATIK Vielen Dank für die Aufmerksamkeit

27 27 WIRTSCHAFTS INFORMATIK Backup Die verteilte Architektur der Squawk VM Quelle: Simon u. a., 2006

28 28 WIRTSCHAFTS INFORMATIK Backup Sicherheitsarchitektur Quelle: Eckert, 2008

29 29 WIRTSCHAFTS INFORMATIK Backup Sicherheit: Policy-Datei grant codeBase "https://www.rman.com/users/bob", signedBy "Duke" { permission java.io.FilePermission "read, write","/bob/temp/*"; permission java.io.FilePermission "read","/joe/temp/"; permission java.net.SocketPermision "connect","*.rman.com"; }; grant {permission java.net.SocketPermission "localhost:1024-","listen";}; Quelle: in Anlehnung an Eckert, 2008

30 30 WIRTSCHAFTS INFORMATIK Backup Anwendungsbeispiele für SPOT Alltag: ­ SPOT am Herd ­ SPOT am Auto Warnung, wenn Auto wegfährt und Herdplatten noch heiß sind Industrielles Umfeld: ­ Sicherung von wertvollen Gütern ­ z. B. gegenseitige Containerüberwachung Alarm, wenn Container geöffnet und noch auf dem Transportweg

31 31 WIRTSCHAFTS INFORMATIK Backup Code-Beispiel Isolate Isolate isolate = new Isolate ("com.sun.spots.SelfHibernator", url()); isolate.start(); send (isolate, outStream);... Quelle: Simon u. a., 2006


Herunterladen ppt "WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin."

Ähnliche Präsentationen


Google-Anzeigen