Category:Unikraft Devel: Difference between revisions

From Xen
Jump to navigationJump to search
(Add release plan)
No edit summary
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Unikraft Development =
= Developer's Guide =
First off, welcome to the project and thanks so much for your interest! Most of the information you'll need about how to develop for Unikraft you'll find in the main repo's docs directory or [http://myurl.com/developers.rst here]. We'll use this space mainly to give information about what the core team is currently working on, and to give suggestions about what we would like to have in Unikraft but haven't had the time to work on yet in case you're looking for ideas. We will also post information about past and upcoming releases.
First off, welcome to the project and thanks so much for your interest! Most of the information you'll need about how to develop for Unikraft you'll find in the main repo's docs directory [http://xenbits.xen.org/gitweb/?p=unikraft/unikraft.git;a=tree;f=doc/guides;hb=refs/heads/master]. We'll use this space mainly to give information about what the core team is currently working on, and to give suggestions about what we would like to have in Unikraft but haven't had the time to work on yet in case you're looking for ideas. We will also post information about past and upcoming releases.

== Submitting Code, Asking Questions ==
In general, submitting code follows the patterns as outlined in
* [[Submitting Xen Project Patches]] (note that there is a [[Submitting_Xen_Project_Patches#How_to_Generate.2C_and_Submit_a_Xen_Project_Patch_to_MiniOS_and_Unikraft|section]] describing deviations from the standard process
* [[Asking Developer Questions]]
* You can ask user questions on [https://www.xenproject.org/help/mailing-list.html minios-devel@] following the rules outlined in [[Xen Users Netiquette]]


== Release Plan ==
== Release Plan ==
The current idea is to release under 0.x versions (codename: Titan) until we reach a stable low-level platform and architecture API. Although libraries might be added, the focus is on the low-level API. During the 0.x release everyone should expect reorganizations and changes of these interfaces. During this cycle, a major goal is also to add more platforms and architectures (e.g., ARM64, VMware) - this helps us defining the low-level APIs properly.
The current idea is to release under 0.x versions until we reach a stable low-level platform and architecture API. Although libraries might be added, the focus is on the low-level API. During the 0.x release everyone should expect reorganizations and changes of these interfaces. During this cycle, a major goal is also to add more platforms and architectures (e.g., ARM64, VMware) - this helps us defining the low-level APIs properly.

Starting from version 1.0 we expect an almost stabilized platform and architecture API. No major changes should be expected on existing interfaces, new APIs might still be added. The focus of this release series will be on adding functionality and variety with libraries.

The codenames are settled on Saturn moons ordered by discovery date [https://en.wikipedia.org/wiki/Moons_of_Saturn]. This means, the release after Titan will be called Iapetus, then Rhea, and so on.

== Current Work Items ==


Please have a look at the minios mailing list and our patchwork https://patchwork.unikraft.org/project/unikraft/list/ to have an idea of upcoming features.
Starting from version 1.0 (codename: Iapetus) we expect an almost stabilized platform and architecture API. No major changes should be expected on existing interfaces, new APIs might still be added. The focus of this release series will be on adding functionality and variety with libraries.


You can contact us on the mailing list [https://www.xenproject.org/help/mailing-list.html minios-devel@] or on our #unikraft IRC channel if you have questions.
The codenames are settled on Saturn moons ordered by discovery date [https://en.wikipedia.org/wiki/Moons_of_Saturn]. This means, 1.0 will be called Iapetus, 2.0 Rhea, and so on.


== Core Team - Current Work Items ==
== Open Work Items ==
# support for a xen console
# support for xenbus, events, paravirtualized drivers (network initially)
# pre-emptive scheduler
# libpython (i.e., turning Python/cpython into a Unikraft library)


If you're thinking of contributing to Unikraft please drop us a line on [https://www.xenproject.org/help/mailing-list.html minios-devel@] or on our #unikraft IRC channel on freenode.
== Suggestions for Contributions ==
If you're thinking of working on any of these please drop us a line.


You can also have a look at the current list of open items at https://github.com/unikraft/unikraft/issues . If you're thinking of picking one of these up please drop us a line.
# bare metal platform target (x86_64 or ARM32 initially)
# vfs/filesystem support#
# adding PCI functionality to libkvm (so we can support drivers)
# adding multi-application support (i.e., so we can build an image that runs more than one application)
# adding support for a high perf I/O framework (DPDK, netmap)
# Adding profiling/tracing capability to Unikraft
# SSH + a minimalistic shell
# Other languages (e.g., Ruby, node.js)
# platform support for containers
# using initramdisk to include filesystem into image
# Unit testing support, including tool to test diff combos of libs and report on compile/link errors.
# Porting Toybox to Unikraft

Latest revision as of 08:36, 28 August 2019

Unikraft Development

First off, welcome to the project and thanks so much for your interest! Most of the information you'll need about how to develop for Unikraft you'll find in the main repo's docs directory [1]. We'll use this space mainly to give information about what the core team is currently working on, and to give suggestions about what we would like to have in Unikraft but haven't had the time to work on yet in case you're looking for ideas. We will also post information about past and upcoming releases.

Submitting Code, Asking Questions

In general, submitting code follows the patterns as outlined in

Release Plan

The current idea is to release under 0.x versions until we reach a stable low-level platform and architecture API. Although libraries might be added, the focus is on the low-level API. During the 0.x release everyone should expect reorganizations and changes of these interfaces. During this cycle, a major goal is also to add more platforms and architectures (e.g., ARM64, VMware) - this helps us defining the low-level APIs properly.

Starting from version 1.0 we expect an almost stabilized platform and architecture API. No major changes should be expected on existing interfaces, new APIs might still be added. The focus of this release series will be on adding functionality and variety with libraries.

The codenames are settled on Saturn moons ordered by discovery date [2]. This means, the release after Titan will be called Iapetus, then Rhea, and so on.

Current Work Items

Please have a look at the minios mailing list and our patchwork https://patchwork.unikraft.org/project/unikraft/list/ to have an idea of upcoming features.

You can contact us on the mailing list minios-devel@ or on our #unikraft IRC channel if you have questions.

Open Work Items

If you're thinking of contributing to Unikraft please drop us a line on minios-devel@ or on our #unikraft IRC channel on freenode.

You can also have a look at the current list of open items at https://github.com/unikraft/unikraft/issues . If you're thinking of picking one of these up please drop us a line.

Pages in category "Unikraft Devel"

This category contains only the following page.