We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Evolution of OSv: Towards Greater Modularity and Composability

Formal Metadata

Title
Evolution of OSv: Towards Greater Modularity and Composability
Title of Series
Number of Parts
542
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
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.