Philpax icon

Philpax

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 with function
  • 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!