DocsReleasesCommunityGuidesBlog

v0.18.0 (Helene)

Sat Dec 21 2024

424eb3d920bf

View Changelog

We are proud to announce the latest version of Unikraft, v0.18! This release comes with plenty of new features and updates.

Here is the full updates list:

🚀 New Features#

  • lib/vfscore: Support embedded initrd with custom compiled-in fstabs (#1540) by @skuenzer
  • drivers/*: Adopting serial driver configuration and making Xen x86_64 (PV) work again (#1501) by @skuenzer
  • libukrandom: Introduce driver for CPU-generated entropy + misc. fixes (#1496) by @michpappas
  • lib/ukdebug: Add GDB stub to Unikraft (#1479) by @thass0
  • lib/uksched: Export stats via ukstore (#1477) by @michpappas
  • lib/ukboot: Introduce early init bootstage (#1472) by @michpappas
  • lib/uklibparam: Refactor parameter registration (#1471) by @michpappas
  • lib/ukconsole: Add generic console device interface (#1464) by @thass0
  • support/qemu-guest: Enable RDRAND, RDSEED for x86 TCG (#1459) by @skuenzer
  • lib/ukfalloc: Export stats via uk_store (#942) by @michpappas

🐛 Bug Fixes & Improvements#

  • lib/syscall_shim: Fix C++ build error with Clang (#1559) by @razvand
  • lib/vfscore: Fix missing syscall declaration (#1556) by @andreittr
  • lib/ukrandom: Improve boot and diagnostic messages (#1554) by @michpappas
  • lib/ukrandom: Add README.md (#1551) by @michpappas
  • lib/ukschecoop: Remove invalid assertion (#1550) by @michpappas
  • lib/posix-pipe: Fix ref leak on pipe creation (#1539) by @andreittr
  • .github/workflows: Wait once before checking (#1538) by @craciunoiuc
  • drivers/ukconsole/vga: Add initial sanity check (#1530) by @florommel
  • lib/uklibparam: Namespace symbols to avoid conflicts (#1526) by @michpappas
  • plat/xen: Use -lgcc for Xen ARM64 builds with fp emulation (#1525) by @razvand
  • plat/xen: Include fp_arm64.c in FPSIMD Xen ARM64 builds (#1523) by @razvand
  • plat/xen: Fix implicit int cast build error (#1518) by @andreistan26
  • drivers/xen: Select XEN_GNTTAB as dependency when used (#1517) by @andreistan26
  • .github/workflows: Show message before starting catalog loop (#1516) by @craciunoiuc
  • plat/kvm: Fix Kconfig dependency warning on Firecracker (#1504) by @michpappas
  • drivers/ukconsole/ns16550: Fix Kconfig warnings on invalid choice (#1503) by @michpappas
  • include/uk/arch: Define bool types for C++ compilers (#1500) by @StefanJum
  • libuklibparam: Fix symbols not present after linkage (#1499) by @michpappas
  • plat/kvm: Remove |isr flag to prevent build error (#1497) by @razvand
  • lib/ukdebug: Add README.md to ukdebug (#1492) by @thass0
  • plat/xen: Fix Arm setup to work with new Xen console (#1490) by @thass0
  • plat/kvm: Enable VGA by default on QEMU x86_64 (#1489) by @michpappas
  • drivers/xen/console: Update nolibc dependency (#1487) by @razvand
  • include/uk/arch: Add kernel __bool type (#1484) by @thass0
  • plat/xen: Fix implicit conversion on return type (#1482) by @andreistan26
  • plat/kvm/arm64: Do not unmask PSTATE.D on IRQ entry (#1481) by @michpappas
  • .github/workflows: Remove jq installation (#1476) by @nderjung
  • lib/nolibc: Fix memory bug in vfscanf (#1474) by @thass0
  • drivers/uktty: Improve early initialization (#1473) by @michpappas
  • Log calls to the multiboot and mkefi scripts (#1469) by @shym
  • .github: Remove CODEOWNERS (#1468) by @mschlumpp
  • Fix missing URL (#1467) by @yfenes
  • drivers/ukbus/pci: Map PCI regions at runtime (#1465) by @michpappas
  • lib/vfscore: Change faccessat with AT_SYMLINK_NOFOLLOW (#1462) by @robertZamfir601
  • lib/vfscore: Fix renameat function in vfscore (#1460) by @sebastianion
  • plat/common/x86: Use X86_VIDEO_MEM_START for SIPI vector allocation (#1457) by @mogasergiu
  • lib/posix-{process, sysinfo}: Take fdtab size from posix-fdtab instead of vfscore (#1455) by @andreittr
  • lib/nolibc: Compile string.c with -O3 (#1454) by @andreittr
  • include/uk/errptr: Fix NULL being an error pointer (#1453) by @andreittr
  • build: Use different progress flags based on the wget version (#1442) by @thass0
  • libs/vfscore: Fix dirent64 warning (#1372) by @razvanrus2003
  • [app-elfloader]: Handle empty file size loadable segments (#85) by @mogasergiu
  • [app-elfloader]: .github/workflows: Introduce catalog tests (#78) by @craciunoiuc
  • [lib-compiler-rt]: .github/workflows: Introduce catalog tests (#20) by @craciunoiuc
  • [lib-libelf]: .github/workflows: Introduce catalog tests (#4) by @craciunoiuc
  • [lib-libuuid]: .github/workflows: Introduce catalog tests (#7) by @craciunoiuc
  • [lib-lua]: .github/workflows: Introduce catalog tests (#10) by @craciunoiuc
  • [lib-lwip]: Fix #59, invalid pointer for dns addr in gcc14 (#60) by @cluosh
  • [lib-lwip]: .github/workflows: Introduce catalog tests (#54) by @craciunoiuc
  • [lib-musl]: .github/workflows: Introduce catalog tests (#77) by @craciunoiuc
  • [lib-nginx]: .github/workflows: Introduce catalog tests (#16) by @craciunoiuc
  • [lib-python3]: .github/workflows: Introduce catalog tests (#23) by @craciunoiuc
  • [lib-redis]: .github/workflows: Introduce catalog tests (#13) by @craciunoiuc
  • [lib-sqlite]: .github/workflows: Introduce catalog tests (#9) by @craciunoiuc
  • [lib-zlib]: .github/workflows: Introduce catalog tests (#12) by @craciunoiuc

A big thank you also to all those who helped in the review process: Alexander Jung, Alex Apostolescu, Andrei Stan, Andrei Tatar, Cezar Crăciunoiu, Florin Postolache, Teodor Țeugea, Maria Pană, Maria Sfîrăială, Michalis Pappas, Mihnea Firoiu, Oleksii Moisieiev, Radu Nichita, Răzvan Deaconescu, Sergiu Moga, Simon Kuenzer, Ștefan Jumărea, Thassilo Schulze

Connect with the community

Feel free to ask questions, report issues, and meet new people.

Join us on Discord!
®

Getting Started

What is a unikernel?Install CLI companion toolUnikraft InternalsRoadmap

© 2025  The Unikraft Authors. All rights reserved. Documentation distributed under CC BY-NC 4.0.