Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.

Slides:



Advertisements
Similar presentations
Northwestern University 2007 Winter – EECS 443 Advanced Operating Systems Exokernel: An Operating System Architecture for Application-Level Resource Management.
Advertisements

CS533 Concepts of Operating Systems Class 14 Virtualization and Exokernels.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Exokernel: An Opertion System Architecture for Application-Level Resource Management SIGCOMM ’ 96, PDOS-MIT Presented by Ahn Seunghoon Dawson R. Engler,
Background Computer System Architectures Computer System Software.
Extensibility, Safety and Performance in the SPIN Operating System Department of Computer Science and Engineering, University of Washington Brian N. Bershad,
Extensible Kernels: Exokernel and SPIN Presented by Hakim Weatherspoon (Based on slides from Edgar Velázquez-Armendáriz and Ken Birman)
Extensible Kernels Edgar Velázquez-Armendáriz September 24 th 2009.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
CS533 Concepts of Operating Systems Class 7 Virtualization and Exokernels.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr.
CS533 Concepts of Operating Systems Class 16 Exokernel.
1: Operating Systems Overview
Dawson R. Engler, M. Frans Kaashoek, and James O'Tool Jr.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
1 Extensible Kernels Ken, with slides by Amar Phanishayee.
Extensibility, Safety and Performance in the SPIN Operating System Dave Camarillo.
Microkernels: Mach and L4
Figure 1.1 Interaction between applications and the operating system.
Dawson Engler, Frans Kaashoek, James O’Toole
Extensible Kernels Mingsheng Hong. OS Kernel Types Monolithic Kernels Microkernels – Flexible (?) – Module Design – Reliable – Secure Extensible Kernels.
CS533 Concepts of OS Class 16 ExoKernel by Constantia Tryman.
1 Extensible Kernels Amar Phanishayee. 2 Traditional OS services – Management and Protection Provides a set of abstractions Processes, Threads, Virtual.
M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Hector M. Bricefio, Russell Hunt, David Mazikres, Thomas Pinckney, Robert Grimm, John Jannotti.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
Protection and the Kernel: Mode, Space, and Context.
Operating System Architectures
APPLICATION PERFORMANCE AND FLEXIBILITY ON EXOKERNEL SYSTEMS M. F. Kaashoek, D. R. Engler, G. R. Ganger H. M. Briceño, R. Hunt, D. Mazières, T. Pinckney,
Paper by Engler, Kaashoek, O’Toole Presentation by Charles Haiber.
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
CS533 Concepts of Operating Systems Jonathan Walpole.
Operating System Architectures
Extensibility, Safety and Performance in the SPIN Operating System Ashwini Kulkarni Operating Systems Winter 2006.
1 Micro-kernel. 2 Key points Microkernel provides minimal abstractions –Address space, threads, IPC Abstractions –… are machine independent –But implementation.
Exokernel: An Operating System Architecture for Application-Level Resource Management" by Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr. Chris.
The Performance of Microkernel-Based Systems
Processes Introduction to Operating Systems: Module 3.
MIT’s Exokernel Presented by Victoria Barrow Kyle Safford Sean Sommers.
Chapter 2 Introduction to OS Chien-Chung Shen CIS, UD
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
4-Dec-15CSE 60641: Operating Systems1 -Exokernel: an operating system architecture for application-level resource management. Dawson R. Engler, M. Frans.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Overview of the MIT Exokernel Operating System James Madison University CS 450 Abzug MWF 10:10-11:00 12/2/02 Steven Petzinger Billy Lehner.
Advanced Operating Systems (CS 202) Extensible Operating Systems Jan, 11, 2016.
Advanced Operating Systems (CS 202) Extensible Operating Systems (II) Jan, 13, 2016.
Exokernel: An Operating System Architecture for Application-Level Resource Management By Dawson R. Engler, M. Frans Kaashoek, James O’Toole Jr. Presented.
Chapter 6 Limited Direct Execution Chien-Chung Shen CIS/UD
Exokernel Operating System: An Introduction Liming Shu COSC 513, Summer 2002.
Exokernel: An Operating System Architecture for Application-Level Resource Management by Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr. Presented.
Extensible OSes Exokernel and SPIN (Lecture 9, cs262a)
Chapter 1: Introduction
Operating System Structure
KERNEL ARCHITECTURE.
Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr [SOSP’97]
Modern Systems: Extensible KERNELS AND containers
EXOKERNEL Gabriel Beltran John Blackman David Martin Kurt Rohrbacher
Modern systems: Extensible Kernels and Containers
Advanced Operating Systems (CS 202) Operating System Structure
Presentation transcript:

Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T. Laboratory for Computer Science Cambridge, MA 02139, U.S.A { engler, kaashoek, lcs.mit.edu

Defining an OS Interface between applications and physical resources Traditionally, machine resources are hidden in abstractions  Processes, files, address spaces, IPC, etc.  Hard-coded – can't be replaced/modified Bad design  applications denied domain-specific optimizations  discourages changes to abstractions  restricts flexibility of application builders

Application-level Resource Management Abstractions implemented by untrusted software Exokernel: a minimal kernel that exports resources via a low-level interface, up to a library OS Goal: separate protection from management  Virtual machine for each application Heavy performance penalties  Exporting resources Techniques: secure binding, visible resource revocation, abort protocol

Exokernel Implementation Aegis (exokernel) & ExOS (library OS)  Designed using 3 above techniques  Efficiency of kernel (limited primitives)  Efficiency at app. Level w/ flexibility  Low overhead of secure multiplexing Protected control transfer – 7x faster Exception dispatch – 5x faster

What's the Motivation? Past: Centralized management via abstractions  Implemented by privileged software  No specialization, extensibility, replacement  Cost: Overly General Hurts application performance Hides information Limits functionality Pro: End-to-End Argument

Example of Exokernel

Library OS Abstractions can be more specialized Not trusted by kernel – free to trust apps Mostly runs in user address space – fewer kernel crossings Portable  Library interfaces & the Library OS itself Backwards compatibility

Exokernel Design Goal: freedom to manage, protection from failure Central Principle: securely expose hardware (avoid resource management)  Expose allocation  Expose names  Expose revocation

Secure Bindings Protection mechanism to separate resource authorization from usage Authorization at bind time, once A set of primitives used by apps for access checks 3 Methods to implement:  Hardware mechanisms  Software caching  Downloading application code

Visible Resource Revocation Taking back resources, breaking the bindings Traditionally invisible to application code  Faster  Library OS has no knowledge of resource scarcity Most exokernel revocations are visible  Visible naming requires it

Abort Protocol When a library OS fails to give up a resource  Already asked once nicely, again with time limit Break existing secure bindings to the resource, inform the library OS Small number of vital resources will not be repossessed  If they are, library receives an emergency exception

But enough about Theory...Show me pictures!

Aegis Implementation Processor is time sliced, by timer interrupts Processor environment stores resource event info Base cost for system calls and exceptions much lower than Ultrix – Aegis doesn't map data structures All hardware exceptions (except system calls) dispatched to applications - very efficient speeds Address Translation – guaranteed mappings Protected Control Transfer – sub-IPC mechanism Dynamic Packet Filter – creation of executable code at runtime

More pictures!!

ExOS Implementation OS abstractions at app level -within address space of app using it IPC - App-level Virtual Memory-

Virtual memory operations

ASH: Application-Specific Safe Handlers Untrusted application-level message handlers downloaded into the kernel

ExOS: Extensibility for Efficiency

Related Work Hydra: separate policy from mechanism VM/370: virtualize the base machine SPIN: extensions downloaded into kernel Cache Kernel: library OS focused on reliability

Conclusion Exokernel's simple, limited # of primitives can be implemented efficiently Fast primitives means fast secure multiplexing Traditional abstractions can be efficient at app level Apps can create specific implementations of abstractions by modifying a library Therefore: Exokernel is good for extensibility and performance