Tangible MicroVM approach

A unit of virtualization known as a container bundles an application along with its required dependencies, such as external libraries, system tools, and other packages essential for smooth execution. In contrast, a unikernel is an all-in-one machine image that contains the operating system component and all other elements necessary for running an application. As a result of this attribute, a uni-kernel is self-contained and can run autonomously on top of (bare metal) hypervisors like “QNX” or “QEMU” and process containers such as “LXC.”

Containers rely on the kernel of the host operating system, while each deployment of a unikernel has its own kernel. Depending on the intended hypervisor or process container, containers are capable of running multiple processes, whereas unikernels can only run a single one. Moreover, with containers, resource allocation is managed by the Linux GPOS, whereas the hypervisor provides available resources in the case of unikernels.

Screenshot taken from: https://unikraft.org

Examining the Linux “initial ram disk” (or “initrd” for short) reveals that it is an integral component of the Linux boot process that loads the required root file system into memory and offers specialized application features like hardware device scanning. In a way, unikernels are similar to these specialized operating systems, where an application is directly linked with the kernel and runs in supervisor mode.

If we pack e.g., WasmEdge ( as the “App”) into a uni-kernel approach such as UniKraft (or Hermit) we have a powerful, lightweight, secure and “deterministic” runtime, may well dedicated to specific CPU cores.

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *