The Road to Unikernels

Justin Cormack

The Road to Unikernels

Justin Cormack

Slides at

Justin Cormack

London Cambridge based developer

Working at Unikernel Systems

On Twitter @justincormack and Github justincormack

Organized conference last year

Co-author of Docker in the Trenches: Successful Production Deployment

Systems Programming

I find these assumptions laughable. – Jay Osako

Systems programming has been divided from normal programming

True, linux is monolithic, and I agree that microkernels are nicer... As has been noted (not only by me), the linux kernel is a miniscule part of a complete system: Full sources for linux currently runs to about 200kB compressed. And all of that source is portable, except for this tiny kernel that you can (provably: I did it) re-write totally from scratch in less than a year without having /any/ prior knowledge.– Linus Torvalds, 1992

Currently Linux has over 25 million lines of code...

... and Windows has 50 million.

System software is changing




Also many more languages


Not reinventing the general purpose OS

No one is trying to remake Linux or Windows style monoliths

The model is just enough system software to run your code

Without any external dependencies, you have total control

Everything is open source, with liberal licenses.

A container with everything in it

A security hardened container

And a distributed system of these containers

Distributed from the start

Examples of unikernels

Rump kernels


Unikernels are at the stage that Linux containers were three years ago before Docker

Clearly this needs to be fixed for widespread use...

Deployment of unikernels via Docker

Common config



Pick all three


Fork me on Github