We are proud to announce the latest version of Unikraft, v0.10.0 (Phoebe)! In this release, we introduce many new improvements, including critical bug fixes, improved stability and new features. To summarize:
🚀 New Features
- Introduction of
posix-futex
andfutex
syscall (#488) by Adina Smeu - Introduce new internal eventpoll API to
vfscore
(#484) by Marc Rittinghaus - Introduction of
posix-event
andepoll*
syscalls (#485) by Marc Rittinghaus and Hugo Lefeuvre - Introduction of
posix-socket
abstraction library (#65) by Alexander Jung and Marc Rittinghaus - Paging support on arm64 based on VMSAv8-64 (#506) by Michalis Pappas
- SMP implementation for x86_64 (#502) by Marc Rittinghaus
- Add
clock_getres
syscall (#503) by Stefan Jumarea - New syscalls and cleanups to
posix-user
(#504) by Marc Rittinghaus - Add option to enforce W^X (
f21273f
via #506) by Marc Rittinghaus - New
rt_sig*
systems registered inuksignal
(#314) by Răzvan Vîrtan
🐛 Bug Fixes & Improvements
- Fix
uktest
to print custom formats (#515) by Florin Postolache - Ignore only unnumbered legacy syscalls in
syscall_shim
(#509) by Răzvan Vîrtan - Fix parsing error in
fdt_get_address
(ofw
device trees) (#507) by Robert Kuban - Solve redefining conflicts in
uksignal
(#453) by Dragos Iulian Argint - Solve redefining conflicts in
vfscore
(#441) by Dragos Iulian Argint - Solve redefining conflicts in
posix-process
(#442) by Dragos Iulian Argint - Fix syscall definitions in
posix-process
(#526) by Dragos Iulian Argint - Force argument order for
uk_vsyscall_r
insyscall_shim
(#512) by Marc Rittinghaus - Fix warnings about unused variables in
plat/arm/lcpu
(#479) by Marc Rittinghaus - Faster builds by considering obj-only libs for linking (#482) by Robert Kuban
- Cleanup GIC-v2/GIC-v3 code (#478) by Marc Rittinghaus
- Fix spinlock headers (#477) by Marc Rittinghaus
- Update reference to
liftoff
(#487) by Simon Kuenzer - Include missing
syscall.h
invfscore
(#527) by Simon Kuenzer - Various fixes/improvements in preparation for new scheduling API (#524) by Simon Kuenzer
- Add data barrier after PTE writes in arm64 (#525) by Aleksandr Iashchenko and Michalis Pappas
- Reorder macros in the linuxu system call header files (#438) by Florin Postolache
- Preserve x18 in exception vectors for arm64 on kvm (#523) by Michalis Pappas
- Add call to
_init_paging
insetup.c
for x86 on kvm (#483) by Cristian Vijelie
A big thank you also to all those who helped in the review process: Gabi Mocanu, Sergiu Moga, Cezar Craciunoiu, Dragos Iulian Argint, Răzvan Vîrtan, Gabriel Mocanu, Stefan Jumarea, Renê de Souza Pinto, Razvan Deaconescu, Simon Kuenzer and Marc Rittinghaus.
For more information, check out the accompanying blog post or view the full changelog.