introducing genode · fosdem feb 4, 2012 2 overview 1. why do we need another operating system? 2....

49
FOSDEM Feb 4, 2012 Introducing Genode Norman Feske Genode Labs

Upload: others

Post on 17-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012

IntroducingGenode

Norman FeskeGenode Labs

Page 2: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 2

Overview

1. Why do we need another operating system?

2. Genode OS architecture at a glance

3. Features of the framework

4. Showcases

5. Plans for 2012

Page 3: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 3

Genode OS Architecture

Why do we need another

operating system?

Page 4: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 4

Traditional technology, pimped up

Copyright Tessloff-Verlag / MOSAIK Steinchen für Steinchen Verlaghttp://www.mosapedia.de/wiki/index.php/Zeichnung_vom_Burgenschiff

Page 5: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 5

Traditional technology, pimped up

Copyright Tessloff-Verlag / MOSAIK Steinchen für Steinchen Verlaghttp://www.mosapedia.de/wiki/index.php/Zeichnung_vom_Burgenschiff

Page 6: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 6

We are getting there...

Work in progress

Copyright Tessloff-Verlag / MOSAIK Steinchen für Steinchen Verlaghttp://www.mosapedia.de/wiki/index.php/Burgenschiff

Page 7: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 7

We are getting there...

Security features

Work in progress

Copyright Tessloff-Verlag / MOSAIK Steinchen für Steinchen Verlaghttp://www.mosapedia.de/wiki/index.php/Burgenschiff

Page 8: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 8

We are getting there...

Security features

Work in progress

Thriving community

Copyright Tessloff-Verlag / MOSAIK Steinchen für Steinchen Verlaghttp://www.mosapedia.de/wiki/index.php/Burgenschiff

Page 9: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 9

But...

What happens in the event of

• Storm

• Fire

• Leak

• Sabotage

• Directed remote attack

?

Page 10: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 10

Genode OS architecture - Why?

Page 11: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 11

Genode OS architecture - Why?

Page 12: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 12

Bulkhead to the rescue

Page 13: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 13

Genode OS architecture - Why?

Page 14: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 14

Genode OS architecture - Why?

Page 15: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 15

Compromises

Solution is

• Rather inflexible

• Costly (additional material)

• Adding weight (overhead)

• Bureaucratic (additional policy)

Page 16: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 16

Genode OS architecture

Central question:

How to organize all those components in order to scale?

Page 17: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 17

Genode OS architecture

Leitmotif:

Minimize trusted computing base (TCB)per application

Page 18: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 18

Genode OS architecture - Universal truths (?)

Ease of use Security

Page 19: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 19

Genode OS architecture - Universal truths (??)

Ease of use Security

Resource

utilization

Resource

accountability

Page 20: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 20

Genode OS architecture - Universal truths (???)

Ease of use Security

Resource

utilization

Resource

accountability

ScalabilitySimplicity

Page 21: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 21

Genode OS architecture

Genode sets out to solve these conflicts.

Page 22: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 22

Principles of the architecture

Recursive system structure

GUI

Init

User Session

User Application

Core

Page 23: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 23

GUI

Init

User Session

User Application

Core

announce("GUI")

Principles of the architecture (II)

Announcing services

Page 24: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 24

GUI

Init

User Session

User Application

session("GUI", "input:read label:terminal")

session("GUI", "label:olaf.xterm; input:read")session("input:none; label:olaf.xterm")

1

23

4

Core

Principles of the architecture (III)

Using services

Page 25: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 25

Principles of the architecture (IV)

Core - the root of the process tree

• Provides fundamental services:

RAM, ROM, IRQ, I/O, RM, CPU, PD, CAP, LOG, SIGNAL

• Abstracts physical platform resources

• Policy-free

• Bootstraps the init process

Page 26: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 26

Principles of the architecture (V)

Physical resources

• Physical resources are assigned to processes

• A client can lend its resources to services

• A server uses client resources by contract

• A client can regain resources

Page 27: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 27

Principles of the architecture (VI)

Delegation of rights

• Each process lives in a virtual environment

• A process that possesses a right (capability) can

• use it (invoke)

• delegate it

Page 28: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 28

Demonstration

One demo tells more than thousand slides.

Page 29: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 29

Framework features

Pick one of 8 different kernels

FIASCO

CODEZERO

NOVAMicrohypervisor

OKL4FIASCO.OC

Page 30: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 30

Ways for reusing existing software

1. Support for existing APIsPOSIX (FreeBSD libc), libSDL, OpenGL, Qt4

→ enables Freetype, libpng, Python, MuPDF, ...

