Microkernel and Component-Based OS

Writing axle OS's desktop compositor

<p>axle OS (<a href="https://github.com/codyd51/axle">GitHub</a>, <a href="https://axleos.com/blog/">blog</a>) is a hobby microkernel and userspace which includes many home-grown utilities such as <a href="https://github.com/codyd51/axle/tree/paging-demo/rust_programs/linker/src">an x86_64 assembler + ELF linker</a>, a <a href="https://github.com/codyd51/axle/tree/paging-demo/programs/subprojects/net">TCP/IP/(ARP/DNS</a>/<a href="https://github.com/codyd51/axle/tree/paging-demo/programs/subprojects/realtek_8139_driver">NIC</a>/etc)]( stack, <a href="https://github.com/codyd51/axle/tree/paging-demo/rust_programs/sata_driver/src">SATA support</a>, a <a href="https://github.com/codyd51/axle/tree/paging-demo/rust_programs/ttf_renderer/src">TrueType renderer</a>, a <a href="https://github.com/codyd51/axle/tree/paging-demo/rust_programs/gb_emu/src">GameBoy emulator</a>, and more. Everything is built around message passing, from process launches and virtual memory operations, to driver events and GUI updates.</p> <p>axle OS lacks a GPU driver, but features a compositing desktop window manager with transparency effects and animations. Since the compositor runs on the CPU, I’ve put significant effort into making redraws as efficient and targeted as possible to create a smooth and responsive experience.</p> <p>In this talk, I’ll give a tour of axle’s CPU-bound compositor from first principles. We’ll go on a journey of live visualisations, seeing how each successive optimization allows the compositor to perform progressively less work per frame, building up towards a general strategy for redraws that comprehensively covers screen updates.</p> <p>Developing a compositor that plays optimisation tricks involves lots of testing, which can be onerous in an OS that’s primarily developed in an emulator and which must boot itself before the compositor can run. Therefore, we’ll also take a look at a host-side userspace harness I made for the compositor: the compositor can run on my host-native macOS, or as a part of the full axle OS distribution. I developed a simulator which allows me to record user interaction (such as dragging a window around with a mouse), capture the composited frames, and write a test suite that replays these events and ensures the composited frames don’t deviate from the correct output.</p> <p>We’ll investigate R-trees, different compositing strategies, client request rate limiting, and the various types of redraws that the compositor must be able to handle. This talk aims to be an engaging and ‘interactive’ experience for the audience, with lots of guiding visualisations motivating each optimization we make to our compositor, following the journey towards axle OS’s contemporary CPU compositor.</p>

Weitere Infos

Live Stream https://live.fosdem.org/watch/k4201
Format devroom
Sprache Englisch

Weitere Sessions

01.02.26
Microkernel and Component-Based OS
Michael Müller
K.4.201
<p>The ongoing digitalization has made cloud services and data centers the backbone of significant parts of our modern society and economy. Thus, exposing more and more sensitive data to a plethora of novel threats, both in terms of security and safety. However, most of today's cloud infrastructure runs on monolithic system software that makes it hard to harden against security leaks or unwanted outages by relying on too coarse-grained capabilities or having to orchestrate multiple security ...
01.02.26
Microkernel and Component-Based OS
Udo Steinberg
K.4.201
<p><a href="https://github.com/udosteinberg/NOVA">NOVA</a> is a modern open-source (GPLv2) microhypervisor that can host and harden unmodified guest operating systems. NOVA is typically accompanied by a component-based OS that runs deprivileged and implements additional functionality, such as platform services and user-mode device drivers.</p> <p>Over the years, the interrupt subsystem of modern client and server platforms has evolved significantly, by (1) scaling up from only a few pin-based to ...
01.02.26
Microkernel and Component-Based OS
Clémence
K.4.201
<p>This talk gives an overview of skiftOS’s architecture, focusing on its microkernel core and service model. It explores the design trade-offs behind keeping the kernel minimal yet practical, and the lessons learned from building a complete, usable operating system on top of it.</p> <p>The session is aimed at developers interested in microkernels, operating system internals, and the challenges of scaling a small core into a functional ecosystem.</p> <p>Project Repo: ...
01.02.26
Microkernel and Component-Based OS
K.4.201
<p>The <em>Genode OS Framework</em> is certainly not a newcomer but still under very active development. While the framework supports various third-party microkernels, its custom-tailored <em>base-hw</em> kernel has proven valuable for putting Genode-specific (kernel) concepts to the test. One of those concepts that we have been test-driving for about a decade was the <em>quota-aware CPU scheduling</em>, which combined CPU-quota trading with priority-based scheduling. However, with Sculpt OS as ...
01.02.26
Microkernel and Component-Based OS
Ibuki Omatsu
K.4.201
<p><a href="https://www.redox-os.org/">Redox</a> is a Unix-like microkernel operating system, community developed and written in Rust. Funded through NGI Zero Commons and NLnet, Redox is developing Capability Based Security as a fundamental part of interprocess communication and file I/O. This presentation will look at our strategies for implementing capabilities, POSIX file descriptors, namespaces, containment, and escalation.</p>
01.02.26
Microkernel and Component-Based OS
Eduard Drusa
K.4.201
<p>As kernels manage hardware, in certain cases the only way to prevent race conditions in kernel code is to disable interrupts. This is a kernel way of granting code exclusive access to resources at lowest levels.</p> <p>In the realm of embedded devices, it is often not feasible to keep interrupts disabled for prolonged period of time. This affects the design of portions of the kernel which modify data structures accessible from within interrupt context. Despite very limited API offered by the ...
01.02.26
Microkernel and Component-Based OS
K.4.201
<p>This presentation describes the technical implementation of PhantomOS, an orthogonally-persistent operating system, on modern microkernel architecture using the Genode framework. The talk center on the engineering challenges encountered during the porting process, especially the adaptation of the core persistence mechanisms. The talk will also touch on work on network persistence and the added WASM runtime.</p> <p>As part of the port, the snapshot process was reworked and separated into its ...