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