2. Runtime environmentsLinux / iPXE Device Driver Environment, Noux

3. Virtualization

Paravirtualized Linux (on OKL4, Fiasco.OC)

→ runs unmodified Linux applications Faithful virtualization (Vancouver on NOVA)

Page 31: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 31

Virtualization-enabled application compatibility

Page 32: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 32

Expressing policy

Security

• Uniform configuration concept

• Mandatory access control

Real-time

• Assign hard priorities to subsystems

Page 33: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 33

Application-specific trusted computing base

Page 34: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 34

Trusted computing base in numbers

Lines of code (OKL4 version)

Demo 3 34,200 Demo 2 + PNG support

Demo 2 20,600 Demo 1 + Liquid-FB, Nitlog, Scout

Demo 1 15,000 PS/2, Timer, Nitpicker, Test Application

Core + Init 10,800

Core 9,400

Page 35: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 35

Trusted computing base in numbers

Lines of code (OKL4 version)

Demo 3 34,200 Demo 2 + PNG support

Demo 2 20,600 Demo 1 + Liquid-FB, Nitlog, Scout

Demo 1 15,000 PS/2, Timer, Nitpicker, Test Application

Core + Init 10,800

Core 9,400

Demo 4 634,200 Demo 3 + simple Qt4 application

Page 36: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 36

Components

User-level device drivers

• Platform drivers for x86 and ARM

• USB, PCI, PS/2, timer, framebuffer

• 3D graphics (Intel GEM)

• Audio out (Linux drivers)

• Networking (iPXE drivers, Lan9118, MadWifi)

• Block devices (ATAPI, SATA, SD-card, USB)

Protocol stacks

• GUI, Qt4

• DDE Kit (device driver API)

• TCP/IP (lwIP)

• Mesa/Gallium3D

Page 37: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 37

Showcase - Secure GUI

User Mode

Privileged ModeMicrokernel

Core

Nitpicker

GUI

Linux

Kernel

VirtualFramebuffer

Tutorial

Browser

X Window System

Init

InputFrame

buffer

Page 38: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 38

Showcase - Secure browser plugins

Plugin

Loader

Init

Web

Browser

Plugin

Nitpicker

GUI

TCP/IP

Page 39: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 39

Showcase - Application-level virtualization

Genode Process

CoreRAM RM CPU

Service

session

Page 40: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 40

Showcase - Application-level virtualization

Genode Processas Debugging Target

CoreRAM RM CPU

Service

session

GDBMonitor

RAM RM CPUTerminalService

GNUDebugger

Page 41: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 41

Showcase - OS-level virtualization

Noux

libc plugin

FreeBSD libc

Terminal

Recompiled UNIX program

open read writeselect ioctrlstat readdir

VFS

TarFS

Init

ROMsession

I/O channels

Core

Terminalsession

Nouxsession

Page 42: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 42

Showcase - Enslaving services (I)

Where to boot from?

Init

SATAUSBstorage

ATAPI

???

Page 43: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 43

Showcase - Enslaving services (II)

Probing for a “magic” file

Init

USBstorage

ATAPI

d3m

iso9660 iso9660

Block ROM BlockROM

open"magic"

open"magic"

"magic"

!

Page 44: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 44

Showcase - Enslaving services (III)

Announce boot device

d3m

Init

USBstorage

ATAPIiso9660 iso9660

Block ROM BlockROM

open"magic"

open"magic"

"magic"

Page 45: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 45

Plans for 2012

Eating our own dog food

→ Goal: Genode as our primary OS by end of year

Page 46: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 46

Inventory of our computing needs

VIM

IM client

Tiled window manager

Fallback VM

PDF viewer

Web browser

GNUPG

Git client

SSH client, Rsync

Persistent storage

Tool chain Shell

Fundamentals

Page 47: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 47

EMACS

High-performance graphics

Thinkpad ACPI

Tuxpaint

Qemu

Mail-user agent

Additional command-line tools

Intel Wireless

Music player

Nice to have

Page 48: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 48

Roadmap 2012

July

Storage

Music player

TiledGUI

January

Thinkpadsupport

SMP

website

OfflineUnixtools

PDF

December

OnlineUnix tools

Drivers

Live CD

Page 49: Introducing Genode · FOSDEM Feb 4, 2012 2 Overview 1. Why do we need another operating system? 2. Genode OS architecture at a glance 3. Features of the framework 4. Showcases

FOSDEM Feb 4, 2012 49

Questions?

Thank you.

http://genode.org

https://github.com/genodelabs/

[email protected]