When comparing IncludeOS vs Mirage OS, the Slant community recommends Mirage OS for most people. In the question“What are the best unikernels?” Mirage OS is ranked 2nd while IncludeOS is ranked 6th. The most important reason people chose Mirage OS is:
There are more than 100 libraries compatible with MirageOS available and more are being developed everyday.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Very slim
IncludeOS is a very lightweight piece of software, even for Linux standards. It includes a bootloader, OS components and a complete C++ library and it's just 693K when optimized for use. It's even less than 1MB.
Pro Large collection of libraries available
There are more than 100 libraries compatible with MirageOS available and more are being developed everyday.
Pro Built with security in mind
What MirageOS does in simple terms is to provide only the minimal needed for an app to run. It provides only the required network and hardware drivers needed to execute.
Using this approach it minimizes the attack surface for potential hackers since they don't have any shell to log into or any other insecure cruft that other deployment methods, such as full operating systems have.
Pro OCaml
Cons
Con Has some complexity added because it's not based on a language with process isolation
Since C and C++ (with which IncludeOS is built) have no language level isolation, IncludeOS doesn't have process isolation either. Because of this, sensitive components have to be split into different nodes, isolated by either different virtual machines or different computers.
Con May be too much for regular development work
Letting developers work closer to the metal also makes them lose a lot of the useful abstractions a normal OS has which are not built for no reason. Considering this, it may not be a good idea to always use MirageOS for deploying an application.