Microkernel and Component-based OS

Advanced Unit Testing in the Hedron Microkernel

D.microkernel
Julian Stecklina
<p>Concurrent code is hard to get right, but at the same time also hard to test. It gets worse when hardware interaction is required. This leads to a comparatively poor culture of unit testing in kernel code, where both come together.</p> <p>In this talk, I’m going to highlight one particular method of unit testing the page table manipulation code in Hedron, a microkernel written in C++ specially geared towards virtualization workloads. This code safely modifies page tables that are concurrently used by the CPU. Usually, unit tests only check whether the state after an operation meets the expectation of the programmer. In contrast, Hedron employs completely deterministic unit tests that show that the CPU will always see a valid virtual memory mappings while a page table manipulation is in progress (for the tested cases).</p> <p>The goal of this task is to show that unit tests can be a powerful tool even for properties of code that are usually not deemed unit testable.</p>

Additional information

Type devroom

More sessions

2/5/22
Microkernel and Component-based OS
D.microkernel
<p>Welcome talk and introduction to the Microkernel and Component-based OS devroom at FOSDEM 2022.</p>
2/5/22
Microkernel and Component-based OS
Damien Zammit
D.microkernel
<p>GNU/Hurd is the original Free Software operating system started in the 1980s. Its microkernel design has been evolving over the years and the project has not quite hit mainstream use. I believe this is due to one main reason: the lack of drivers for peripherals and hardware. In this talk, I explain how NetBSD kernel drivers have been reused in a microkernel setting and demonstrate their use to boot up a GNU/Hurd system via a userspace rump disk driver, with a driverless Hurd kernel, gnumach. ...
2/5/22
Microkernel and Component-based OS
Norman Feske
D.microkernel
<p>Driven by the vision of a truly trustworthy smartphone, I dedicated the past year to bringing the component-based Genode OS to the Pinephone. The talk presents my experience story, touching on the hardware, booting, the porting of the kernel, component-architecture concerns, and device drivers.</p>
2/5/22
Microkernel and Component-based OS
Alexander van der Grinten
D.microkernel
<p>In this talk, we explore the design of Managarm's microkernel. Managarm is a pragmatic microkernel-based OS with a focus on asynchronous operations. The talk covers various aspects of the microkernel, such as its IPC model, resource management, and user space API. Managarm's microkernel employs a capability-based design to manage hardware resources. In contrast to current mainstream OSes, Managarm's system calls never block but report completion asynchronously whenever possible. This includes ...
2/5/22
Microkernel and Component-based OS
D.microkernel
<p>Unikernels are hard to debug? Unikernels cannot be easily administrated or monitored? While unikernels have the potential to revolutionize our infrastructures and take cloud computing into the next era, many worry that unikernels cannot be seamlessly integrated into today’s development and production workflows. At the Unikraft team, we are heavily working on addressing these concerns and changing the status quo. Although unikernels are monolithic bundles of only necessary kernel functions ...
2/5/22
Microkernel and Component-based OS
D.microkernel
<p>Serverless computing facilitates the use of resources without the burden of administering and maintaining infrastructure. The simplification of IaaS appears ideal (in theory) but providers and users are presented with several challenges: providers aim to reduce infrastructure maintenance overheads; users require isolation, flexibility and programming freedom.</p> <p>Serverless deployments are mostly backed by sandboxed containers. To enable programming freedom for users, providers allow the ...
2/5/22
Microkernel and Component-based OS
Andrew Warkentin
D.microkernel
<p>UX/RT is a new QNX-like OS based on the seL4 microkernel, with improvements in security and reliability over mainstream systems as well as several features they lack, while still maintaining a high degree of compatibility with and comparable performance to existing operating systems. Similar to QNX, UX/RT will be a single-personality Unix-like OS with fast synchronous kernel IPC, a lightweight IPC transport layer, services looked up through the filesystem, and an avoidance of vertical ...