copy-paste this and fill contents:
Author: Firstname Lastname
Owner: TODO
Tech lead: TODO
Estimated duration: TODO
Priority: TODO
Rationale for topic relevance
[Please fill in here]
Summary of objectives
Prerequisites / dependencies
Notes
Author: Michalis Pappas
Owner: Răzvan Deaconescu
Tech lead: Michalis Pappas
Estimated duration: 4 months
Priority: medium
Rationale for topic relevance
Register driver corresponding to device.
Probe for devices at boot or when connected.
Notes
ukbus
.Author: Michalis Pappas
Owner: Hugo Lefeuvre
Tech lead: Michalis Pappas
Estimated duration: 2 weeks
Priority: medium
Rationale for topic relevance
Add support for MTE (Memory Tagging Extension) to tag memory on ARM64.
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated duration: 3 months
Priority: medium
Rationale for topic relevance
Query CPU features early in the boot process to use in later phases, such as when invoking hardware randomization.
Summary of objectives
ukcpuid
)Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Marc Rittinghaus
Estimated duration: 3 months
Priority: medium
Rationale for topic relevance
Hardware randomization is required for TRNG (True Random Number Generators).
Summary of objectives
ukarch_random
)Prerequisites / dependencies
Notes
ukarch_random
PR is available, waiting for reviewAuthor: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated duration: 2 months
Priority: medium
Rationale for topic relevance
Applications built for Linux make use of proc filesystem entries.
With procfs support, more applications can be ported.
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated duration: 1 month
Priority: high
Rationale for topic relevance
Add support for Musl as standard C library in Unikraft.
Summary of objectives
clone
system call)Author: Răzvan Deconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated duration: 3 months
Priority: medium
Rationale for topic relevance
Port libc-test to test libc interfaces such as Musl and newlib.
Prerequisites / dependencies
Notes
Author: Răzvan Deaconescu
Owner: Cezar Crăciunoiu
Tech lead: Simon Kuenzer
Estimated duration: 2 weeks
Priority: high
Rationale for topic relevance
Add dynamic entries in ukstore, the internal library for storing Unikraft data and passing it with getters / setters.
Notes
Author: Răzvan Deaconescu
Owner: Cezar Crăciunoiu
Tech lead: Simon Kuenzer
Estimated duration: 1 month
Priority: low
Rationale for topic relevance
Implement memory ballooning driver for Unikraft.
Summary of objectives
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Vlad Bădoiu
Estimated duration: 2 months
Priority: high
Rationale for topic relevance
Add Rust support for external libraries / applications.
Applications written in Rust to be built on top of Unikraft.
Notes
Author: Alexander Jung
Owner: Alexander Jung
Tech lead: Alexander Jung
Estimated duration: 1 month
Priority: high
Rationale for topic relevance
Increasing Unikraft applicability, ease-of-use, and relevance.
Summary of objectives
runu
etc.Notes
Author: Răzvan Deaconescu
Owner: Hugo Lefeuvre
Tech lead: Marc Rittinghaus
Estimated duration: 4 months
Priority: medium
Rationale for topic relevance
Memory randomization is an important security feature in modern applications / operating sytems.
It would be added to the Unikraft security features page.
Summary of objectives
Prerequisites / dependencies
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Library author
Estimated duration: 6 months
Priority: medium
Rationale for topic relevance
Unit testing ensure a good quality of the implementation.
Existence of unit tests allows regression testing: any new feature will be validated with existing unit tests.
Add unit tests (using uktest) for internal Unikraft libraries.
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Marc Rittinghaus
Estimated Duration: 2 months
Priority: high
Rationale for topic relevance
Using code conventions ensures consistency and good practices in written code.
Otherwise, we get different styles and a general confusion from the contributor: "How should I write this code?"
Summary of objectives
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated Duration: 2 months
Priority: high
Rationale for topic relevance
Increase application adoption by directly running unmodified Linux ELF binaries on top of Unikraft.
The ELF Loader will load a given ELF binary and pass control to it.
System calls will be passed to the shim layer.
Summary of objectives
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated Duration: 6 months
Priority: medium
Rationale for topic relevance
Have a loader as part of the unikernel image (or use a separate image).
The loader will then load the actual unikernel in memory.
This enables random placing of the unikernel and possible other features (load the unikernel for a specific architecture).
Summary of objectives
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Marc Rittingaus
Estimated Duration: 5 months
Priority: medium
Rationale for topic relevance
Add support for Hyper-V hypervisor.
Summary of objectives
Prerequisites / dependencies
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Marc Rittingaus
Estimated Duration: 4 months
Priority: medium
Rationale for topic relevance
Add support for VMware hypervisor.
Prerequisites / dependencies
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated Duration: 3 months
Priority: high
Rationale for topic relevance
Add support for Firecracker VMM.
Prerequisites / dependencies
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Michalis Pappas
Estimated Duration: 5 months
Priority: low
Rationale for topic relevance
Build Unikraft as a baremetal image, i.e. running directly on hardware, without support from a hypervisor.
Prerequisites / dependencies
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated Duration: 3 months
Priority: medium
Rationale for topic relevance
What happens if we boot from Multiboot, Multibootv2, uBoot.
If we build an image for QEMU/KVM we know it's Multiboot, and no need for other bootloader support.
This is tied to the plat rearch topic, due to the platform affecting the bootloader to be used.
Summary of objectives
Prerequisites / dependencies
Others
Author: Simon Kuenzer
Owner: Michalis Pappas
Tech lead: Simon Kuenzer
Estimated Duration: 6 months
Priority: high
Rationale for topic relevance
Reorganization of architecture and platform code, better re-using of implementations across targets and clear definition where which implementation should be placed.
Author: Michalis Pappas
Owner: Michalis Pappas
Tech lead: Marc Rittingaus
Estimated Duration: 6 months
Priority: medium
Rationale for topic relevance
Make Unikraft core SMP-safe, i.e. Documentation of SMP-safe interfaces
Others
Author: Michalis Pappas
Owner: Michalis Pappas
Tech lead: Hugo Lefeuvre
Estimated Duration: 4 months
Priority: medium-high
Rationale for topic relevance
Implement support for memory allocation that works correctly in an SMP-environment.
Notes
Author: Michalis Pappas
Owner: Marc Rittinghaus
Tech lead: Marc Rittinghaus
Estimated duration: 4-8 weeks
Priority: high
Rationale for topic relevance
The current implementation of the mmap-group of functions is based on malloc
. Unmapping does not work reliably with this. No support for paging code.
Summary of objectives
posix-mmap
based on this API/library.mmap
(such as when paging is not enabled).Others
posix-mmap
Author: Marc Rittinhaus
Owner: Marc Rittinghaus
Tech lead: Michalis Pappas
Estimated duration: 1 week
Priority: medium
Rationale for topic relevance
Very important security feature.
Currently only supported on ARM (with paging) by setting up protections based on section information during boot.
General problem, section information incomplete.
Thus some protections are configured wrong -> crashes.
Summary of objectives
Author: Răzvan Deaconescu
Owner: Marc Rittinghaus
Tech lead: Marc Rittinghaus
Estimated duration: 2-4 weeks
Priority: medium
Rationale for topic relevance
Internal library that returns a code instead of a page fault.
Useful for debugging.
Author: Marc Rittinghaus
Owner: Marc Rittinghaus
Tech lead: Marc Rittinghaus
Estimated duration: 2 weeks (cleanup + upstream existing), +2 weeks (hw breakpoints, thread context support)
Priority: medium
Rationale for topic relevance
Enable GDB introspection of running Unikraft instance.
Provides the interface to list threads, memory allocations, open files in Unikraft etc.
Summary of objectives
Prerequisites / dependencies
uknofault
Notes
Author: Simon Kuenzer
Owner: Alexander Jung
Tech lead: Ștefan Jumărea
Estimated Duration: 4 months
Priority: medium-high
Rationale for topic relevance
Automatically generate API interface documentation from headers (e.g., doxystyle format).
To be published on https://unikraft.org/docs.
Summary of objectives
Prerequisites / dependencies
Author: Alexander Jung
Owner: Alexander Jung
Tech lead: Ștefan Jumărea
Estimated Duration: 6 months
Priority: medium-high
Rationale for topic relevance
Introduce the relevant README.md
file to each corresponding library.
Author: Simon Kuenzer
Owner: Răzvan Deaconescu
Tech lead: Marc Rittinghaus
Estimated Duration: 4 months
Priority: medium
Rationale for topic relevance
Integration in monitoring/debugging systems of kernel logging via a remote console
Summary of objectives
Others
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Alexander Jung
Estimated Duration: 4 months
Priority: medium
Rationale for topic relevance
Deliver Unikraft and support filesystem / disk as unified image.
The image will be passed to the VMM.
Summary of objectives
Prerequisites / dependencies
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Michalis Pappas
Estimated Duration: 1 month
Priority: medium
Rationale for topic relevance
Add support for RISC-V architecture.
Summary of objectives
Prerequisites / dependencies
Notes
Author: Răzvan Deaconescu
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated Duration: 4 months
Priority: low
Rationale for topic relevance
Implement software layer to port drivers.
Summary of objectives
Prerequisites / dependencies
Notes
Author: Simon Kuenzer
Owner: Simon Kuenzer
Tech lead: Simon Kuenzer
Estimated Duration: 4 months
Priority: high
Rationale for topic relevance
Support handling and delivery of signals.
Summary of objectives
SIGQUIT
)Author: Simon Kuenzer
Owner: Răzvan Deaconescu
Tech lead: Simon Kuenzer
Estimated Duration: 3 months
Priority: high
Rationale for topic relevance
We compile Unikraft with all compiler and CPU optimizations enabled. However, due to missing context saving of extended CPU units (vector, floating point) on interrupt/trap handlers, we need to make somehow sure that those functions are not using such registers because otherwise the original program flow might corrupt.
isrlib
was introduced with a subset of nolibc
functions that are compiled to be safe to be used in an interrupt service routine (ISR-safe).
Summary of objectives
target
is worth a look). Maybe the isr
variant in Makefile.uk
is not needed anymoreNotes
Author: Simon Kuenzer
Owner: Simon Kuenzer
Tech lead: Simon Kuenzer
Estimated Duration: 1-2 week
Priority: high
Rationale for topic relevance
Enables clean unmounting of filesystems and flushing of disk block caches.
Summary of objectives
uk_inittab
with corresponding termination function field.lib/ukboot
(call in reverse priority order).