genode as desktop os - fosdem

57
Genode as Desktop OS Norman Feske <[email protected]>

Upload: others

Post on 19-May-2022

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Genode as Desktop OS - FOSDEM

Genode as Desktop OS

Norman Feske<[email protected]>

Page 2: Genode as Desktop OS - FOSDEM

Outline

1. Why another operating system?

2. Architectural principles

3. Framework for building operating systems

4. Desktop scenarios

5. Present and future

Genode as Desktop OS 2

Page 3: Genode as Desktop OS - FOSDEM

Outline

1. Why another operating system?

2. Architectural principles

3. Framework for building operating systems

4. Desktop scenarios

5. Present and future

Genode as Desktop OS 3

Page 4: Genode as Desktop OS - FOSDEM

Universal Truths

Ease of useSecurity

Utilization

ScalabilityAssurance

Accountability

Genode as Desktop OS 4

Page 5: Genode as Desktop OS - FOSDEM

Problem: Complexity

Today’s commodity OSes Exceedingly complex trusted computingbase (TCB)

TCB of an application on Linux:Kernel + loaded kernel modulesDaemonsX Server + window managerDesktop environmentAll running processes of the user

→ User credentials are exposed to millions of lines of code

Genode as Desktop OS 5

Page 6: Genode as Desktop OS - FOSDEM

Problem: Complexity

Today’s commodity OSes Exceedingly complex trusted computingbase (TCB)

TCB of an application on Linux:Kernel + loaded kernel modulesDaemonsX Server + window managerDesktop environmentAll running processes of the user

→ User credentials are exposed to millions of lines of code

Genode as Desktop OS 5

Page 7: Genode as Desktop OS - FOSDEM

Problem: Complexity

Today’s commodity OSes Exceedingly complex trusted computingbase (TCB)

TCB of an application on Linux:Kernel + loaded kernel modulesDaemonsX Server + window managerDesktop environmentAll running processes of the user

→ User credentials are exposed to millions of lines of code

Genode as Desktop OS 5

Page 8: Genode as Desktop OS - FOSDEM

Problem: Complexity (II)

Implications:

High likelihood for bugs (need for frequent security updates)

Huge attack surface for directed attacks

Zero-day exploits

Genode as Desktop OS 6

Page 9: Genode as Desktop OS - FOSDEM

Problem: Complexity (II)

Implications:

High likelihood for bugs (need for frequent security updates)

Huge attack surface for directed attacks

Zero-day exploits

Genode as Desktop OS 6

Page 10: Genode as Desktop OS - FOSDEM

Problem: Complexity (II)

Implications:

High likelihood for bugs (need for frequent security updates)

Huge attack surface for directed attacks

Zero-day exploits

Genode as Desktop OS 6

Page 11: Genode as Desktop OS - FOSDEM

Universal Truths

Ease of useSecurity

Utilization

ScalabilityAssurance

Accountability

Genode as Desktop OS 7

Page 12: Genode as Desktop OS - FOSDEM

Problem: Resource management

Pretension of unlimited resourcesLack of accounting

→ Largely indeterministic behavior→ Need for complex heuristics, schedulers

Genode as Desktop OS 8

Page 13: Genode as Desktop OS - FOSDEM

Problem: Resource management

Pretension of unlimited resourcesLack of accounting→ Largely indeterministic behavior

→ Need for complex heuristics, schedulers

Genode as Desktop OS 8

Page 14: Genode as Desktop OS - FOSDEM

Problem: Resource management

Pretension of unlimited resourcesLack of accounting→ Largely indeterministic behavior→ Need for complex heuristics, schedulers

Genode as Desktop OS 8

Page 15: Genode as Desktop OS - FOSDEM

Problem: Resource management

Pretension of unlimited resourcesLack of accounting→ Largely indeterministic behavior→ Need for complex heuristics, schedulers

Genode as Desktop OS 8

Page 16: Genode as Desktop OS - FOSDEM

Universal Truths

Ease of useSecurity

Utilization

ScalabilityAssurance

Accountability

Genode as Desktop OS 9

Page 17: Genode as Desktop OS - FOSDEM

Key technologies

Microkernels

Componentization, kernelization

Capability-based security

Virtualization

...but how to compose those?

Genode as Desktop OS 10

Page 18: Genode as Desktop OS - FOSDEM

Key technologies

Microkernels

Componentization, kernelization

Capability-based security

Virtualization

...but how to compose those?

Genode as Desktop OS 10

Page 19: Genode as Desktop OS - FOSDEM

Outline

