Title: Microkernels
1Microkernels
- The microkernel is the only software executing at
the most privileged level (supervisor or kernel
mode). - Actual operating system services, such as device
drivers, protocol stacks, file systems and user
interface code are contained in user space. - 1http//en.wikipedia.org/wiki/Microkernel
2Essential features Minimality
- A Microkernel must include some core features
- some mechanisms for dealing with address spaces
- managing memory protection
- execution abstraction to manage CPU allocation
- typically threads or scheduler activations
- inter-process communication
- required to invoke servers running in their own
address spaces. - Liedtke's minimality principle
- A concept is tolerated inside the microkernel
only if moving it outside the kernel, i.e.,
permitting competing implementations, would
prevent the implementation of the system's
required functionality.
3L4s Architectural Features
- Separation of API and ABI
- Virtual Registers
- SuperFast IPC
- L4 provides Very Limited, Extremely Flexible and
Powerful set of mechanisms - Threads, Address
Spaces, IPC, Mapping - IPC is mainly used for synchronization and
signalling of threads executing within the same
address space. IPC can then be performed
completely in user mode avoiding the overhead
induced by the two unnecessary privilege level
changes.
4Features Contd.
- Multiprocessor Support
- Load balancing, Scheduling decisions are purely
user-level based, thus supports implementation of
arbitrary processor allocation policies. - Multiprocessor support exists for IA32, IA64
systems. - Interrupts
- Abstracts system interrupts as kernel threads and
interrupt delivery as IPC.
5L4 Installation Process on IA-32
- Building L4
- Stage 1 Building the Kernel
- Specify a BUILDDIR, Configure the kernel and
Build it. - Need to enable Keyboard in configuration
- Stage 2 Building User Level Code
- Create Build Directory, Call user level codes
configuration from there and Build it. - Provide the install and kernel directories
- Copy kernel to the l4ka-pistachio/ia32-user-instal
l/libexec/l4/ - Booting and Running
- Collect all the files in a directory, Prepare Grub
6Program Worked With
- Pingpong program that serves as the Root task
- Root task is first task started at boot time
- Can perform privileged system calls.
- Controls access to resources managed by PSCs.
- Gives options to select from like Inter AS IPC,
Intra AS IPC, etc. and prints the number of
cycles used in the selected option - Added an option 0 Show Message which when used
displays Hello World! - This implies we can make programs that could take
input from Keyboard and respond
7Studied Paper The Performance of
µ-Kernel-Based SystemsH.Härtig, M.Hohmuth ,
J.Liedtke, S.Schönberg , J.Wolter
- Overview
- Research on pure µ-Kernel systems was abandoned
due to Poor performance exhibited by such systems
constructed in the 1980's and early 1990s - 2nd Generation µ-Kernels like L4 and QMU were
designed from scratch, focus on minimality - Goal - To show that µ-kernel based systems are
usable in practice with good performance. - Experiments
- Linux, was adapted to run as user-level single
server on top of L4 - Three further experiments to show the
extensibility of the system - Platform Independence Testing - the µ-kernel was
reimplemented from scratch on an Alpha 21164,
preserving the original L4 interface.
8Performance Measurement of L4Linux
- MicroBenchmarks
- getpid, the shortest Linux system call, was
examined. - The measurements were obtained using the cycle
counter register of the Pentium processor - L4Linux needs approximately 300 cycles more than
native Linux
getpid system call costs
Cycles spent for getpid in L4Linux
2 The Performance of µ-Kernel-Based
SystemsH.Härtig, M.Hohmuth , J.Liedtke,
S.Schönberg , J.Wolter
9Performance Measurement of L4Linux
- MacroBenchmarks
- measured the time needed to recompile the Linux
server - L4Linux was 6-7 slower than native Linux but
10-20 faster than both MkLinux versions.
2 The Performance of µ-Kernel-Based
SystemsH.Härtig, M.Hohmuth , J.Liedtke,
S.Schönberg , J.Wolter
10Performance Measurement of L4Linux
- MacroBenchmarks
- using the commercial AIM multiuser benchmark
suite VII.
2 The Performance of µ-Kernel-Based
SystemsH.Härtig, M.Hohmuth , J.Liedtke,
S.Schönberg , J.Wolter
11Extensibility Testing
- IPC can be implemented significantly faster in a
µ-kernel environment than in classical monolithic
systems. But, applications have to be rewritten
to make its use.
2 The Performance of µ-Kernel-Based
SystemsH.Härtig, M.Hohmuth , J.Liedtke,
S.Schönberg , J.Wolter
12Analysis
- The current implementation of L4Linux comes
reasonably close to the behavior of native Linux,
even under high load. Typical penalties range
from 5 to 10. - Both macro and microbenchmarks clearly indicate
that the performance of the underlying µ-kernel
matters. - The added value the µ-kernel gives us. Enables
specialization and buys us extensibility - i. e., permits the orthogonal implementation of
new services and policies that are not covered by
and cannot easily be added to a conventional
workstation OS.
13Task for the semester
- Porting L4 to ARM Platform
- Providing device driver for USB Camera
- Adding File-System Support