Loading…
CppCon 2020 has ended
Back To Schedule
Thursday, September 17 • 12:00 - 13:00
Managarm: A Fully Asynchronous OS Based on Modern C++

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
C++20 and future C++ standards are expected to massively improve the ergonomics of asynchronous I/O within the C++ ecosystem. Yet, the vast majority of current operating systems (OSes) were designed without considering asynchronous I/O to be a first-class citizen. For example, Linux is only able to perform general-purpose asynchronous I/O since the recent addition of io_uring. Even with this new asynchronous mechanism in place, many I/O operations still have to fall back to a thread-based emulation within the kernel.

In this talk, we present Managarm, an OS designed around C++20 coroutines and the upcoming C++ sender/receiver model. Its main goal is to fully support asynchronous I/O through the entire system. All I/O operations are asynchronous in Managarm, with a single blocking system call to wait for their completion. The OS implements primitive asynchronous operations using (a variant of) the C++ sender/receiver model. These primitives comprise the system call layer and basic asynchronous data structures. We discuss how this low-level functionality can be integrated into high-level C++ code that is based on coroutines. High-level coroutine code constitutes the majority of the system and enables fully asynchronous drivers and servers. This approach enables high programmer productivity and excellent performance at the same time. At the end of the talk, we discuss open challenges for system programming that C++20 does not solve yet and give a perspective on vital future work in this area.

Speakers
AV

Alexander van der Grinten

Postdoctoral Researcher, Humboldt-Universität zu Berlin
Alexander is a postdoctoral researcher at Humboldt-University of Berlin. He is also a founder of Managarm, a fully asynchronous operating system that is written in modern C++. Alexander obtained his PhD in computer science from University of Cologne in 2018. He is professionally... Read More →


Thursday September 17, 2020 12:00 - 13:00 MDT
destroy_n()