v0.12.0 Epimetheus
·
1212 commits
to staging
since this release
We are proud to announce the latest version of Unikraft, v0.12.0 (Epimetheus)! This release comes with a bag of new exciting features and more stability to the existing ones. Here is the full updates list:
🚀 New Features
- Expose
HANDLED_CONT
return value ininclude/event
(#738) by @marcrittinghaus - Register
mkdirat
to syscall shim inlib/vfscore
(#732) by @eduardvintila - Fault-safe memory access in
lib/uknofault
(#725) by @marcrittinghaus - Boot code refactoring (#722) by @marcrittinghaus
- Make TCB overlap configurable in
arch/libcontext
(#720) by @eduardvintila - Add
_SC_PHYS_PAGES
and_SC_AVPHYS_PAGES
tosysconf
inlib/posix-sysinfo
(#719) by @osmten - Add
setattr
function for 9pfs inlib/9pfs
(#710) by @StefanJum - Update rust version to latest nightly in
lang/rust
(#709) by @fabianpatras - Add comments to vfs.h file in
lib/vfscore
(#707) by @RaduNichita - Add
README.md
file inlib/ramfs
(#705) by @DeliaPavel - Add comments to ramfs.h file in
lib/ramfs
(#704) by @DeliaPavel - Update documentation of ukarch_random (#703) by @michpappas
- Use ukarch_random_seed to seed MTE keys in
arch/arm64
(#702) by @michpappas - Add IRQ events in
plat/*
(#699) by @mschlumpp - Implement
ukarch_random
inarch/x86_64
(#695) by @michpappas - Handle error code returns from event handlers in
include/event
(#691) by @mschlumpp - Use correct variable name for sect-strip.py tool in
lib/ukdebug
(#690) by @mschlumpp - Use the ukarch_random API to generate PAuth keys and enable Pointer Authentication on KVM (#686) by @michpappas
- 9p2000.L support in
lib/{uk9p,9pfs}
(#671) by @dinhngtu - Implement subclass matching in
plat/common/pci
(#624) by @mschlumpp - Add additional flags for compatibility in
lib/vfscore
(#623) by @mschlumpp - Expose
rmdir
/rename
fromnolibc
inlib/nolibc
(#622) by @mschlumpp - Add
lib/ukvmem
andlib/posix-mmap
(#603) by @marcrittinghaus - Add README.md file in
lib/uktest
(#555) by @StefanJum - Upgrade musl to latest version (1.2.3) (#34) by @eduardvintila
- Upgrade libsqlite version (#4) by @Starnox
- Add configuration file for textlint in
.github
(#178) by @razvand - Add make-based build workflow (#177) by @StefanJum
- Add
CONTRIBUTING.md
file referencing the website (#174) by @StefanJum - Add instructions on contributing to documentation (#171) by @StefanJum
- Split coding style content (#162) by @StefanJum
- Port the informations on the
Makefile.uk
,exportsyms.uk
andextra.ld
files from the Unikraft old documentation (#126) by @StefanJum
🐛 Bug Fixes & Improvements
- Fix typecast for
PT_BUFP
inuk_prsyscall
forlib/syscall_shim
(#750) by @skuenzer - Fix
lstat()
infinite loop inlib/vfscore
(#711) by @mariasfiraiala - Fix
gcc
-ism forclang
compilation inplat/pci_ecam.c
(#701) by @mariasfiraiala - Comment out unused sysinfo buffer in
lib/posix-info
(#673) by @razvand - Fix a memory leak in
lib/ukallocbbuddy
(#689) by @noureddine-taleb - Fix race condition during context switch in
lib/uksched
(#694) by @eduardvintila - Fix segments in ELF output images in
build
(#698) by @mschlumpp - Align the stack to 16 bytes in
arch/x86_64
(#684) by @mschlumpp - Update ukrust to work alongside Cargo in
lib/ukrust
(#680) by @vladandrew - Use Linux-compatible stat structure in
lib/nolibc
(#675) by @razvand - virtio-net fixes (#669) by @dinhngtu
- Flip argument names of
VOP_SYMLINK
inlib/vfscore
(#629) by @mschlumpp - Prefer local include dirs in
support/build
(#625) by @mschlumpp - Ensure time monotonicity for tscclock in
plat/kvm
(#617) by @mschlumpp - 16-byte align syscall stack in
plat/common/x86
(#748) by @marcrittinghaus - Align allocated stacks to arch requirement in
lib/uksched
(#747) by @skuenzer - Fix for .tdata warning (#746) by @marcrittinghaus
- Cast initrd vbase to
(void *)
in lib/vfscore (#744) by @skuenzer - Fix initrd0 macro in
include/uk/plat
(#742) by @marcrittinghaus - Fix cmdline parsing in
plat/kvm/x86
(#741) by @marcrittinghaus - Fix various warnings (#739) by @marcrittinghaus
- Fix dependency for
nanosleep()
inapp-helloworld
(#13) by @michpappas - Adapt forced polling mode to
uknetdev
flag rename (#30) by @mschlumpp - Adapt memory region usage in patch (#7) by @marcrittinghaus
- Remove hash templates for
pthread_t
(#26) by @dinhngtu - Move
_XOPEN_SOURCE
define to library CFLAGS (#33) by @mschlumpp - Remove outdated vendored
features.h
(#32) by @mschlumpp - Fix typos in the
en/docs/contributing
(#179) by @RaduNichita - Fix kraft via pip installation step (#176) by @mkroening
- Ignore md104 rule when inside shortcodes in
github/linter
(#173) by @StefanJum - github/linter: Remove
.png
keyword ingithub/linter
(#172) by @StefanJum
A big thank you also to all those who helped in the review process: @gabrielmocanu, @nderjung, @craciunoiuc, @eduardvintila, @marcrittinghaus, @mariasfiraiala, @razvand, @razvanvirtan, @kubanrob, @mogasergiu, @skuenzer, @StefanJum, @vladandrew, @RaduNichita, @fabianpatras, @andraprs, @michpappas, @maniatro111, @DeliaPavel and @mschlumpp.
For more information, check out the accompanying blog post or view the full changelog.