![Page 1: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/1.jpg)
WIR
TS
CH
AF
TS
INF
OR
MA
TIK
WestfälischeWilhelms-Universität Münster
WIRTSCHAFTSINFORMATIK
Laufzeitumgebungen –Das Beispiel der Java Virtual Machine
Benjamin Leenen
Im Rahmen des Seminars zur Übersetzung von künstlichen Sprachen
![Page 2: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/2.jpg)
2
WIRTSCHAFTSINFORMATIK
Agenda
Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine Sicherheit Die Squawk Java Virtual Machine Fazit und Ausblick
![Page 3: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/3.jpg)
3
WIRTSCHAFTSINFORMATIK
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
InterpreterZwischenprogramm
AusgabeEingabe
Compiler
Quellprogramm
Quelle: Aho u. a., 2000
![Page 4: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/4.jpg)
4
WIRTSCHAFTSINFORMATIK
Agenda
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
![Page 5: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/5.jpg)
5
WIRTSCHAFTSINFORMATIK
Die Java Virtual MachineDie Programmiersprache Java
Ziel schnelle und einfach Beherrschbarkeit Portabilität Sicherheit
Konzept: objektorientiert hoher Abstraktionsgrad primitive - und Referenzdatentypen streng getypt Bezeichner in Unicode ljava Compiler class
Gängige Java Virtual Machine (JVM): Java HotSpot VM
![Page 6: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/6.jpg)
6
WIRTSCHAFTSINFORMATIK
Agenda
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
![Page 7: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/7.jpg)
7
WIRTSCHAFTSINFORMATIK
Die Java Virtual MachineDas 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;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];
}
![Page 8: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/8.jpg)
8
WIRTSCHAFTSINFORMATIK
Die Java Virtual MachineDas class-Dateiformat (2/2)
access_flagsRegelung 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
![Page 9: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/9.jpg)
9
WIRTSCHAFTSINFORMATIK
Agenda
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
![Page 10: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/10.jpg)
10
WIRTSCHAFTSINFORMATIK
Die Java Virtual MachineSpeicherbereiche
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
![Page 11: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/11.jpg)
11
WIRTSCHAFTSINFORMATIK
Agenda
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
![Page 12: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/12.jpg)
12
WIRTSCHAFTSINFORMATIK
Die Java Virtual MachineVerifizierung 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
![Page 13: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/13.jpg)
13
WIRTSCHAFTSINFORMATIK
Agenda
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
![Page 14: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/14.jpg)
14
WIRTSCHAFTSINFORMATIK
Die Java Virtual MachineAusfü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
Initialisieren
Binden
Verifizierung Vorbereitung AuflösungLaden
Quelle: Venners, 2000
![Page 15: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/15.jpg)
15
WIRTSCHAFTSINFORMATIK
Die Java Virtual MachineAusfü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
Initialisieren
Binden
Verifizierung Vorbereitung AuflösungLaden
Quelle: Venners, 2000
![Page 16: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/16.jpg)
16
WIRTSCHAFTSINFORMATIK
Agenda
Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine Sicherheit Die Squawk Java Virtual Machine Fazit und Ausblick
![Page 17: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/17.jpg)
17
WIRTSCHAFTSINFORMATIK
Sicherheit
Hauptkomponenten der Sicherheitsarchitektur: Bytecode-Verifier Klassenlader Sicherheitsmanager
anfängliches Sicherheitsmodell: Sandbox-Modell vertrauenswürdig: Systemdomäne ansonsten: Sandbox
![Page 18: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/18.jpg)
18
WIRTSCHAFTSINFORMATIK
SicherheitAktuelles 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
![Page 19: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/19.jpg)
19
WIRTSCHAFTSINFORMATIK
SicherheitSicherheitsrisiken
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
![Page 20: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/20.jpg)
20
WIRTSCHAFTSINFORMATIK
Agenda
Motivation:
Flexible Ausführung höherer Programmiersprachen Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine Sicherheit Die Squawk Java Virtual Machine Fazit und Ausblick
![Page 21: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/21.jpg)
21
WIRTSCHAFTSINFORMATIK
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
![Page 22: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/22.jpg)
22
WIRTSCHAFTSINFORMATIK
Die Squawk Java Virtual MachineSuite Creator
Konvertierung von class- in suite-Dateien
lsuite-Datei: 38% der Größe von class-Dateien kann Klassenstrukturen umfassen hierarchisch strukturierbar Serialisierung vor Übertragung
Bytecode-Verifier
Signierung von suite-Dateien
Loader
.class/.jar
Suite Creator
Verifier
Transformer
Serializer
Digital Signer
.suite
Host
Quelle: Simon u. a., 2006
![Page 23: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/23.jpg)
23
WIRTSCHAFTSINFORMATIK
Die Squawk Java Virtual MachineGerä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
.suite
On-device VM
Interpreted VM
Java libraries
Bootloader
Native Code
Device
Quelle: Simon u. a., 2006
![Page 24: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/24.jpg)
24
WIRTSCHAFTSINFORMATIK
Agenda
Motivation:
Flexible Ausführung höherer Programmiersprachen Virtuelle Maschinen als Laufzeitumgebung Die Java Virtual Machine Sicherheit Die Squawk Java Virtual Machine Fazit und Ausblick
![Page 25: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/25.jpg)
25
WIRTSCHAFTSINFORMATIK
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
![Page 26: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/26.jpg)
26
WIRTSCHAFTSINFORMATIK
Vielen Dank für die Aufmerksamkeit
![Page 27: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/27.jpg)
27
WIRTSCHAFTSINFORMATIK
BackupDie verteilte Architektur der Squawk VM
Loader
.class/.jar
Suite Creator
Verifier
Transformer
Serializer
Digital Signer
.suite
.suite
On-device VM
Interpreted VM
Java libraries
Bootloader
Native Code
Host Device
Quelle: Simon u. a., 2006
![Page 28: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/28.jpg)
28
WIRTSCHAFTSINFORMATIK
Backup Sicherheitsarchitektur
Systemdomäne Sandboxdomäne
Policy
Domäne 1
Policy
Domäne 2
Sicherheitsstrategie
Sicherheitsmanager
C.classB.classA.classJVM
geladene Klassen
lokaler oder entfernter Code
Systemressourcen (Daten, Speicher usw.)
freier Zugriff
Quelle: Eckert, 2008
![Page 29: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/29.jpg)
29
WIRTSCHAFTSINFORMATIK
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
![Page 30: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/30.jpg)
30
WIRTSCHAFTSINFORMATIK
BackupAnwendungsbeispiele 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
![Page 31: WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK Laufzeitumgebungen – Das Beispiel der Java Virtual Machine Benjamin](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d7149795902118c4965/html5/thumbnails/31.jpg)
31
WIRTSCHAFTSINFORMATIK
Backup Code-Beispiel Isolate
Isolate isolate = new Isolate ("com.sun.spots.SelfHibernator", url());
isolate.start();send (isolate, outStream);...
Quelle: Simon u. a., 2006