When comparing HaLVM 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 HaLVM is ranked 7th. 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 Highly secure
What HaLVM 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 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 Compiling from source can be problematic
Usually with cutting-edge software the compilation process never really goes as expected. Same is with HaLVM as well.
You may need to install additional libraries that are probably missing or even tweak configurations here and there. So it would be best to avoid this process if you don't feel comfortable enough with compiling from source. So you have to stick with the package manager of choice (if it's available for the particular Linux distro you are using).
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.