Project deliverable Open Access
Gaulthier Gain; Cyril Soldani; Felipe Huici
The goal of the EU-funded UNICORE project is to develop a common code-base and toolchain that will enable software developers to rapidly create secure, portable, scalable, high-performance solutions starting from existing applications. The key to this is to compile an application into very light-weight virtual machines – known as unikernels – where there is no traditional operating system, only the specific bits of operating system functionality that the application needs. The resulting unikernels can then be deployed and run on standard high-volume servers or cloud computing infrastructure.
In order to provide highest levels of flexibility during the Unikernels creation, it is necessary to define interfaces to interact with the internal components of the OS kernel. These interfaces will be used to expose existing OS kernel elements as a set of micro-libs (-libs). This decomposition of existing OS kernel components into -libs will define APIs to interact with Unikernels. E.g., APIs to schedulers, timer facilities, memory management, network stacks, etc.
This deliverable will thus define library categories, and describe their associated APIs along with semantics annotations, in order to provide support for as many applications as possible. In addition, this deliverable will also identify the libraries that UNICORE will need to support the widest possible range of applications, along with a workplan as to how to quickly implement them. This deliverable is the first milestone in a series of three. Further improvements and information will be made through other milestones of this deliverable.