Notes · Other Peoples' Talks · FOSDEM 2026 · skiftOS - Building a microkernel-based operating system from the ground up
https://fosdem.org/2026/schedule/event/PA7Z9R-skift/
- cutekit
- Responsible for building; provides machinery for everything
- karm
- Freestanding core shared between all components of the OS
- Inspired by Rust/Go/C# stdlibs
- Split into two components:
- Freestanding: doesn't rely on any OS
- Relies onto an OS
- Written in Karm-flavoured C++
- C with lambda, modules, and coroutines
- No exceptions
- Rust-like monadic error handling
- String Clang safety checks - clamped lifetime bounds, etc
- Unsafe buffer usage checks
- Entrypoint is async, using C++ modules; hello world example presents a UI
- Inspired by SwiftUI / Jetpack Compose
- RPC
- No IDL, using C++ structures
- Using C++ reflection capabilities to generate code around the structures
- Bootloader: opstart
- Simple EFI bootloader, like systemd-boot
- Has its own boot protocol, called handover, basically a mmap with some attributes
- Uses the same UI library as the rest of the OS
- Hjert microkernel
- Pragmatic; not academically pure
- 4k lines of code, minimalistic
- Handles or ekernel responsibilities, IPC, minimal object model, etc
- 25 syscalls
- Syscall implementation
- Wrapper for userspace memory that cannot be accessed until unwrapped with a
withfunction
- Wrapper for userspace memory that cannot be accessed until unwrapped with a
- Strata services
- Strata component manager is loaded by Hjert as the first process
- strata-cm then starts strata-init, which then launches sevices
- strata-device (all device drivers, might be changed later), strata-fs, strata-inputs (HID), strata-shell
- Applications running on top of all o fthis
- Hideo desktop
- Custom display protocol; kind of like Wayland, but much simpler
- Adaptive UI - can scale from a smartphone to a desktop
- Vector based
- Subpixel antialiasing
- Truetype
- Skift has its own browser engine, Vael
- Not really part of Skift
- HTML/CSS only, no JS
- Pretty fast
- Demo: cutekit to boot a QEMU VM
- Looks pretty full-featured
- Browser can render a few real websites, or snapshots of them, at least snapshots of them
- Can run DOOM
- No GPU acceleration
- Audio is supported in karm, but not in skift itself
- Because the browser is built atop karm, and karm can run in the bootloader... it is possible to run the browser in the bootloader
- Beyond:
- virtio support
- networking
- on-disk filesystem
- sound server
- namespacing
- Question: What architectures does it run on?
- x86, RISC-V in the future
- Question: Real hardware?
- It could, but it would be missing peripherals and other things
- Question: Custom window protocol - clientside rendering?
- Yes. See Doom doesn't have any window decoration
- Question: What security mechanisms does your microkernel support?
- Only from page-isolated processes
- Each task has a limited domain
- Question: Does the UI library run on Linux?
- Yes!