Unikernels in OCaml
Building operating systems that do one thing with OCaml and Solo5.
A unikernel is a lightweight, specialized virtual machine where a single application is compiled directly with only the minimal operating system components it needs to run. It operates in a isolated environment with an attack surface significantly smaller and more restricted than traditional containers.
Unlike traditional OSs that separate user applications from the kernel, a unikernel bundles everything into a single, isolated image that runs directly on a hypervisor (like KVM, BHyve, or OpenVMM). Because it removes unnecessary drivers and background services, a unikernel is extremely small, fast to boot, and efficient with resources.
Here, we will learn how to develop and deploy unikernels built using the OCaml language and the Solo5 unikernel. These are the two fundamental components that will then enable us to develop our own applications in the form of unikernels, which we can subsequently deploy using Albatross.
Tutorial
A hands-on book: build a unikernel in OCaml from the first line to a running network service.
Start reading →Packages
The libraries and tools the ecosystem is made of - Solo5, the TLS stack, the build and deployment utilities.
Browse packages →Unikernels
Ready-made unikernels: what each one does, how to configure it and how to deploy it.
Browse unikernels →