Building Apps On A Linux-Based Unikernel

Unikernels offer some very interesting advantages to application deployers and users, particularly in a container or even serverless context where there may be no need for an application to have a divide between user space and kernel space. Until now however unikernels have been built from scratch in research settings, which generally means they lack things like device driver support that the Linux ecosystem takes for granted.

This project takes on the challenge of using Linux as a unikernel. The goal is to support
deploying userlevel applications as unikernels by simply changing

make CC=gcc


make CC=ukl-gcc

where ukl-gcc is a specially constructed gcc wrapper (maybe initially
just a shell script). The result should be a single binary that can be booted as a normal OS — the only limitation an application developer would see is that you cannot call fork().

Tracked here in