We are proud to announce the latest version of Unikraft, v0.8.0 (Enceladus)! In this release, we introduce many new improvements, including critical bug fixes, improved stability and new features. To summarise:
🚀 New Features
- Introduce Pointer Authentication (PAuth) support (#369) by @michpappas
- Virtual Memory API (x86_64, kvm) (#338) by @marcrittinghaus
- Support for partial checksumming / checksum offloading (#308) by @skuenzer
- Add
uk_eventfor new trap interface (#227, #230, #231) by @marcrittinghaus - Additional interrupt context safe functions (#192) by @cristian-vijelie
- TAP network device driver (#251) by @hisharanwithu
- Add basic test suite to
ukargparse(#392, #431) by @StefanJum - Add
uk_list_last_entry_or_null(#396) by @marcrittinghaus - Add
mprotect(#394) by @marcrittinghaus - Add support for arm64 on linuxu (#418) by @maniatro111
🐛 Bug Fixes & Improvements
- Rewrite of ubsan library (#404) by @marcrittinghaus
- Migrate and update docs (#252) by @nderjung
- Allow
mkcpioto quietly gzip compress CPIO images (#359) by @aadhi0319 - Enhance arm(64)/x86_64 Bitscan Functions (#395) by @marcrittinghaus
- Add
getgrgidto export (#410) by @marcrittinghaus - Do not invoke
rustcifukrustis not enabled (#403) by @michpappas - Fixes layout of assert table on ARM64 (#397) by @marcrittinghaus
- Add dependency to
lib/ukallocforlinuxu(#430) by @skuenzer - Fix quoted whitespaces handling (#433) by @StefanJum
- Fix build warning for
_uk_printddefinition (#432) by @gabrielmocanu - Fix build warning for halt definition (#429) by @gabrielmocanu
- Fix build errors introduced by #251 (#412) by @vladandrew
- Fix conditional definition of functions (#399) by @george-hopkins
- Fix some bugs (#394) by @marcrittinghaus
- Fix and introduce more range macros (#370) by @skuenzer
- Fixing various bugs (#411) by @marcrittinghaus
- Complete syscall lists on arm and aarch64 (#423) by @razvanvirtan
- Replace
EDOOFUSmacro (#416) by @maniatro111 - Remove
uk_freecall on request dequeue (#413) by @mschlumpp - Move alloc out of critical section in
sys_open(#408) by @marcrittinghaus - Use types from
shareddefs.h(#407) by @marcrittinghaus - Use non-prototyped no-ops (#405) by @marcrittinghaus
- Do not pass
-marchwith-mcpu(#368) by @michpappas - Do not allocate IRQ handler entries dynamically (#240) by @hlef
A big thank you also to all those who helped in the review process: @cristian-vijelie, @michpappas, @mschlumpp, @skuenzer, @adinasm, @florin-diaconescu, @gabrielmocanu, @mogasergiu, @razvand, @StefanJum, @razvanvirtan, @craciunoiuc, @danield20 and @vladandrew.
For more information, check out the accompanying blog post or view the full changelog.