We are proud to announce the latest version update of Unikraft, v0.15.0! This release brings important new features and further improvements and stabilizing to the previous release (0.14.0 - Prometheus). It adds new features, a healthy number of fixes and it enhances application support.
Here is the full updates list:
[app-click]
: Add configuration files and run scripts (#5 by @StefanJum[app-click]
: Port app-click to use musl (#4 by @MekalBoy[app-duktape]
: Update setup for developer-centric scripts (#10 by @razvand[app-duktape]
: Add Musl support (#9 by @razvand[app-duktape]
: Added Makefile and Makefile.uk to duktape, including the necessary li… (#7 by @justin9939[app-duktape]
: lib/duktape: port to musl addresses: [#3 (#6](https://github.com/unikraft/app-duktape/pull/3 (#6) by @JoachimBose[app-helloworld-cpp]
: README.md
: Use correct Firecracker JSON file name (#22 by @razvand[app-helloworld-cpp]
: Stefan jum/add dev content (#21 by @StefanJum[app-helloworld-cpp]
: Add KraftKit configuration file for KraftCloud (#20 by @razvand[app-helloworld-cpp]
: kraft.yaml
: Fix contents (#19 by @razvand[app-helloworld-go]
: Add networking support for Go applications (#11 by @razvand[app-helloworld-go]
: Add KraftKit configuration file for KraftCloud (#10 by @razvand[app-helloworld]
: Makefile: Remove lwip (#30 by @razvand[app-helloworld]
: Makefile: Remove lwip (#29 by @razvand[app-helloworld]
: Testlib fxdiv (#28 by @SumairShergill[app-helloworld]
: lib/update/test: added library (#27 by @SumairShergill[app-helloworld]
: lib-intx upadate v0.10.0 (#26 by @ZackYe42[app-helloworld]
: Stefan jum/add dev content (#25 by @StefanJum[app-helloworld]
: Add KraftKit configuration file for KraftCloud (#23 by @razvand[app-httpreply]
: README.md: Update documentation (#20 by @razvand[app-httpreply]
: Stefan jum/add dev content (#19 by @StefanJum[app-httpreply]
: Add KraftKit configuration file for KraftCloud (#18 by @razvand[app-lua]
: Stefan jum/add dev content (#12 by @StefanJum[app-lua]
: Add KraftKit configuration file for KraftCloud (#11 by @razvand[app-lua]
: Makefile: Port app-lua to use musl (#6 by @panagiotiskon[app-nginx]
: README.md: Fix repeating words (#22 by @Mihnea0Firoiu[app-nginx]
: README.md: Update README (#20 by @razvand[app-nginx]
: Stefan jum/add dev content (#17 by @StefanJum[app-nginx]
: Add KraftKit configuration file for KraftCloud (#16 by @razvand[app-python3]
: README.md: Fix typo (#24 by @gabrielpitic[app-python3]
: README.md: Update kraft run command (#23 by @SorinAlexB[app-python3]
: Update setup for developer-centric scripts (#21 by @razvand[app-python3]
: kraft.cloud.yaml
: Add networking support (#20 by @razvand[app-python3]
: Simplify root filesystem (#19 by @razvand[app-python3]
: Add KraftKit configuration file for KraftCloud (#18 by @razvand[app-python3]
: kraft.yaml: Update libraries order (#14 by @StefanJum[app-redis]
: Update Redis app directory (#20 by @razvand[app-redis]
: Add kraft.cloud.yaml (#19 by @razvand[app-run-app-elfloader]
: Add new applications and use fs1
as 9p index (#18 by @razvand[app-run-app-elfloader]
: Update prebuilt images to Unikraft 0.14 (#17 by @razvand[app-run-app-elfloader]
: [run.sh] Let user use custom QEMU arguments (#11 by @costinsin[app-sqlite]
: Stefan jum/add dev content (#13 by @StefanJum[app-sqlite]
: Add KraftKit configuration file for KraftCloud (#12 by @razvand[app-testing]
: Introduce generate.py script (#4 by @razvand[app-wamr]
: Update setup for developer-centric scripts (#7 by @razvand[app-wamr]
: Update README.md (#6 by @chococandy63[app-wamr]
: add makefile, makefile.uk (#4 by @akouk[run-app-elfloader]
: Add new applications and use fs1
as 9p index (#18 by @razvand[run-app-elfloader]
: Update prebuilt images to Unikraft 0.14 (#17 by @razvand[run-app-elfloader]
: [run.sh] Let user use custom QEMU arguments (#11 by @costinsin[lib-click]
: Update lib click to the latest Unikraft version (#7 by @StefanJum[lib-wamr]
: patches
: Remove patch 0005
: main
adaptation (#9 by @razvand[lib-wamr]
: base to pbase (#2 by @akouk[lib-python-numpy]
: Makefile.uk: Fix internal build include paths (#2 by @andreittr[lib-python-pillow]
: Port upstream Pillow 10.0.0 (#1 by @andreittr[lib-python3]
: Add support for the Pillow extension (#22 by @andreittr[lib-python3]
: Makefile.uk: Supress warnings (#21 by @andreittr[lib-python3]
: Enable the mmap
stdlib module (#20 by @andreittr[lib-python3]
: Makefile.uk: Fix generated header include path (#19 by @andreittr[lib-python3]
: patches: Fix ctypes import error (#18 by @andreittr[lib-python3]
: Introduce Library.uk (#14 by @nderjung[dynamic-apps]
: Add sed pre-built binary (#103 by @gabrielpitic[dynamic-apps]
: Add awk PIE build (#102 by @andreistan26[dynamic-apps]
: README.md: Fix "dyamic" typo (#101 by @SorinAlexB[dynamic-apps]
: Add tar pre-built binary (#100 by @gabrielpitic[dynamic-apps]
: lang/go: Update libraries for helloworld (#99 by @razvand[dynamic-apps]
: nginx: Ingore generated files (#98 by @razvand[dynamic-apps]
: gzip: Use input.txt as input file (#97 by @razvand[dynamic-apps]
: extract.sh
: Simplify script (#96 by @razvand[dynamic-apps]
: openssl: Update binary and libraries (#95 by @razvand[dynamic-apps]
: bzip2
: Use input.txt
as input file (#94 by @razvand[dynamic-apps]
: lang/go: Rename client-server to client_server (#93 by @razvand[dynamic-apps]
: Add Python helloworld (#92 by @razvand[dynamic-apps]
: imagemagick: Remove duplicate libraries (#91 by @StefanJum[dynamic-apps]
: Add curl into dynamic apps (#86 by @cozkul[dynamic-apps]
: added wget to dynamic-apps (#83 by @sinamhdv[dynamic-apps]
: Add du linux app (#82 by @hadisinaee[dynamic-apps]
: app/linux: add md5sum (#81 by @Moh3nsalehi[dynamic-apps]
: add blackjack example for c++ (#78 by @br-zhou[dynamic-apps]
: adding unzip to dynamic-apps (#74 by @Moh3nsalehi[dynamic-apps]
: adding netcat to dynamic apps (#73 by @hadisinaee[dynamic-apps]
: Grep: Add grep dynamic executable (#71 by @chococandy63[dynamic-apps]
: imagemagick: Add magick command (#70 by @TiagoRG[dynamic-apps]
: imagemagick: convert command (#69 by @GuilhermeVieiraDev[dynamic-apps]
: lang
: Add Linux pre-built Python interpreter (#68 by @razvand[dynamic-apps]
: lang/python
: Add HTTP server program (#67 by @razvand[dynamic-apps]
: lang/go
: Add simple HTTP program (#66 by @razvand[dynamic-apps]
: lang/c++
: Add simple HTTP program (#65 by @razvand[dynamic-apps]
: lang/c
: Add simple HTTP program (#64 by @razvand[dynamic-apps]
: Add busybox 1.36.1 (#63 by @StefanJum[dynamic-apps]
: lang/rust
: Introduce simple HTTP server (#62 by @razvand[dynamic-apps]
: Add nats-server application build from source (#58 by @SHOREQU69[dynamic-apps]
: Add GnuPG dynamic application built from source (#57 by @andreistan26[dynamic-apps]
: Add ffmpeg-source (#55 by @razvang0307[dynamic-apps]
: Add GnuPG 2.4.3 (#52 by @mtimaN[dynamic-apps]
: Add ffmpeg 5.1.2 (#49 by @timmmyeo[dynamic-apps]
: Add busybox 1.36.1 (#17 by @i-Pear[dynamic-apps]
: Add perl 5.36 (#14 by @LucaSeri[dynamic-apps]
: Add NodeJS 18.15.0 (#10 by @maniatro111[app-elfloader]
: Add lang/c/http_server to run.yaml (#60 by @ALEX11BR[app-elfloader]
: Add du to run.yaml (#59 by @valudimi[app-elfloader]
: Add GnuPG to run.yaml (#58 by @ALEX11BR[app-elfloader]
: Add du to run.yaml (#56 by @valudimi[app-elfloader]
: Add gzip to run.yaml (#55 by @ALEX11BR[app-elfloader]
: Make VDSO creation work for cross-compilation and Darwin (#54 by @skuenzer[app-elfloader]
: Update scripts (#53 by @razvand[app-elfloader]
: Added support for openssl to run.yaml (#52 by @sinamhdv[app-elfloader]
: Added curl config into run.yaml (#42 by @cozkul[app-elfloader]
: Added support for running echo by modifying run.yaml (#41 by @JackieHam[app-elfloader]
: Made changes to run.yaml file to support running bzip2 application (#39 by @JackieHam[app-elfloader]
: Add ls to run.yaml (#37 by @willgao23[app-elfloader]
: Add node and gnupg to run.yaml (#33 by @SorenEricMent[app-elfloader]
: scripts: Add support for running http_server-cpp (#32 by @chococandy63[app-elfloader]
: scripts: Add support for running helloworld-cpp (#31 by @willgao23[app-elfloader]
: Add sqlite3 to run.yaml (#30 by @SorenEricMent[app-elfloader]
: mmap
each ELF segment if CONFIG_LIBPOSIXMMAP
is enabled (#28 by @mogasergiu[app-elfloader]
: Add developer-centric contents (#27 by @razvand[app-elfloader]
: Add KraftKit configuration files (#26 by @razvand[lib-cairo]
: Port upstream Cairo 1.17.8 (#1 by @andreittr[lib-fribidi]
: Port upstream Fribidi 1.0.13 (#1 by @andreittr[lib-giflib]
: Port upstream GIFLIB 5.2.1 ([#1 by @andreittr[lib-harfbuzz]
: Port upstream HarfBuzz 8.1.1 (#1 by @andreittr[lib-libdeflate]
: Port upstream libdeflate 1.18 (#1 by @andreittr[lib-libtiff]
: Port upstream libtiff 4.5.1 (#3 by @andreittr[lib-libwebp]
: Port upstream libwebp 1.3.1 (#1 by @andreittr[lib-littlecms]
: Port upstream LittleCMS 2.15 (#1 by @andreittr[lib-openjpeg]
: Port upstream OpenJPEG 2.5.0 (#3 by @andreittr[lib-pixman]
: Port upstream pixman 0.42.2 (#1 by @andreittr[lib-python-pillow]
: Port upstream Pillow 10.0.0 (#1 by @andreittr[lib-raqm]
: Port upstream Raqm 0.10.1 (#1 by @andreittr[lib-xz]
: Port upstream xz 5.4.4 (#1 by @andreittr[lib-zstd]
: Port upstream zstd 1.5.5 (#1 by @andreittrLibrary.uk
)
[lib-axtls]
: Introduce Library.uk (#2 by @nderjung[lib-boost]
: Introduce Library.uk (#8 by @nderjung[lib-bzip2]
: Introduce Library.uk (#2 by @nderjung[lib-c-ares]
: Introduce Library.uk (#2 by @nderjung[lib-click]
: Introduce Library.uk (#5 by @nderjung[lib-compiler-rt]
: Introduce Library.uk (#15 by @nderjung[lib-dafny]
: Introduce Library.uk (#1 by @nderjung[lib-dnnl]
: Introduce Library.uk (#2 by @nderjung[lib-duktape]
: Introduce Library.uk (#3 by @nderjung[lib-eigen]
: Introduce Library.uk (#4 by @nderjung[lib-farmhash]
: Introduce Library.uk (#1 by @nderjung[lib-fft2d]
: Introduce Library.uk (#2 by @nderjung[lib-flatbuffers]
: Introduce Library.uk (#1 by @nderjung[lib-gcc]
: Introduce Library.uk (#4 by @nderjung[lib-gemmlowp]
: Introduce Library.uk (#2 by @nderjung[lib-googletest]
: Introduce Library.uk (#3 by @nderjung[lib-http-parser]
: Introduce Library.uk (#7 by @nderjung[lib-intel-intrinsics]
: Introduce Library.uk (#2 by @nderjung[lib-intx]
: Introduce Library.uk (#2 by @nderjung[lib-libc-test]
: Introduce Library.uk (#3 by @nderjung[lib-libcxx]
: Introduce Library.uk (#29 by @nderjung[lib-libcxxabi]
: Introduce Library.uk (#5 by @nderjung[lib-libelf]
: Introduce Library.uk (#2 by @nderjung[lib-libfxdiv]
: Introduce Library.uk (#2 by @nderjung[lib-libgo]
: Introduce Library.uk (#6 by @nderjung[lib-libhogweed]
: Introduce Library.uk (#1 by @nderjung[lib-libicu]
: Introduce Library.uk (#1 by @nderjung[lib-libsodium]
: Introduce Library.uk (#9 by @nderjung[lib-libtasn1]
: Introduce Library.uk (#1 by @nderjung[lib-libucontext]
: Introduce Library.uk (#4 by @nderjung[lib-libunwind]
: Introduce Library.uk (#8 by @nderjung[lib-libuuid]
: Introduce Library.uk (#3 by @nderjung[lib-libuv]
: Introduce Library.uk (#2 by @nderjung[lib-lua]
: Introduce Library.uk (#6 by @nderjung[lib-lvgl]
: Introduce Library.uk (#3 by @nderjung[lib-lwip]
: Introduce Library.uk (#37 by @nderjung[lib-lzma]
: Introduce Library.uk (#2 by @nderjung[lib-mbedtls]
: Introduce Library.uk (#3 by @nderjung[lib-micropython]
: Introduce Library.uk (#8 by @nderjung[lib-mimalloc]
: Introduce Library.uk (#5 by @nderjung[lib-musl]
: Introduce Library.uk (#60 by @nderjung[lib-nettle]
: Introduce Library.uk (#1 by @nderjung[lib-newlib]
: Introduce Library.uk (#34 by @nderjung[lib-nginx]
: Introduce Library.uk (#14 by @nderjung[lib-nnpack]
: Introduce Library.uk (#2 by @nderjung[lib-open62541]
: Introduce Library.uk (#2 by @nderjung[lib-openssl]
: Introduce Library.uk (#6 by @nderjung[lib-pcre]
: Introduce Library.uk (#4 by @nderjung[lib-protobuf]
: Introduce Library.uk (#5 by @nderjung[lib-psimd]
: Introduce Library.uk (#2 by @nderjung[lib-pthread-embedded]
: Introduce Library.uk (#12 by @nderjung[lib-pthreadpool]
: Introduce Library.uk (#2 by @nderjung[lib-python3]
: Introduce Library.uk (#14 by @nderjung[lib-redis]
: Introduce Library.uk (#11 by @nderjung[lib-ruby]
: Introduce Library.uk (#3 by @nderjung[lib-rust]
: Introduce Library.uk (#5 by @nderjung[lib-shfs]
: Introduce Library.uk (#2 by @nderjung[lib-sqlite]
: Introduce Library.uk (#7 by @nderjung[lib-tflite]
: Introduce Library.uk (#5 by @nderjung[lib-tinyalloc]
: Introduce Library.uk (#2 by @nderjung[lib-tlsf]
: Introduce Library.uk (#3 by @nderjung[lib-wamr]
: Introduce Library.uk (#5 by @nderjung[lib-zlib]
: Introduce Library.uk (#6 by @nderjung[lib-zydis]
: Introduce Library.uk (#1 by @nderjungdrivers/virtio
: Pass virtio-mmio devices via the cmdline (#1116 by @michpappasdrivers/virtio
: Support modern virtio (#1115 by @michpappasplat
: Migrate bus drivers to drivers/ukbus (#1024 by @michpappasplat
: Migrate gic
to drivers/ukintctlr
(#971 by @rares-miculescudrivers
: Move virtio from plat/drivers/
to drivers/
(#967 by @rares-miculesculib
: Add ofw from plat/drivers
to lib
(#966 by @rares-miculescuplat/kvm
: Adapt EFI boot to new APIC driver (#1138 by @kha-dinhbuild
, scripts
: Ensure using GNU coreutils on Darwin (#1109 by @skuenzersupport/scripts
: mkcpio: Support Darwin (MacOS) environments (#1078 by @skuenzerbuild
: Support replacing internal libraries (#1104 by @skuenzerdrivers/virtio
: Implement support for event index notification suppression (#1089 by @mschlumpp{lib/uknetdev,drivers/virtio}
: Add support for IPv4/TCP segmentation offloading (#1088 by @mschlumpplib/ukintctlr
: Introduce uk_intctlr API - Re-arch IRQ handling (#1103 by @michpappasplat/kvm/x86
: Pre-initialize VGA framebuffer terminal_buffer
(#1136 by @mogasergiuplat/kvm/x86
: Use ur_pte
for the first page table (#1135 by @mogasergiulib/uklibid
: Clang-compatible compile option flags (#1131 by @skuenzerbuild
: Use ISO 8601 format for $(HOSTUTC)
(#1127 by @skuenzerplat/kvm/x86
: Make zero page inaccessible (#1123 by @mschlumppplat/common/acpi
: Check for offline GICC
's and fix VGIC
IRQ Mode
flag (#1120 by @mogasergiubuild
: Recompile everything on .config
changes (workaround) (#1119 by @skuenzerMakefile
: Save UK_NAME on savedefconfig (#1118 by @StefanJumlib/uklibid
: Library metadata (#1117 by @skuenzerplat/common/x86
: Make SIPI Vector
related symbols relocations independent from ukreloc
(#1113 by @mogasergiudriver/ukbus
: Fix an invalid check in PCI probe (#1110 by @kha-dinhbuild
: Add target to print unikernel LoC stats (#1108 by @andreittrlib/vfscore
: Fix spelling mistake in Config.uk
(#1106 by @chococandy63lib/nolibc
: Move prctl.h inside nolibc/musl-imported (#1102 by @TAGOliveira201000lib
: Remove vfscore_mount_initrd_volume-related build warnings (#1100 by @TAGOliveira201000lib
: Remove timeval-related build warnings (#1099 by @TAGOliveira201000lib/9pfs
: Return ENOTSUP on ioctl requests except for FIONBIO (#1098 by @StefanJumlib
Remove dirent64-related build warnings (#1097 by @TAGOliveira201000arch
: Add an non-aligned version for stack-pushing (#1096 by @i-Peardrivers
: Add PLAT_COMMON_BASE to the include path (#1095 by @michpappaslib/vfscore
: Fix pipe error codes (#1093 by @andreittrbuild
: Forward YACC/LEX to kconfig make invocation (#1092 by @mschlumpparch
: Align virtual/physical address validation on x86 and arm64 (#1091 by @kha-dinhlib/uklock
: Remove the rwlock_{upgrade,downgrade}
functions (#1090 by @mschlumpplib/9pfs
: Add check for NULL
data
in uk_9pfs_parse_options
(#1086 by @mogasergiuarch/ctx.h
: Update ctx members declaration order (#1085 by @StefanJumbuild
: Always save architecture with savedefconfig (#1084 by @skuenzerMakefile
: Fix support for external platforms (#1082 by @kubanrobplat/kvm
: Fix typo in configuration variable (#1081 by @kubanrobelf64_to_32.py
also build the multiboot
header and rename it to multiboot.py
(#1079 by @mogasergiusupport/scripts
: checkpatch
WARN
on commit summary > 70 chars (#1077 by @mogasergiuplat/virtio
: Fix vring_avail_event macro (#1076 by @mschlumpplib/ramfs
: Fix UAF bug when deleting open file (#1075 by @andreittrlib/vfscore
: Fix potential vfscore_file
mem leak (#1074 by @andreittrlib/ukmmap
: Fix wrong return of NULL (#1073 by @andreittrlib/posix-user
: Allow custom user & group (#1072 by @andreittrlib/ukcpio
: Misc fixes and improvements (#1071 by @andreittrlib/vfscore
: Embedded initrd (#1070 by @skuenzerlib/vfscore
: Replace dup2
syscalls with dup3
(#1069 by @andreittrdoc
: Add KIT to ADOPTERS.md
(#1068 by @lluchsMakefile
: Fix build verbosity for V=0 (#1066 by @StefanJumplat/kvm
: Use AllocatePages()
to allocate memory regions in UEFI
(#1061 by @mogasergiuplat
: Let coalescing method ensure memregion alignment (#1060 by @mogasergiulib/nolibc
: Add __errno_location
implementation (#1044 by @Starnoxlib/nolibc
: Provide symbols for malloc
, free
, calloc
, realloc
... (#1042 by @Starnox[lib-click]
: Makefile.uk: Fix build-time infinite loop (#6 by @eduardvintila[lib-intel-intrinsics]
: Add cpuid.h
header (#5 by @andreittr[lib-libcxx]
: Makefile.uk: Add -D_GNU_SOURCE
to C++ flags (#34 by @andreittr[lib-libffi]
: Fix missing internal function declaration (#2 by @andreittr[lib-libgo]
: Config.uk
: Imply LIBUKMMAP
/ LIBPOSIX_MMAP
(#8 by @razvand[lib-libunwind]
: Select lib-compiler-rt
as Kconfig
dependency (#10 by @andreittr[lib-libuuid]
: Makefile.uk: Restrict private headers to -iquote
(#6 by @andreittr[lib-lua]
: Fix structure member naming in patches (#5 by @panagiotiskon[lib-newlib]
: Makefile.uk: Suppress more warnings (#36 by @andreittr[lib-nginx]
: Config.uk
: Imply LIBUKMMAP
(#15 by @razvand[lib-python-numpy]
: Makefile.uk: Fix internal build include paths (#2 by @andreittr[lib-libcxx]
: Assign -Wno-keyword-compat
to clang only (#35 by @skuenzer[lib-libelf]
: Set ELFTC_HAVE_MMAP
to 1
(#3 by @mogasergiu[lib-sqlite]
: Makefile.uk
: Register library using addlib_s
(#8 by @andreittrA big thank you also to all those who helped in the review process: Adina-Maria Vaman, Andra Paraschiv, Andrei Tatar, Andrei Topală, Cezar Crăciunoiu, Delia Pavel, Eduard Vintilă, Eduard-Florin Mihăilescu, Ioan-Teodor Țeugea, Jakub Ciolek, Marco Schlumpp, Maria Sfîrăială, Michalis Pappas, Radu Nichita, Rareș Miculescu, Răzvan Deaconescu, Răzvan Vîrtan, Robert Kuban, Sergiu Moga, Simon Kuenzer, Ștefan Jumarea, Tianyi Liu.
Feel free to ask questions, report issues, and meet new people.