Exokernel An Operating System Architecture for ApplicationLevel Resource

  • Slides: 28
Download presentation
Exokernel: An Operating System Architecture for Application-Level Resource Management" by Dawson R. Engler, M.

Exokernel: An Operating System Architecture for Application-Level Resource Management" by Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr. Chris Franklin CS 533 - Concepts of Operating Systems

The Problem w Traditional operating systems fix the interface and implementation of OS abstractions.

The Problem w Traditional operating systems fix the interface and implementation of OS abstractions. Applications FIXED Abstractions Interface Hardware

The Problem w Performance w Flexibility w Functionality Applications FIXED Abstractions Interface Hardware

The Problem w Performance w Flexibility w Functionality Applications FIXED Abstractions Interface Hardware

Example Traditional OS Apache FIXED SQL Server Abstractions Interface Hardware

Example Traditional OS Apache FIXED SQL Server Abstractions Interface Hardware

Example Exokernel – Application level resource management Apache Library OS Chosen from available Abstractions

Example Exokernel – Application level resource management Apache Library OS Chosen from available Abstractions Interface SQL Server Library OS Customized for SQLServer Abstractions Interface Exokernel Hardware

The Issues w Performance n Denies applications the advantages of domainspecific optimizations w Flexibility

The Issues w Performance n Denies applications the advantages of domainspecific optimizations w Flexibility n Restricts the flexibility of application builders w Functionality n Discourages changes to the implementations of existing abstractions

Performance w There is no single way to abstract physical resources or to implement

Performance w There is no single way to abstract physical resources or to implement an abstraction that is best for all applications. w OS is forced to make trade-offs w Performance improvements of applicationspecific policies could be substantial

Flexibility w Fixed high-level abstractions hide information from applications. w Makes it difficult or

Flexibility w Fixed high-level abstractions hide information from applications. w Makes it difficult or impossible for applications to implement their own resource management abstractions.

Functionality w Only one available interface between applications and hardware resources. w Because all

Functionality w Only one available interface between applications and hardware resources. w Because all applications must share one set of abstractions, changes to these abstractions occur rarely, if ever

The Solution w Separate protection from management n Allow user level to manage resources

The Solution w Separate protection from management n Allow user level to manage resources l n Application libraries implement OS abstractions Exokernel exports resources Low level interface l Protects, does not manage l Expose hardware l

End-to-End Argument w “if something has to be done by the user program itself,

End-to-End Argument w “if something has to be done by the user program itself, it is wasteful to do it in a lower level as well. ” w Why should the OS do anything that the user program can do itself? w In other words - all an OS should do is securely allocate resources.

The Exokernel w A thin veneer that multiplexes and exports physical resources securely. n

The Exokernel w A thin veneer that multiplexes and exports physical resources securely. n n Simplicity allows efficiency The lower the level of a primitive, the more efficiently it can be implemented, and the more latitude it grants to implementers of higher level abstractions.

The Exokernel w Resource management is restricted to n n allocation, revocation, sharing ownership

The Exokernel w Resource management is restricted to n n allocation, revocation, sharing ownership tracking

Library operating systems w Use the low level exokernel interface w Higher level abstractions

Library operating systems w Use the low level exokernel interface w Higher level abstractions w Special purpose implementations An application can choose the library which best suits needs, or even build its own.

Example Exokernel

Example Exokernel

Another Example

Another Example

Design Challenge How can an Exokernel allow lib. OSes to freely manage physical resources

Design Challenge How can an Exokernel allow lib. OSes to freely manage physical resources while protecting them from each other?

Design Challenge How can an Exokernel allow lib. OSes to freely manage physical resources

Design Challenge How can an Exokernel allow lib. OSes to freely manage physical resources while protecting them from each other? n n n Track ownership of resources Guard all resource usage Revoke access to resources

Track ownership of resources Secure bindings – lib. OS can securely bind to machine

Track ownership of resources Secure bindings – lib. OS can securely bind to machine resources

Secure Bindings w Exokernel allows lib. OSes to bind resources using secure bindings n

Secure Bindings w Exokernel allows lib. OSes to bind resources using secure bindings n n n Multiplex resources securely Protection for mutually distrusted apps Efficient

Secure Bindings w Secure Binding – a protection mechanism that decouples authorization from actual

Secure Bindings w Secure Binding – a protection mechanism that decouples authorization from actual use of a resource n Allows the kernel to protect resources without having to understand them

Guard all resource usage Invisible resource revocation -Efficient – application layer not involved -Traditional

Guard all resource usage Invisible resource revocation -Efficient – application layer not involved -Traditional OS Visible resource revocation -Allows lib. OS to guide deallocation and track availability of resources. -Exokernel

Revoke access to resources Abort protocol – Allows exokernel to break secure bindings of

Revoke access to resources Abort protocol – Allows exokernel to break secure bindings of an uncooperative lib. OS by force

Conclusion w An Exokernel securely multiplexes available hardware raw hardware among applications w Application

Conclusion w An Exokernel securely multiplexes available hardware raw hardware among applications w Application level library operating systems implement higher-level traditional OS abstractions w Lib. OSes can specialize an implementation to suit a particular application

Conclusion w The lower the level of a primitive… …the more efficiently it can

Conclusion w The lower the level of a primitive… …the more efficiently it can be implemented … the more latitude it gives to higher level abstractions w So, separate management from protection and… …implement protection at a low level (exokernel) … implement management at a higher level (lib. OS)

References http: //pdos. csail. mit. edu/exo. html http: //c 2. com/cgi/wiki? Exo. Kernel Modern

References http: //pdos. csail. mit. edu/exo. html http: //c 2. com/cgi/wiki? Exo. Kernel Modern Operating Systems – Andrew Tanenbaum http: //computing. breinestorm. net/aegis+exception+ultrix+resource+exceptions/ http: //128. 138. 224. 40/csci 5573 -f 03/lecture_notes/exokernel 03_files/frame. htm http: //pdos. csail. mit. edu/exo-slides/ http: //www. cs. ucf. edu/courses/cop 5611/spring 05/item/exokernel. pdf

Some Features w It is possible to have different lib. OSes, for example, one

Some Features w It is possible to have different lib. OSes, for example, one could export a Unix API and another a Windows API

Exokernel vs. Microkernel A micro-kernel provides abstractions to the hardware such as files, sockets,

Exokernel vs. Microkernel A micro-kernel provides abstractions to the hardware such as files, sockets, graphics etc. An exokernel provides almost raw access to the hardware.