Evolution of OSv: Towards Greater Modularity and Composability
- Track: Microkernel and Component-based OS devroom
- Room: H.1308 (Rolin)
- Day: Sunday
- Start: 12:00
- End: 13:00
- Video only: h1308_rolin
- Chat: Join the conversation!
By design, OSv has always been a "fat" unikernel and by default has provided a large subset of glibc
functionality and has included full standard C++ library (libstdc++
), the ZFS implementation, drivers for many devices, and has supported many hypervisors. On one hand, it makes running arbitrary applications on any hypervisor very easy using a single universal kernel. On another hand, such universality comes with the price of the bloated kernel with many symbols and drivers and possibly ZFS unused, thus causing inefficient memory usage, longer boot time, and potential security vulnerabilities. In addition, the C++ applications linked against a version of libstdc++ different than the version the kernel was linked against, may simply not work.
In this presentation, I will talk about enhancements in the new release 0.57 to address these issues. More specifically, I will focus on a new experimental build mode to hide the non-glibc
symbols and libstdc++
and extract ZFS code out of the kernel in form of a dynamically linked library. I will also explain another new build option to tailor the kernel to a set of specific device drivers - 'driver profiles', and another new mechanism to allow building a version of the kernel with a subset of glibc symbols needed to support a specific application.
Finally, I will also cover other interesting improvements and optimizations like "lazy" stack, minimal netlink support, and novel ways to build and run ZFS images.
Speakers
Waldemar Kozaczuk |
Attachments
Links
- My P99 2021 OSv Presentation
- OSv Github Main Readme
- The Wiki page my presentation will be based off
- Project Website
- My Blog Article about Making OSv Run on Firecracker
- Over 750 commits to the project
- Video recording (WebM/VP9)
- Video recording (mp4/aac)
- Chat room (web)
- Chat room (app)
- Submit feedback