Live-sculpting a Genode-based operating system Norman Feske < - - PowerPoint PPT Presentation
Live-sculpting a Genode-based operating system Norman Feske < - - PowerPoint PPT Presentation
Live-sculpting a Genode-based operating system Norman Feske < norman.feske@genode-labs.com > Outline 1. Base system 2. Storage, networking 3. Extending the system 4. Road Map for 2018 Live-sculpting a Genode-based operating system 2
Outline
- 1. Base system
- 2. Storage, networking
- 3. Extending the system
- 4. Road Map for 2018
Live-sculpting a Genode-based operating system 2
Outline
- 1. Base system
- 2. Storage, networking
- 3. Extending the system
- 4. Road Map for 2018
Live-sculpting a Genode-based operating system 3
System overview
Microkernel / Core Init Init Init Init
Drivers Leitzentrale Runtime static system
Live-sculpting a Genode-based operating system 4
Static part of the system
Microkernel / Core Init Init Init Init
Drivers Leitzentrale Runtime static system
Live-sculpting a Genode-based operating system 5
Static part of the system
Nitpicker GUI Server Report Report FS ROM Config FS Global Policy Leitzentrale Drivers Runtime initial config
Live-sculpting a Genode-based operating system 6
Drivers subsystem
Microkernel / Core Init Init Init Init
Drivers Leitzentrale Runtime static system
Live-sculpting a Genode-based operating system 7
Drivers subsystem
Microkernel / Core
Drivers
Dynamic Init Driver Manager USB Driver PS2 Driver Platform Driver ACPI Discovery Framebuffer Driver Block Driver Input Filter
platform input usb framebuffer block
config config state device info I/O MEM I/O PORT IRQ Live-sculpting a Genode-based operating system 8
Leitzentrale subsystem
Microkernel / Core Init Init Init Init
Drivers Leitzentrale Runtime static system
Live-sculpting a Genode-based operating system 9
Leitzentrale subsystem
Init Terminal
Noux
VFS TarFS I/O channels Recompiled Unix program FreeBSD libc libc plugin Noux session
- pen read write
select ioctrl stat readdir Terminal session ROM session
Live-sculpting a Genode-based operating system 10
Leitzentrale subsystem
Control Noux /config /report Terminal Nit FB Fader terminal framebuffer input nitpicker Log Noux /report Terminal Nit FB Fader Init Nitpicker Report FS Config FS
Leitzentrale
global policy
static system
Live-sculpting a Genode-based operating system 11
Tweaking and inspecting the system
Input Filter
Input Input Output Merger Char Generator Remap Remap
PS2 USB HID GUI server
Live-sculpting a Genode-based operating system 12
Runtime subsystem
Microkernel / Core Init Init Init Init
Drivers Leitzentrale Runtime static system
Live-sculpting a Genode-based operating system 13
Outline
- 1. Base system
- 2. Storage, networking
- 3. Extending the system
- 4. Road Map for 2018
Live-sculpting a Genode-based operating system 14
Preparing the disk
static system
Noux /dev/block
bash coreutils e2fsprogs
Terminal Nit FB Init
Runtime Drivers
Nitpicker
framebuffer block input
Dynamic Init Framebuffer Driver Block Driver
runtime policy global policy driver-manager policy
Input Filter
Live-sculpting a Genode-based operating system 15
File-system access
static system
Init Init Nit FB Terminal Noux /config /rw Init VFS VFS Server NetBSD Rump kernel VFS plugin
subinit/default fs.config subinit/default noux.config
Runtime
Nitpicker Config FS Block
Live-sculpting a Genode-based operating system 16
Connecting to a wireless network
Report FS nic/wlan accesspoints Config ROM wifi.config
Wifi Driver
Intel Wireless stack WPA supplicant libcrypto
Init Init
subinit/default nic.config
Runtime Drivers
platform
Platform Driver Device PD Device PD Device PD
Live-sculpting a Genode-based operating system 17
Making customizations permanent
Noux with mounted config FS and default FS
cp /config/<customized>.config /rw/config/ cp /config/runtime/<customized>.config /rw/config/runtime/ cp /config/subinit/<customized>.config /rw/config/subinit/
Config FS Default FS
Live-sculpting a Genode-based operating system 18
Restoring customizations after boot
Noux with mounted config FS and default FS
cp /rw/config/* /config/ cp /rw/config/runtime/*.config /config/runtime/ cp /rw/config/subinit/*.config /config/subinit/
Config FS Default FS
for convenience → config/runtime/load.config
Live-sculpting a Genode-based operating system 19
Outline
- 1. Base system
- 2. Storage, networking
- 3. Extending the system
- 4. Road Map for 2018
Live-sculpting a Genode-based operating system 20
Downloading files
fetchurl
TCP/IP stack libcurl libssl
chroot /download Default FS Default Noux Default NIC File system File system File system NIC Block Platform Nitpicker
Live-sculpting a Genode-based operating system 21
Installing software
Prerequisites Storage location for downloads Storage location for installed software Download URL Public key of software producer
Live-sculpting a Genode-based operating system 22
Installing software
Download Manager What’s missing? Get download info Fetch Verify Extract archive list download URL, public key archives, signatures good or bad archive content
Live-sculpting a Genode-based operating system 23
Installing software
read-only config (installation) What’s missing? Get download info Fetch Verify Extract Dynamic Init Download Manager Depot Query config state missing content file system network file system /public /depot
Live-sculpting a Genode-based operating system 24
Installing software
read-only What’s missing? Get download info Fetch Verify Extract Dynamic Init Download Manager Depot Query config state public key, URL file system network file system /public /depot
Live-sculpting a Genode-based operating system 25
Installing software
write What’s missing? Get download info Fetch Verify Extract Dynamic Init Download Manager fetchurl
libcurl libssl TCP/IP
config state file system network file system /public /depot
Live-sculpting a Genode-based operating system 26
Installing software
read-only What’s missing? Get download info Fetch Verify Extract Dynamic Init Download Manager verify
GnuPG libgcrypt
config state good / bad file system network file system /public /depot
Live-sculpting a Genode-based operating system 27
Installing software
read-only write write What’s missing? Get download info Fetch Verify Extract Dynamic Init Download Manager extract chroot /<origin>
libarchive liblzma
config state file system network file system /public /depot
Live-sculpting a Genode-based operating system 28
Deploying installed software
Live-sculpting a Genode-based operating system 29
Outline
- 1. Base system
- 2. Storage, networking
- 3. Extending the system
- 4. Road Map for 2018
Live-sculpting a Genode-based operating system 30
Road Map for 2018
Sculpt for Early Adopters (EA) → 18.02 (end of February) Sculpt for The Curious (TC) → 18.05 (end of May) Sculpt by Visual Composition (VC) → 18.08 (end of August) Sculpt as a Community Experience (CE) → 18.11 (end of the year) Details at https://genode.org/about/road-map
Live-sculpting a Genode-based operating system 31
Thank you
Genode OS Framework https://genode.org Genode Labs GmbH https://www.genode-labs.com Source code at GitHub https://github.com/genodelabs/genode
Live-sculpting a Genode-based operating system 32