v0.15.0 Pandora
·
547 commits
to staging
since this release
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:
🚀 New Features
- Improved application documentation and support scripts
[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 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 usefs1
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 usefs1
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 patch0005
:main
adaptation (#9) by @razvand[lib-wamr]
: base to pbase (#2) by @akouk
- Improved Python support
[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 themmap
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
- Extended application support
[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
: Useinput.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-[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-[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 ifCONFIG_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 @andreittr
- Steps towards library versioning (
Library.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 @nderjung
- Firecracker networking support + modern virtio
drivers/virtio
: Pass virtio-mmio devices via the cmdline (#1116) by @michpappasdrivers/virtio
: Support modern virtio (#1115) by @michpappas
- Initial ARM64 binary compatibility support
- Re-arch drivers
plat
: Migrate bus drivers to drivers/ukbus (#1024) by @michpappas- Introduce drivers subsystem (#1023) by @michpappas
plat
: Migrategic
todrivers/ukintctlr
(#971) by @rares-drivers
: Move virtio fromplat/drivers/
todrivers/
(#967) by @rares-lib
: Add ofw fromplat/drivers
tolib
(#966) by @rares-
plat/kvm
: Adapt EFI boot to new APIC driver (#1138) by @kha-build
,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 @michpappas
🐛 Bug Fixes & Improvements
plat/kvm/x86
: Pre-initialize VGA framebufferterminal_buffer
(#1136) by @mogasergiuplat/kvm/x86
: Useur_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 offlineGICC
's and fixVGIC
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
: MakeSIPI Vector
related symbols relocations independent fromukreloc
(#1113) by @mogasergiudriver/ukbus
: Fix an invalid check in PCI probe (#1110) by @kha-build
: Add target to print unikernel LoC stats (#1108) by @andreittrlib/vfscore
: Fix spelling mistake inConfig.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-drivers
: 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-lib/uklock
: Remove therwlock_{upgrade,downgrade}
functions (#1090) by @mschlumpplib/9pfs
: Add check forNULL
data
inuk_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 @kubanrob- Make
elf64_to_32.py
also build themultiboot
header and rename it tomultiboot.py
(#1079) by @mogasergiu support/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 potentialvfscore_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
: Replacedup2
syscalls withdup3
(#1069) by @andreittrdoc
: Add KIT toADOPTERS.md
(#1068) by @lluchsMakefile
: Fix build verbosity for V=0 (#1066) by @StefanJumplat/kvm
: UseAllocatePages()
to allocate memory regions inUEFI
(#1061) by @mogasergiuplat
: Let coalescing method ensure memregion alignment (#1060) by @mogasergiulib/nolibc
: Add__errno_location
implementation (#1044) by @Starnoxlib/nolibc
: Provide symbols formalloc
,free
,calloc
,realloc
... (#1042) by @Starnox[lib-click]
: Makefile.uk: Fix build-time infinite loop (#6) by @eduardvintila[lib-intel-intrinsics]
: Addcpuid.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
: ImplyLIBUKMMAP
/LIBPOSIX_MMAP
(#8) by @razvand[lib-libunwind]
: Selectlib-compiler-rt
asKconfig
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
: ImplyLIBUKMMAP
(#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]
: SetELFTC_HAVE_MMAP
to1
(#3) by @mogasergiu[lib-sqlite]
:Makefile.uk
: Register library usingaddlib_s
(#8) by @andreittr
A big thank you also to all those who helped in the review process: @adinamariav, @andraprs, @andreittr, @Krechals, @craciunoiuc, @DeliaPavel, @eduardvintila, @Starnox, @John-Ted, @jake-ciolek, @mschlumpp, @mariasfiraiala, @michpappas, @RaduNichita, @rares-miculescu, @razvand, @razvanvirtan, @kubanrob, @mogasergiu, @skuenzer, @StefanJum, @I-pea