Online / 6 & 7 February 2021


CubicleOS -- when Hardware helps to partition software

What if millennials reinvented microkernels? How would they design them, what CPU features would they use?

Modern component-based systems, in particular microkernels, are impractical. While it is relatively easy to develop a small microkernel, it is almost impossible to build a component-based environment that can effectively reuse existing components and programs from mainstream systems. The experience of big projects, like Genode, L4Re, rump-kernel, etc. shows that it is an infinite catch-up game when developers try to reproduce POSIX environment and Linux kernel interfaces, while the mainstream systems are constantly evolving.

In this talk, I will discuss what to do with this infinite loop. I will show, that:

  1. the root cause of the problem is the messaging-based API of component-based systems, which is hardly compatible with POSIX but fundamental

  2. a monolithic system can be partitioned without the use of messages but requires some constraints in its design and implementation

  3. Modern hardware features like Intel MPK gives new opportunities for kernel developers and allows to resolve some old systems problems.

I will present CubicleOS, a sketch of a LibOS based on Unikraft. CubicleOS does not use messages, works as automatic partitioning system, and turns monolithic Unikraft into a set of isolated components.


Photo of Vasily A. Sartakov Vasily A. Sartakov