The operating systems in use today and their interfaces and abstractions were designed decades ago and have predominately remained stagnant. In contrast, the evolution of computer hardware has seen significant changes over the decades. The last decade's research has shown that the abstractions and interfaces conceived decades ago have become a bottleneck, so the interplay of OS and applications needs to be revised.
But exploring new interfaces and abstractions in an OS is a daunting and often intimidating endeavor. One often has to dig into hundreds of thousands of lines of existing OS code or write an OS entirely from scratch for hardware that is either sparsely documented at best or, too often, not at all.
The major challenge in developing a research OS is that a vast number of drivers need to be implemented to get the system running. And this effort comes with little or no scientific output at all. This is where Genode can rescue the day with its strictly component-based architecture. It provides the flexibility and extensibility needed to accelerate OS research while also providing the drivers required to get the system running.
This talk will show how Genode can lift the burden of creating new research operating systems. Using our research operating system as an example, we will show how easy it is to explore various OS interfaces and abstractions and how to automate experiments using Genode's scenarios. Furthermore, we will highlight the challenges we faced using Genode on multicore servers and outline what extensions to the framework we needed to implement.