We are proud to announce the latest release of Unikraft, v0.19.0
.
This release comes packed with features related to POSIX compliance and general application support. It contains plenty of fixes that improve the stability and application support of Unikraft.
In this blog post, we present the new features available in Unikraft. For a full breakdown, please check out the changelog.
Signals provide processes with asynchronous communication, lifecycle management, and error handling capabilities. The implementation introduced in this release is minimal yet powerful, and provides a critical component for multiprocess support.
Inspired from Linux modular binfmt design, we introduce lib/ukbinfmt
.
This library provides a minimal framework that delegates the loading and execution of binary objects to specialized components.
The ELF handler is available in app-elfloader
.
Beginning from v0.19.0
, Unikraft incorporates multiprocess capabilities.
The implementation is based on vfork()
and clone()
with CLONE_VFORK | CLONE_VM
, which are neatly abstracted by libc's posix_spawn()
.
In addition to process lifetime management facilities, multiprocess support introduces optional /sbin/init
logic for applications that may need it, in the form of an init
process that takes care to (1) spawn the application process (2) foster orphaned processes (3) reap its children (4) coordinate process termination during shutdown.
For more details see the technical blog post on the topic, as well as the README.md of libposix-process
.
For the requirements of multiprocess and especially with stateful applications in mind, v0.19.0
introduces graceful shutdown.
When triggered, the init
process signals the application process to give it the opportunity to gracefully terminate itself and its children before shutting down the system.
Once again, for more info refer to the README.md of libposix-process
.
As part of the rework of the VFS layer, open file descriptions are now a first-class core library: posix-fd
.
Previously this functionality had been split between ukfile
, which provided definitions, and posix-fdtab
, which handled lifetime management (creation, reference counting, destruction).
This arrangement proved limiting, especially in light of multiprocess support.
As such, everything to do with POSIX open file descriptions, including lifetime management, is now part of posix-fd
.
This enables core libraries to arbitrarily create and consume open file descriptions without keeping the (otherwise userspace-facing) fdtab in the loop, enabling greater flexibility in the upcoming new VFS stack.
A neat first feature of the newly-independent posix-fd
are named open files: optional arbitrary labels attached to open file descriptions at creation time.
export UK_CFLAGS="-std=gnu17"
lib-libcxx
The Community and Development Lab (CDL) is a program helping participants make their first steps in open source development. With the help of instructors and mentors, participants contribute to open source projects, review contributions, document projects, participate in community discussions, build infrastructure for collaborative projects, automate development workflows, and much more.
Unikraft was part of both CDL autumn 2024 (October-December 2024) and CDL spring 2025 (March-May 2025).
A total of 18 participants were mentees for Unikraft, making contributions to the catalog-core
and catalog
repositories and to the kraftkit
and governance
repositories.
CDL is part of our commitment to open source and facilitate the entry of newcomers.
Unikraft Summer Workshop 2025 (USW'25) is a free and virtual workshop held by members of the Unikraft community. It focuses on cloud-native applications and on the unikernel technology that powers efficient and high performance cloud deployments.
The three-week event holds a number of starter tutorials and workshops on how to configure, build, run and debug applications using Unikraft.
There will be 6 sessions taking place in the first two weeks (between June 23 and July 4, 2025). Each session takes place for 3 hours, in the 4pm-7pm CEST interval, in English. Sessions will consist of talks and demos delivered by members of the Unikraft community, followed by practical tutorials that you will work on with support and supervision. Sessions take place on Unikraft's Discord server.
Topics include building unikernels, benchmarking, debugging, porting applications, virtualization and platform specifics. The 6 sessions will focus on the internals of Unikraft: the build system, native configuration options, application porting.
The two weeks with sessions will be followed by a week of working on the final project. You will work on the project in teams of 2-3 people. We will have support sessions online to help with the project.
On Saturday, 12 July 2025, 9am-5pm CEST, we will have the final hackathon, that consists of adding final touches to the project. The hackathon will take place in hybrid format, in person, at POLITEHNICA Bucharest, and, online, Unikraft's Discord server. Participants will receive a participation diploma. The first three teams will get special prizes. All hackathon in-person participants will get a Unikraft T-shirt.
Unikraft will be part of Google Summer of Code 🤩 5 projects are currently under way in the Unikraft community:
The 5 applicants, and their projects are:
Prasoon Kumar from Indian Institute of Technology Bombay in Mumbai, India
Ashirvad Mohanty from Odisha University of Technology and Research in Bhubaneswar, India
Abolfazl Soltani from Vrije Universiteit Amsterdam in Amsterdam, The Netherlands
Shashank Srivastava from GL Bajaj Institute of Technology and Management in Greater Noida, India
Abhinav Kumar from Netaji Subhash University of Technology in Delhi, India
Congratulations Prasoon, Ashirvad, Abolfazl, Shashank, Abhinav! 🥳
Feel free to ask questions, report issues, and meet new people.