The agony of choice - the diversity of microkernels in Genode

Transcription

The agony of choice - the diversity of microkernels in Genode
The agony of choice - the diversity of
microkernels in Genode
Stefan Kalkowski
Outline
1. Advantages of diversity
Motivation
Code quality
Handling the multeity
2. Porting Genode to a kernel
What is needed
Course of action
Conclusion
The agony of choice - the diversity of microkernels in Genode
2
Multi-Dimensional Feature Space
The agony of choice - the diversity of microkernels in Genode
3
Get All-Inclusive
The agony of choice - the diversity of microkernels in Genode
4
Convenient Developing Under Linux
The agony of choice - the diversity of microkernels in Genode
5
Develop For One, Debug With Another
The agony of choice - the diversity of microkernels in Genode
6
Problem Localization
The agony of choice - the diversity of microkernels in Genode
7
Outline
1. Advantages of diversity
Motivation
Code quality
Handling the multeity
2. Porting Genode to a kernel
What is needed
Course of action
Conclusion
The agony of choice - the diversity of microkernels in Genode
8
Enhanced Code Quality
The agony of choice - the diversity of microkernels in Genode
9
Essential Principles
Low complexity
The agony of choice - the diversity of microkernels in Genode
10
Essential Principles
Low complexity
Strive for a narrow API
The agony of choice - the diversity of microkernels in Genode
10
Essential Principles
Low complexity
Strive for a narrow API
Unify wherever possible, avoid code duplication
The agony of choice - the diversity of microkernels in Genode
10
Essential Principles
Low complexity
Strive for a narrow API
Unify wherever possible, avoid code duplication
No premature optimization
The agony of choice - the diversity of microkernels in Genode
10
Component’s Lifecycle
The agony of choice - the diversity of microkernels in Genode
11
Timer - An Unfinished Example
The agony of choice - the diversity of microkernels in Genode
12
Timer - Introducing Pistachio
The agony of choice - the diversity of microkernels in Genode
13
Timer - Introducing OKL4
The agony of choice - the diversity of microkernels in Genode
14
Timer - Introducing NOVA
The agony of choice - the diversity of microkernels in Genode
15
Timer - Change API
The agony of choice - the diversity of microkernels in Genode
16
Outline
1. Advantages of diversity
Motivation
Code quality
Handling the multeity
2. Porting Genode to a kernel
What is needed
Course of action
Conclusion
The agony of choice - the diversity of microkernels in Genode
17
The Dark Side Of The Force
Plethora of tools needed
The agony of choice - the diversity of microkernels in Genode
18
The Dark Side Of The Force
Plethora of tools needed
Knowledge of build-systems required
The agony of choice - the diversity of microkernels in Genode
18
The Dark Side Of The Force
Plethora of tools needed
Knowledge of build-systems required
How to boot the system
The agony of choice - the diversity of microkernels in Genode
18
The Dark Side Of The Force
Plethora of tools needed
Knowledge of build-systems required
How to boot the system
Unmaintained software
The agony of choice - the diversity of microkernels in Genode
18
The Dark Side Of The Force
Plethora of tools needed
Knowledge of build-systems required
How to boot the system
Unmaintained software
Solution: unify toolchain + convenience tools
The agony of choice - the diversity of microkernels in Genode
18
Demo
Short demo ...
The agony of choice - the diversity of microkernels in Genode
19
Run-Scripts
The agony of choice - the diversity of microkernels in Genode
20
Outline
1. Advantages of diversity
Motivation
Code quality
Handling the multeity
2. Porting Genode to a kernel
What is needed
Course of action
Conclusion
The agony of choice - the diversity of microkernels in Genode
21
Goal
The agony of choice - the diversity of microkernels in Genode
22
Kernel-Specific Parts
The agony of choice - the diversity of microkernels in Genode
23
IPC Framework
The agony of choice - the diversity of microkernels in Genode
24
IPC Framework
The agony of choice - the diversity of microkernels in Genode
25
IPC Framework
The agony of choice - the diversity of microkernels in Genode
26
Threads, Protection Domains, Pager
The agony of choice - the diversity of microkernels in Genode
27
Lock
The agony of choice - the diversity of microkernels in Genode
28
Platform Information
Parse kernel + bootloader info
Platform specific compile-time knowledge
The agony of choice - the diversity of microkernels in Genode
29
Platform Information
Parse kernel + bootloader info
Platform specific compile-time knowledge
Sizing allocators and databases for
I
I
I
I
RAM
ROM modules
IRQ numbers
I/O memory (and ports)
The agony of choice - the diversity of microkernels in Genode
29
Things Left
Interrupts
Timer
Signals
The agony of choice - the diversity of microkernels in Genode
30
Effort: Kernel-Specific LOC
The agony of choice - the diversity of microkernels in Genode
31
What Benefit Do I Have?
The agony of choice - the diversity of microkernels in Genode
32
What Benefit Do I Have?
The agony of choice - the diversity of microkernels in Genode
32