We are proud to announce the latest version update of Unikraft, v0.16.0! This release brings important new features and further improvements and stabilizing to the previous release (0.15.0 - Pandora). It adds new features, a healthy number of fixes and it enhances application support.
Here is the full updates list:
lib/posix-socket
: Socket events (#1224) by @skuenzer.github/workflows
: Add workflow to merge approved PRs (#1223) by @craciunoiucarch
: Introduce dedicated CPU Exception stack configuration (#1214) by @mogasergiu.github/workflows
: Add workflow to merge approved PRs (#1209) by @craciunoiuclib/posix-fdtab
and lib/vfscore
destructors (#1205) by @mogasergiulib/posix-{fdio,socket}
: Add stat support to socket files (#1203) by @andreittrlib/vfscore
: initrd: extract
option (#1201) by @skuenzerlib/ramfs
: Implement copying of directories (#1190) by @mschlumpplib/posix-environ
: Add README.md
file for posix-environ (#1185) by @DeliaPavellib/posix-environ
: Add comments for posix-environ (#1184) by @DeliaPavellib/*
: Introduce support for AF_UNIX
sockets (#1183) by @andreittrlib/posix-socket
: Port from vfscore to new uk_file
(#1182) by @andreittrlib/ukcpio
: Refactor and improve CPIO extraction (#1181) by @andreittrlib/posix-timerfd
: Introduce timerfd support (#1179) by @andreittrlib/posix-sysinfo
: Add documentation (#1178) by @StefanJumlib/posix-user
: Add README.md file for posix-user (#1177) by @DeliaPavellib/posix-time
: Add README.md (#1176) by @RaduNichitaUK_LLSYSCALL_R_U_DEFINE
and register clone
with it (#1175) by @mogasergiulib/*
: Move POSIX pipes out of vfscore (#1172) by @andreittrlib/*
: Replace posix-event
with independent libraries (#1171) by @andreittrlib/*
: Introduce posix-fdio (#1170) by @andreittrbuild
: Introduce UK_IMAGE_NAME_OVERWRITE
make var (#1169) by @nderjunglib/*
: Introduce posix-fdtab (#1168) by @andreittrlib/uknetdev
: Add ipv4_dns0_addr
configuration (#1167) by @mschlumpplib/ukfile
: Introduce the ukfile library (#1165) by @andreittrlib/posix-user
: Add code comments (#1164) by @DeliaPavellib/uktimeconv
: Add conversion functions for common timestamp structs (#1162) by @andreittrinclude
: Add strong/weak reference counting (#1160) by @andreittrplat/common/arm
+ lib/posix-process
: Various fixes for Golang ARM64 support (#1158) by @eduardvintilalib/ukboot
: Shutdown feature (#1148) by @skuenzerlib/vfscore
: Introduce ukopts
, a new vfs.fstab
option and mkmp
, a ukopts
option (#1145) by @mogasergiulib/vfscore
: Re-enable the mounting of initrd
's through fstab
(#1144) by @mogasergiu.github/workflows
: Add PR auto-labelling (#1142) by @craciunoiuc.github/workflows
: Add checkpatch checks for commits (#1141) by @craciunoiuc.github
: Enable dependabot for action bumping (#1140) by @craciunoiuc.github/workflows
: Add commit and PR format checks (#1139) by @craciunoiuc.github/workflows
: Add github workflows checks (#1137) by @craciunoiuc.github/workflows
: Add python checks for support scripts (#1134) by @craciunoiuc.github/workflows
: Add shellcheck for scripts (#1133) by @craciunoiuc{include/, lib/uksched, lib/uklock}
: Add static initializers (#1126) by @andreittrinclude/arch
: Add atomic fetch & AND operation (#1125) by @andreittrplat/kvm/efi.c
: Obtain MemoryMap again and retry when ExitBootService fails (#1105) by @kha-dinhlib/nolibc
: Introduce 'FILE' object APIs (#1043) by @Starnoxplat
: Migrate ns16550 to drivers/uktty (#1026) by @michpappasplat
: Migrate pl011 to drivers/uktty (#1025) by @michpappasinclude/uk
: Move compiler definitions from essentials.h
to compiler.h
(#960) by @rares-miculesculib
: Move atomic.h
arhitecture specific code to new ukatomic
(#950) by @Starnoxplat
: Move register definitions into arch (#937) by @rares-miculesculib/ukgcov
: Introduce library for code coverage (#906) by @Starnoxlib/devfs
: Add Doxygen-style comments (#714) by @calex257[dynamic-apps]
: Couchdb src (#56) by @mtimaN[app-elfloader]
: Namespace VDSO config option (#68) by @skuenzer[app-elfloader]
: build: Upgrade Kraftfile
to v0.6 specification (#66) by @nderjung[app-elfloader]
: Register arch_prctl
through UK_LLSYSCALL_R_U_DEFINE
(#65) by @mogasergiu[app-python3]
: README.md: Fix typo and update kraft run (#25) by @gabrielpitic[app-uwebsockets]
: Pull uSockets and uWebSockets from Unikraft repos (#1) by @jviotti[lib-libgo]
: Add support for AArch64 (#9) by @eduardvintila[lib-lwip]
: Adapt to new auxiliary stack argument of libuksched
API (#41) by @mogasergiu[lib-lwip]
: Update to latest inittab changes (#40) by @skuenzer[lib-lwip]
: socket.c: Port to the new posix-socket API (#39) by @andreittr[lib-lwip]
: Modify atomic.h
import line to accomodate plat re-arch (#36) by @Starnox[lib-lwip]
: Add RAW socket type to LwIP (#2) by @flapjack321[lib-musl]
: patches: Prefault page tables used in stacks allocated for threads (#73) by @eduardvintila[catalog]
: feat(library): Introduce Node 18 as library (#22) by @razvand[catalog]
: feat(library): Update base configuration (#21) by @razvand[catalog]
: feat: add "Hello, world!" Rust-based example (#16) by @mkroening[catalog]
: feat(base): Introduce base (ELFLoader) to library (#11) by @razvand[catalog]
: feat(library): Introduce Lua (#6) by @razvand[catalog]
: feat(workflows): Add linting GitHub Actions (#5) by @gabrielmocanu[catalog]
: feat(library): Introduce SQLite (#4) by @razvand[catalog]
: feat(examples): Introduce HTTP C application (#3) by @razvandlib/posix-fdtab
: Fix fdtab cleanup w/o asserts (#1239) by @andreittrlib/fdtab
: Fix compiler warnings (#1237) by @michpappaslib/posix-unixsocket
: Silence unused variable warnings (#1236) by @michpappaslib/vfscore
: Fix compiler warnings on mismatched bound (#1235) by @michpappasdrivers/virtio/9p
: Fix warning on unused vq
parameter (#1234) by @michpappaslib/posix-fdtab
: Export fdtab init priority (#1231) by @StefanJumlib/posix-pipe
: Fix stack overflow on struct init (#1228) by @andreittrlib/posix-fdio
: Handle ioctl(FIOCLEX|FIONCLEX) (#1227) by @andreittrlib/uknetdev
: Include semaphore.h
conditionally to DISPATCHERTHREADS (#1220) by @michpappasplat/kvm/arm
: Fix implicit declaration of enforce_w_xor_x()
(#1217) by @michpappaslib/ukboot
: Fix warning on undefined variable (#1216) by @michpappaslib/vfscore
: Use unsigned long
for fcntl
's third argument's type (#1213) by @mogasergiulib/posix-fdtab
: Reprioritize fdtab init & cleanup (#1210) by @andreittr.github/workflows
: Do not run checkpatch on pushes (#1206) by @craciunoiuclib/ramfs
: Return proper errors on ioctl
calls (#1202) by @StefanJumlib/posix-{pipe,unixsocket}
: Fix event delivery on closing (#1208) by @andreittrlib/posix-fdio
: Handle FD_CLOEXEC
flag in fcntl correctly (#1200) by @andreittrlib/posix-poll
: Make epoll_ctl
identify files by (fd + file description) (#1198) by @andreittrbuild
: Do not run integration tests on markdown-only changes (#1197) by @nderjunglib/uklock
: Fix recursive mutex static inititializer (#1195) by @StefanJumlib/uklock
: Fix static initializer for recursive mutexes (#1194) by @skuenzerlib/ukfile
: Ignore MSG_NOSIGNAL
flags for UNIX sockets (#1189) by @mschlumpplib/vfscore
: Use recursive mutexes for vnodes (#1192) by @mschlumpplib/posix-fdio
: Remove pointer dereference from fcntl (#1191) by @mschlumpplib/syscall_shim
: Fix arch_prctl
's ARCH_SET_FS
handling (#1173) by @mogasergiuplat/xen/x86_64
: Add missing segment alignment for xen
(#1166) by @andreistan26include/arch
: Make time constants signed (#1157) by @andreittrinclude/arch
: Add raw compare-exchange operation (#1156) by @andreittrlib/vfscore
: Fix crash in fstatat on NULL
args (#1155) by @andreittrlib/posix-time
: Allow NULL
arg in clock_getres
(#1154) by @andreittrukboot
: Remove explicit PLAT_KVM
dependency (#1153) by @kubanrobplat/common
: Fix missing chosen node handling (#1151) by @kubanrobarch/arm64
: Fix ukarch_tlb_flush_entry
(#1149) by @kubanroblib/devfs
: Remove dependency on LIBVFSCORE_AUTOMOUNT_ROOTFS
(#1146) by @mogasergiulib/nolibc,lib/isrlib
: Fix strncpy (#973) by @haesbaert[app-elfloader]
: Silence warning on unused err_unload_vaimg
label (#70) by @michpappas[lib-libunwind]
: Fix unwinding (#11) by @mschlumpp[lib-lwip]
: Silence warning on arithmetic operation on socket flags (corrected) (#44) by @michpappas[lib-lwip]
: Silence warning on arithmetic operation on socket flags (#43) by @michpappas[lib-rust]
: lang/rust: Change cargo flag (#4) by @fabianpatras[lib-uwebsockets]
: Upgrade uWebSockets to v20.49.0
(#2) by @jviotti[lib-uwebsockets]
: Upgrade to uWebSockets v20.48.0
(#1) by @jviotti[catalog]
: fix(nginx/1.15): Fix missing file (error.log
) (#18) by @nderjung[catalog]
: refactor: Application versions to their own directory (#9) by @nderjung[catalog]
: fix(README): Correct paths to actions and library directories (#13) by @nderjung[catalog]
: fix(merge-oci-digests): Show --all
packages (#8) by @nderjung[catalog]
: library/*
: Use short form for target definitions (#2) by @razvand[app-elfloader]
: Fix typo in README (#67) by @RaduNichita[app-elfloader]
: Correctly set Program Header
offset used for aux vector's AT_PHDR
(#64) by @mogasergiu[app-elfloader]
: Do not change real fs_base
register in arch_prctl
(#63) by @mogasergiuA big thank you also to all those who helped in the review process: Alexander Jung, Cezar Crăciunoiu, Eduard Mihăilescu, Teodor Țeugea, Marco Schlumpp, Maria Sfîrăială, Michalis Pappas, Radu Nichita, Răzvan Deaconescu, Răzvan Vîrtan, Sergiu Moga, Simon Kuenzer, Stefan Jumarea.
Feel free to ask questions, report issues, and meet new people.