1. Why another operating system?

2. Architectural principles

3. Framework for building operating systems

4. Desktop scenarios

5. Present and future

Genode as Desktop OS 11

Page 20: Genode as Desktop OS - FOSDEM

Idea

→ Application-specific TCB

Genode as Desktop OS 12

Page 21: Genode as Desktop OS - FOSDEM

Combined with virtualization

Genode as Desktop OS 13

Page 22: Genode as Desktop OS - FOSDEM

Object capabilities

Delegation of authority between components

Each component lives in a virtual environment

A component that possesses a capability canI Use it (invoke)I Delegate it to acquainted components

Genode as Desktop OS 14

Page 23: Genode as Desktop OS - FOSDEM

Object capabilities

Delegation of authority between components

Each component lives in a virtual environment

A component that possesses a capability canI Use it (invoke)I Delegate it to acquainted components

Genode as Desktop OS 14

Page 24: Genode as Desktop OS - FOSDEM

Object capabilities

Delegation of authority between components

Each component lives in a virtual environment

A component that possesses a capability canI Use it (invoke)

I Delegate it to acquainted components

Genode as Desktop OS 14

Page 25: Genode as Desktop OS - FOSDEM

Object capabilities

Delegation of authority between components

Each component lives in a virtual environment

A component that possesses a capability canI Use it (invoke)I Delegate it to acquainted components

Genode as Desktop OS 14

Page 26: Genode as Desktop OS - FOSDEM

Recursive system structure

Genode as Desktop OS 15

Page 27: Genode as Desktop OS - FOSDEM

Resource management

Explicit assignment of physical resources to components

Genode as Desktop OS 16

Page 28: Genode as Desktop OS - FOSDEM

Resource management (II)

Resources can be attached to sessions

Genode as Desktop OS 17

Page 29: Genode as Desktop OS - FOSDEM

Outline

1. Why another operating system?

2. Architectural principles

3. Framework for building operating systems

4. Desktop scenarios

5. Present and future

Genode as Desktop OS 18

Page 30: Genode as Desktop OS - FOSDEM

Components

Genode as Desktop OS 19

Page 31: Genode as Desktop OS - FOSDEM

Components

Genode as Desktop OS 20

Page 32: Genode as Desktop OS - FOSDEM

Components

Genode as Desktop OS 21

Page 33: Genode as Desktop OS - FOSDEM

Components

Genode as Desktop OS 22

Page 34: Genode as Desktop OS - FOSDEM

Components

Genode as Desktop OS 23

Page 35: Genode as Desktop OS - FOSDEM

Components

Genode as Desktop OS 24

Page 36: Genode as Desktop OS - FOSDEM

Outline

1. Why another operating system?

2. Architectural principles

3. Framework for building operating systems

4. Desktop scenarios

5. Present and future

Genode as Desktop OS 25

Page 37: Genode as Desktop OS - FOSDEM

Faithful virtualization (traditional)

root mode non-root mode

Guest OS

VMprocess

/dev/vboxdrvkernel

vboxdrv.ko

VMMR0 / Hypervisor

highly complex

access control?

authorized tochange the kernel

highly complex

Genode as Desktop OS 26

Page 38: Genode as Desktop OS - FOSDEM

VirtualBox as Genode subsystem

User Mode

Privileged ModeNOVA Hypervisor

Core

Init

Resource Multiplexer

UnmodifiedGuest OS

virtual CPU

virtual device

virtual RAM

VMMDevice Driver

Kernel

Genode as Desktop OS 27

Page 39: Genode as Desktop OS - FOSDEM

OS-level virtualization

Genode as Desktop OS 28

Page 40: Genode as Desktop OS - FOSDEM

OS-level virtualization

Genode as Desktop OS 28

Page 41: Genode as Desktop OS - FOSDEM

OS-level virtualization (example)

Init

Backdrop FS-ROM RAM FSNoux

Runtime

Editor

configROM

filesystem

filesystem

Genode as Desktop OS 29

Page 42: Genode as Desktop OS - FOSDEM

Multi-component applications

Init

Window managerNitpicker App

Report ROM

ROMReportDecorator Layouter

Nitpicker

Nitpicker

ROM<window -list >

...

</window -list >

ROM<hover >

...

</hover >

Report<window -layout >

...

</window -layout >

ROM<window -layout >

...

</window -layout >

Report<hover >

...

</hover >

input

Genode as Desktop OS 30

Page 43: Genode as Desktop OS - FOSDEM

Multi-component applications

Init

Window managerNitpicker App

