190 likes | 332 Views
Janos. Patrick Tullmann Flux Research Group University of Utah. Janos JVM. Extend Java virtual machine Support OS-like processes Fine-grained resource controls Flexible system Run on OSKit == Active Node Run as Unix process == Java OS. Ex: Network Administration. MCI. Attacker.
E N D
Janos Patrick Tullmann Flux Research Group University of Utah
Janos JVM • Extend Java virtual machine • Support OS-like processes • Fine-grained resource controls • Flexible system • Run on OSKit == Active Node • Run as Unix process == Java OS
Ex: Network Administration MCI Attacker Victim AT&T
A Current Approach • MCI’s Denial of Service Tracker (DoSTrack) • DoSTrack walks “upstream” following the trail to the attacker • Shortcomings of DoSTrack • Only works in the MCI administrative domain • Requires a Cisco router and Perl5
An Active Network Approach 1. Install extensible system on each router Safe language system 2. Add infrastructure to separate tasks Who & what is executing 3. Add support for hierarchical resource controls Packet Forwarding MCI Other AT & T
Motivation • Java Virtual Machine provides: • Safety • Platform independence • Active Node OS needs: • Multiple “user” management • Resource management • Flexible & extensible control
Approach • Traditional OS a good model • Hardware provides safety mechanism • OS provides management • Fluke OS nested process model
Nested Process Model • Hierarchical • Environment of process controlled by parents • Parent can manage all, few, or no resources of child • Any process can create sub-processes AltaVirtual Machine Untrusted Container Trusted Container Root Task Admin Component
Mapping an OS into Java • Type safety replaces hardware page protections • Bytecodes replace simple instructions • Native methods replace privileged instructions • All higher-level abstractions are equivalent
JavaOS Prototype: Alta • Supports Fluke features for process management • Mimics Fluke structure • Provides parent process with control • No CPU controls • Maintains backwards compatibility • Existing Java apps work (JDK 1.0)
JavaOS Prototype: Alta • Maintains “whole JVM” illusion • Per-process, flexible typespaces • Inter-process sharing • Sharing & resource control
User-level Sharing • Child allocates -> Parent references • Harmless. If parent dies then child dies • Useful. Child can pass IPC arguments • Sibling allocates -> Sibling references • Allowable. Parent trades communication costs for separation • Parent allocates -> Child references • Standard server behavior • Cannot deallocate without child’s cooperation
Alta vs. Fluke • Use similar internal organization • Both implement a “red line” [Back 1999] • Fully preemptible kernel • Alta allows kernel / user data sharing • Performance is weak • Improve Java • Improve structure of Alta
Contributions • Prototype demonstrates applicability of OS abstractions to Java • The Fluke NPM with a different protection mechanism • Multiple application support in a JVM • Type-safe sharing between inconsistent typespaces
Building an Active Node • Expand resource management • CPU Inheritance Scheduling • Network access • Memory management • Shared objects • Garbage collection • Flask security architecture • Java optimizations and improvements
Memory: GC & Sharing • CPU time for GC • Charging for shared objects
Java Optimization • Memory management • Stack allocation • Non-GC processes • Optimized/restricted environments • Java code on the fast-path
Extend to EE • Provide resource controls in ANTS • CPU • Network • Memory • Challenges in applying to ANTS • Per-protocol • Subdivision of resources
the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end the end