Small and mighty powerful

IncludeOS unikernel runs in the cloud with a tiny memory footprint

Sarah Schlothauer
© Shutterstock / Landshark1

IncludeOS is is a minimal, unikernel operating system. It runs C++ services in the cloud and has a tiny memory footprint. What are unikernels? Are they right for you?

Cloud technology is constantly growing, and developers are always creating new ways to utilize the cloud.

Today we are looking at IncludeOS: a minimal, resource-efficient unikernel for cloud services. 

Understanding unikernels

What is a unikernel? An article by TechBeacon refers to them as “Containers 2.0.”

A unikernel allows for development in the cloud instead of a typical operating system. It is a specialized, low-memory machine and uses only a fraction of resources that a typical full OS would. The small size allows for fast boot times and increased performance, allowing for apps to be started and stopped on the dime.

Unikernels also boost security. The low memory reduces the attack surface that hackers use when looking for a weak spot. Operating systems can usually be reconfigured, which is a big security flaw (that is often unnecessary) and allows for hackers to modify the device’s behavior. With a unikernel, there isn’t any extraneous parts to do so. Smaller code also means fewer bugs and less unused code in your image.

SEE ALSO: Kubernetes 101: How to get started with container orchestration

With all these positives of using a unikernel, there are also bound to be some downsides. Bryan CantrillCTO at Joyent wrote a blog post titled “Unikernels are unfit for production“, where he unveiled some arguments against the technology. It is worth a read, even for the biggest fans of unikernels, to see both sides of the story and understand that they are not a magic bullet. However, why not decide for yourself is unikernels are right for you?

Without further ado, let’s see what IncludeOS has to offer.

IncludeOS key features

According to its website, “IncludeOS allows you to run your application in the cloud without an operating system. IncludeOS adds operating system functionality to your application allowing you to create performant, secure and resource efficient virtual machines.”

When starting a program, IncludeOS will include a minimal OS into your system. “We provide a bootloader, standard libraries and the build – and deployment system. You just provide the service.”

IncludeOS has all the aforementioned features of unikernels and then some:

  • Applications boot in milliseconds and require only a few megabytes of memory
  • Base virtual image start at 1 megabyte
  • KVM, VirtualBox, and VMWare support with full virtualization
  • The build system will “link your service with the necessary OS objects into a single binary”
  • C++11/14 support and standard C library
  • Runs on any x86 hardware
  • Modular TCP/IP-stack
  • Fast installation – on Linux or macOS, IncludeOS takes ten minutes to install

SEE ALSO: Meet GraalVM, Oracle’s polyglot virtual machine

Get started!

Sound interesting? Checking out the getting started guide will be your first course of action.

You will need a few libraries and a compiler, however the guide has everything you need to get IncludeOS running.

Have questions? They might be answered in the FAQ. New features will be added in the future, so keep an eye out. (Previous updates have including a new routing firewall, and the ability to upgrade apps without downtime).

Currently, IncludeOS is in its testing phase, so the API is not yet considered secure. Any potential bugs or security issues should be brought to the developers!


Sarah Schlothauer

Sarah Schlothauer

All Posts by Sarah Schlothauer

Sarah Schlothauer is the editor for She received her Bachelor's degree from Monmouth University, West Long Branch, New Jersey. She currently lives in Frankfurt, Germany with her husband and cat where she enjoys reading, writing, and medieval reenactment. She is also the editor for Conditio Humana, an online magazine about ethics, AI, and technology.

Inline Feedbacks
View all comments