Report ROM

ROMReportDecorator Layouter

Nitpicker

Nitpicker

ROM<window -list >

...

</window -list >

ROM<hover >

...

</hover >

Report<window -layout >

...

</window -layout >

ROM<window -layout >

...

</window -layout >

Report<hover >

...

</hover >

input

Genode as Desktop OS 30

Page 44: Genode as Desktop OS - FOSDEM

“Turmvilla” scenario

Init

NitpickerGUI

WindowManager CLI monitor

timeracpi drvacpi report romplatform drvahci drvpart blklog file terminallogrump fswifi drvps2 drvusb drvfb drvrtc drvtrace subject reporterinput mergerreport romnitpickerwm report romwmlayouterdecoratorvbox pointershared fsconfig fsconfig romromcli nit fbcli terminal

VirtualBox Noux

Genode as Desktop OS 31

Page 45: Genode as Desktop OS - FOSDEM

Rich applications

Loader

Init

AroraWeb

Browser

Init

NitpickerGUI

TCP/IP

Menu

NitpickerGUI

Virtual FramebufferLaunchpad

Testnit

Genode as Desktop OS 32

Page 46: Genode as Desktop OS - FOSDEM

Outline

1. Why another operating system?

2. Architectural principles

3. Framework for building operating systems

4. Desktop scenarios

5. Present and future

Genode as Desktop OS 33

Page 47: Genode as Desktop OS - FOSDEM

Disclaimer

Currently used by only a few enthusiasts

No package management

Limited hardware support

Not yet palatable for uninitiated end users

Genode as Desktop OS 34

Page 48: Genode as Desktop OS - FOSDEM

Ambitions

Eating our own dog food (tool chain, email, IRC...)

Capability-based desktop environment

Muen and seL4 as base platforms

RISC-V

USB Armory

Nix package manager

Collaborating with Qubes?

Genode as Desktop OS 35

Page 49: Genode as Desktop OS - FOSDEM

Ambitions

Eating our own dog food (tool chain, email, IRC...)

Capability-based desktop environment

Muen and seL4 as base platforms

RISC-V

USB Armory

Nix package manager

Collaborating with Qubes?

Genode as Desktop OS 35

Page 50: Genode as Desktop OS - FOSDEM

Ambitions

Eating our own dog food (tool chain, email, IRC...)

Capability-based desktop environment

Muen and seL4 as base platforms

RISC-V

USB Armory

Nix package manager

Collaborating with Qubes?

Genode as Desktop OS 35

Page 51: Genode as Desktop OS - FOSDEM

Ambitions

Eating our own dog food (tool chain, email, IRC...)

Capability-based desktop environment

Muen and seL4 as base platforms

RISC-V

USB Armory

Nix package manager

Collaborating with Qubes?

Genode as Desktop OS 35

Page 52: Genode as Desktop OS - FOSDEM

Ambitions

Eating our own dog food (tool chain, email, IRC...)

Capability-based desktop environment

Muen and seL4 as base platforms

RISC-V

USB Armory

Nix package manager

Collaborating with Qubes?

Genode as Desktop OS 35

Page 53: Genode as Desktop OS - FOSDEM

Ambitions

Eating our own dog food (tool chain, email, IRC...)

Capability-based desktop environment

Muen and seL4 as base platforms

RISC-V

USB Armory

Nix package manager

Collaborating with Qubes?

Genode as Desktop OS 35

Page 54: Genode as Desktop OS - FOSDEM

Ambitions

Eating our own dog food (tool chain, email, IRC...)

Capability-based desktop environment

Muen and seL4 as base platforms

RISC-V

USB Armory

Nix package manager

Collaborating with Qubes?

Genode as Desktop OS 35

Page 55: Genode as Desktop OS - FOSDEM

Ambitions

Eating our own dog food (tool chain, email, IRC...)

Capability-based desktop environment

Muen and seL4 as base platforms

RISC-V

USB Armory

Nix package manager

Collaborating with Qubes?

Genode as Desktop OS 35

Page 56: Genode as Desktop OS - FOSDEM

The Book “Genode Foundations”

GENODEOperating System Framework

FoundationsNorman Feske

http://genode.org/documentation/genode-foundations-15-05.pdf

Genode as Desktop OS 36

Page 57: Genode as Desktop OS - FOSDEM

Thank you

Genode OS Frameworkhttp://genode.org

Genode Labs GmbHhttp://www.genode-labs.com

Source code at GitHubhttp://github.com/genodelabs/genode

Genode as Desktop OS 37