Hot Topics in OS Research Andy Wang COP 5611 Advanced Operating Systems Some Hot Areas Safely executing untrusted code File and storage systems Ubiquitous computing Virtual machine environments Reliability Safely Executing Untrusted Code Type-safe languages Virtual machines Verified code File and Storage Systems Very large-scale file systems Reliability Performance vs. cost of ownership Energy consumption Very long-term storage Peer-to-peer backup system Challenges: privacy, consistency over encrypted data, fairness File and Storage Systems Some advanced tools: Rabin fingerprinting Compare-by-hash Convergent encryption Erasure code Bloom filter Search on encrypted domain Ubiquitous Computing Lots and lots of inexpensive mobile wireless devices Distributed resource sharing across untrusted domains Economic models Bartering Tickets Credits Ubiquitous Computing Distributed resource discovery Pastry, Tapestry, Chord Hypercube routing Distributed radix sort O(log(n)) O(1) lookup with clever replication Distributed access control models Peer-to-peer coordination Ubiquitous Computing Constrained resources CPU Memory, disk Variable bandwidth Energy Cannot afford strong security measures Battery density approaches that of a grenade Sensor networks Ubiquitous Computing E-commerce How to authenticate with unknown servers? How to make e-cash anonymous, transferable, non-traceable, and nonforgeable? How to prevent free-rides? How to provide micropayments? Virtual Machine Environments OS support for efficient executions Parasitic virtualization Reliability Running device drivers in isolated kernel address spaces Static code analysis for common programming errors Soft-state-only systems, designed to crash Reliability Use computational dependencies to locate failures Secure hardware to certify software General security Revisiting Existing Designs Path Capriccio Vertical paths vs. layers Event-based scheduling Threads with linked stacks to conserve storage Conquest Lots of RAM Introspective Computing Self-administration Configuration, optimization, evolution Exploit contextual information Autonomous computing Automatically detect and repair system problems Performance Rewrite binaries for smaller memory footprint Use compiler to cluster and issue bulk system calls Download user-level binaries into the kernel