What are the overall characteristics of a microkernel?
What are the downsides of microkernels?
Goals of extensibility
To be able to be:
Previous approaches to extensibility
What was SPIN’s approach to extensibility?
Use language features to extend OS
Language used was Modula-3
What are the characteristics of SPIN?
How is SPIN customizable?
- Just need to specify: start, create, resolve, combine
What are SPIN extensions?
What are program discontinuities?
How does SPIN handle program discontinuities?
Passes program discontinuities to library OS as events through event handlers/procedure calls
Doing so avoid context switches
What do core services do in SPIN?
- Does involve stepping outside the language to control hardware resources
What are core services in SPIN?
- CPU scheduling (app level, processor level, global)
What sorts of services does SPIN require definition for for memory management?
What sorts of services does SPIN require definition for for CPU management?
How does SPIN handle protection?
Through extensions. Extensions to core services only affect the applications that use the extension
What does SPIN achieve in terms of extensibility, protection and performance?
- Is flexible/extendible
What is Exokernel’s approach to extensibility?
Uncouples authorization from use
How does Exokernel achieve extensibility?
Secure bindings:
How are Exokernel secure bindings implemented?
How does software caching work within the context of Exokernel?
Each library OS has a “shadow” TLB to reduce start up penalty
How does Exokernel handle memory management?
How does Exokernel handle CPU scheduling?
How does Exokernel revoke resources?
How often do addresses get translated in Exokernel?
On every memory access on CPU
The CPU deals with translating virtual addresses to physical addresses