We are proud to announce the latest version of Unikraft, v0.19
!
This release comes with plenty of new features and updates.
⚠️ Be aware of the following potentially breaking changes:
The config options of libposix-process
have been updated as follows:
CONFIG_LIBPOSIX_PROCESS_PIDS
and CONFIG_LIBPOSIX_PROCESS_CLONE
are merged into a single option, CONFIG_LIBPOSIX_PROCESS_MULTITHREADING
.CONFIG_LIBPOSIX_PROCESS_VFORK
is replaced by CONFIG_LIBPOSIX_PROCESS_MULTIPROCESS
.CONFIG_LIBPOSIX_PROCESS_INIT_PIDS
is deprecated, and its functionality is enabled by default.Here is the full updates list:
lib/posix-process
: POSIX signals (#1248) by @michpappaslib/posix-process
: Add vfork
& execve
(#1386) by @michpappas[app-elfloader]
: Introduce ELF binfmt
loader (#79) by @michpappaslib/posix-process
: Supplementary changes for multiprocess (#1627) by @michpappas[app-elfloader]
: Supplementary changes for multiprocess (#90) by @michpappaslib/posix-process
: exit()
and wait()
(#1630) by @michpappasdrivers/ukps2
: Add Firecracker shutdown driver and some minor Kconfig
fixups (#1265) by @mogasergiulib/posix-process
: Graceful shutdown (#1633) by @michpappas[app-elfloader]
: POSIX process graceful shutdown (#92) by @michpappaslib/posix-fdio
: Add internal implementations of futime(n)s
(#1575) by @andreittrlib/{ukfile, posix-socket, posix-unixsocket}
: Add support for explicitly polled files & sockets (#1446) by @andreittrlib/posix-fdtab
: Support independent (per-process) fdtabs (#1278) by @andreittrlib/posix-fd
: Named open file descriptions (#1592) by @andreittrlib/posix-process
: Add README.md
(#1644) by @michpappaslib/posix-process
: Make multiprocess config select execve
(#1642) by @mogasergiulib/posix-process/arch/arm64
: Save/restore lr
/fp
on clone asm stub (#1641) by @mogasergiulib/posix-process
: Terminate underlying thread only if added to sched (#1640) by @mogasergiulib/posix-process
: Make rt_sigtimedwait
stub block (#1639) by @michpappaslib/ukvmem
: Return ENOMEM
for invalid addresses (#1638) by @mogasergiulib/ukrandom
: Validate getrandom
input & rm assert (#1637) by @andreittrlib/vfscore
: Fix write const path in automount
(#1636) by @andreittrlib/syscall_shim/arch/x86
: Properly fetch curr_fp
in execenv entry (#1635) by @mogasergiuplat/xen
: Add initrd support for arm64 (#1634) by @andreistan26lib/posix-process/signal
: Add stub for CLONE_SIGHAND
(#1628) by @michpappaslib/posix-process/signals
: Fix conditional for sigsetops (#1626) by @michpappaslibposix-process
: Create PID1 from thread passed via init (#1620) by @michpappaslib/posix-process
: Add signalfd
/signalfd4
support (#1619) by @mogasergiulib/posix-process
: Define libc
wrappers for clone
/vfork
(#1618) by @mogasergiulib/posix-fdtab
: Fix exec handler & ref leak on fdtab clone (#1617) by @andreittrlib/posix-pipe
: Add pipe stat support (#1603) by @andreittrlib/posix-fd
: Move heap-allocated open file descriptions out of fdtab (#1602) by @andreittrlib/syscall_shim
: Use global scope inline asm for execenv prologue (#1598) by @mogasergiulib/posix-unixsocket
: Fix NULL
crash on accept4()
(#1593) by @andreittrlib/vfscore
: Use uk_syscall_do
for syscall delegation (#1591) by @mogasergiulib/ukcpio
: Add syscall_shim
dep and use uk_syscall_do
(#1590) by @mogasergiulib/ramfs
: Use kernel internal clock_gettime
variant (#1587) by @mogasergiulib/vfscore
: Use kernel internal clock_gettime
variant (#1586) by @mogasergiulib/posix-process
: Define kernel internal exit_group
(#1585) by @mogasergiulib/posix-process
: Define kernel internal resource limit syscalls (#1584) by @mogasergiulib/posix-process
: Define kernel internal gettid
/getppid
/getpid
(#1583) by @mogasergiulib/posix-fdio
: Adopt remaining file syscalls from vfscore (#1581) by @andreittrlib/ukfile
: API: Change file offset and iovec length to size_t
(#1580) by @andreittrlib/ukfile
: Add try acquire operation (#1579) by @andreittrlib/posix-fdio
: Fix wrong computation of dev_t
(#1578) by @andreittrlib/syscall_shim
: Autogenerate uk_syscall_*
symbols at build time (#1577) by @mogasergiulib/posix-fd
: Move open file descriptions into own lib (#1574) by @andreittrlib/ukvmem
: Use correct stack guard size macro for tests (#1573) by @mogasergiulib/posix-timerfd
: Output correct old_value
on set (#1568) by @andreittrlib/posix-timerfd
: Fix counter on subsequent reads (#1567) by @andreittrlib/posix-timerfd
: Validate settime()
argument (#1566) by @andreittrplat/kvm
: Select HAVE_IBMPC
only on x86_64 (#1565) by @shymlib/syscall-shim
: Do not dereference optional clone()
parameters (#1564) by @michpappaslib/posix-*
: Remove hard dependency on posix-fdtab (#1437) by @andreittrlib/syscall_shim
: Introduce syscall enter/exit routines tables (#1277) by @mogasergiulib/nolibc
: Update Musl-imported headers for signals (#1244) by @michpappas[app-elfloader]
: Silence unused argument warnings for /etc/hostname (#93) by @andreittr[app-elfloader]
: Check return value of uk_random_bytes()
(#91) by @michpappas[app-elfloader]
: Config.uk: Imply stdio file descriptors (#87) by @andreittr[app-elfloader]
: Remove uk_syscall_
symbols from exportsyms.uk
(#86) by @mogasergiu[lib-libelf]
: Use Unikraft-provided __offsetof
instead of own (#5) by @andreittr[lib-lwip]
: init.c
: Remove no-op term function (#62) by @andreittr[lib-lwip]
: sockets.c
: Use size_t
for iovec
length (#61) by @andreittr[lib-lwip]
: socket.c
: Update to posix-socket
poll setup API (#58) by @andreittr[lib-musl]
: arch/arm64
: Save/restore link register on clone
asm stub (#89) by @mogasergiu[lib-musl]
: Adapt to updated libposix-process config options (#87) by @michpappas[lib-musl]
: Replace clone
/vfork
assembly wrappers with our own (#86) by @mogasergiu[lib-musl]
: Config.uk
: Add posix-tty as dependency to stdio (#85) by @andreittr[lib-musl]
: Makefile.uk.musl.signal
: Fix arm64 architecture test (#83) by @shymA big thank you also to all those who helped in the review process: Andrei Tatar, Cezar Crăciunoiu, Teodor Țeugea, Oleksii Moisieiev, Răzvan Deaconescu, Sergiu Moga, Ștefan Jumărea.
Feel free to ask questions, report issues, and meet new people.