Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 12

On Kernel Construction

Jochen Liedtke
GMD German National Research Center for Information Technology

15th ACM Symposium on Operating System Principles (SOSP) December 3-6, 1995

-kernels advantages &


Early -kernels: Brinch Hansens (1970) and Hydra (1974) -kernel idea Advantages
More modular system structure Server fault isolation (independence) More flexible and tailorable

problems
Most existing -kernels have bad performance Bad performance Restricted flexibility Believed-to-be causes
Increased used-kernel and address-space switches

But performance studies are kernelspecific

Liedtkes Thesis
A -kernel does the job IF Properly designed and Carefully implemented Minimality Elegance Architectural integration

Efficiency Flexibility

Roadmap

Primitives that -kernels must implement Achievable flexibility Achievable performance Cost: no portability!

Primitives in a -kernel
Determining criterion: functionality
A concept is OK inside the -kernel if left outside would prevent implementation of the systems required functionality

Assume
System must support interactive and/or not completely trustworthy apps Hardware implements page-based VM

System must support


Independence Integrity

Primitives: address spaces


Address space: mapping that associates each virtual page to a physical page Why is this needed inside? Basic operations
Grant, map, flush

Primitives: Threads and IPC


Thread: an activity executing inside an address space Why is this needed inside? so cross-address (aka IPC) Note that grant and map need IPC

Primitives: Unique identifiers


UIDs for threads or tasks or comm. channels Why are uid required? Cryptography as an alternative

Flexibility
Memory manager: a server managing the initial address space is a classical MM Device driver: a process which directly access I/O ports mapped into its address space and receives messages from HW through IPC (interrupts) Remote comm.: devices drivers access comm. HW, server translated local messages to external comm. protocols Unix server: implemented by IPC

Performance
Cost of kernel-user mode switches: implementation problem Cost of address-space switches: implementation problem Memory system degradation is not inherent to the approach

Non-Portability
Portable -kernels
Cannot take advantage, Nor circumvent performance problems of specific hardware Additional layer cost in performance

Lack of portability goes beyond code


Algorithms and internal concepts

-kernels are the processor dependent basis for portable OSs

You might also like