We are proud to announce the latest version of Unikraft. In this release, we introduce many new improvements, including critical bug fixes, improved stability and new features. To summarise:

  • Support for multiple, concurrent memory allocators
  • Support for non-executable pages on x86;
  • Support for IEEE 802.1q and IEEE 802.1ad tagged frames;
  • Access to the TSC-clock for accurate boot and system time;
  • Memory stack-protection;
  • Recursive PCI-bus enumeration;
  • Better error reporting;
  • Support for arm64 fp;
  • Automatic libc-style system call stubs;
  • Improved console I/O;
  • virtio block driver;
  • signals support
  • ANSI-colored output; …and much more!

We have also been hard at work increasing the number of available applications and libraries supported by Unikraft, including:

  • tflite - ML for Mobile and Edge Devices
  • dnnl - Deep Neural Network Library
  • nnpack - an acceleration package for neural network computations
  • tlsf - Memory allocator real time embedded systems
  • allocregion - A simple region-based memory allocator
  • tinyalloc - A tiny allocator designed for tiny embedded systems
  • mimalloc - A general purpose allocator with excellent performance characteristics
  • nettle - A low-level cryptographic library
  • gemmlowp - Low-precision matrix multiplication
  • liblzma - A compression library with an API similar to that of zlib
  • protobuf - Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data.
  • zydis - Fast and lightweight x86/x86-64 disassembler library
  • farmhash - FarmHash provides hash functions for strings and other data
  • flatbuffers - FlatBuffers is an efficient cross platform serialization library