MirageOS
mirage.io · Company blog · on HN since 2015
The MirageOS project blog covers a library operating system for building unikernels in OCaml, with news on releases and uses.
What HN saysHN commenters describe MirageOS as a useful set of pure OCaml libraries, including DNS, and as an option for running apps directly on a hypervisor.
84HN people shared it
68linked it in comments
33stories submitted
808story points
3 months agolast shared
2015people per year2026
Most-shared posts
- 1MirageOS: A programming framework for building type-safe, modular systems51 people · 33 points · first shared 2015 · 2 comments on HN
- 2MirageOS Powers Docker Desktop [2022]5 people · 1 points · first shared 2022 · discussion on HN
- 3MirageOS 3.0 (2017)4 people · 74 points · first shared 2017 · 26 comments on HN
- 4Run Mirage Unikernels on KVM/QEMU with Solo54 people · 2 points · first shared 2016 · discussion on HN
- 5Reviewing the Bitcoin Piñata3 people · 73 points · first shared 2015 · 14 comments on HN
- 6Overview of MirageOS3 people · 1 points · first shared 2022 · discussion on HN
- 7Why ocaml tls3 people · first shared 2015
- 8MirageOS 4.0 – Self-managed internet infrastructure with unikernels2 people · 163 points · first shared 2022 · 37 comments on HN
- 9Irmin: Git-like distributed DB2 people · 121 points · first shared 2015 · 25 comments on HN
- 10MirageOS v2.5 with full TLS support2 people · 115 points · first shared 2015 · 9 comments on HN
- 11Easy HTTPS Unikernels with mirage-seal2 people · 54 points · first shared 2015 · 4 comments on HN
- 12Functoria, a library to create arbitrary MirageOS-like DSLs2 people · 41 points · first shared 2016 · 2 comments on HN
- 13MirageOS 4.0.0 Beta Release2 people · 24 points · first shared 2022 · discussion on HN
- 14Organized chaos: managing randomness2 people · 24 points · first shared 2015 · 1 comments on HN
- 15MirageOS 3.5.02 people · 3 points · first shared 2019 · discussion on HN
What HN people wrote when they linked it
ryangibb · 2025-10-28
The MirageOS project [0] is a great collection of functionality pure OCaml libraries that are useful outside of unikernels. I've used the DNS library with an effectful layer for various nameserver experiments [1].
[0] https://mirage.io/
[1] https://ryan.freumh.org/eon.html
pjmlp · 2023-11-21
Unix system programming in OCaml (2014)
https://ocaml.github.io/ocamlunix/
"MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms."
https://mirage.io/
"Docker Desktop avoids this problem by forwarding all traffic at user-level via vpnkit, a TCP/IP stack written in OCaml on top of the network protocol libraries of the MirageOS Unikernel project. The following diagram shows the flow of packets from the helper VM, through vpnkit and to the Internet:"
https://www.docker.com/blog/how-docker-desktop-networking-works-under-…
chubot · 2016-12-28
It absolutely does need to be overhauled, but the problem is that people don't agree on the direction. I think most of your ideas are profoundly mistaken, and have been disproven by history. I'm sure you think my ideas are wrong too.
I think that people tend to dismiss the success or failure of certain systems as luck or even marketing, rather than deeply reflecting on the intrinsic properties of those systems that led them to be adopted or not adopted.
Unix and the web have lots of flaws, but they're not an accident of history. They have fundamental architectural properties that made them succeed. (In particular, REST is the same idea architecturally as Unix/Plan 9 style file systems. Long story, because it's basically avoiding O(m*n) problems in the ecosystem.)
You also have to accept evolution as a fundamental force in computing (as Linus Torvalds does). To ignore it is to set yourself up for failure and frustration. After all, humans are by no means the optimal living being either, but they're the best that evolution came up with.
And as I said in my other post, "revolutionary" ideas tend to just add to the pile. They fail to meet their expectations and then Unix subsumes them. It's almost an economic inevitability.
And Linux WAS revolutionary, if you compare to to Microsoft. The first couple decades of my life were DOS and Windows based, so from that perspective the revolution happened. Microsoft is porting all their stuff to Linux…
eru · 2026-01-20
Yes, you can have docker container images that only contain the actual binary you want to run.
But if you are using a VM, you don't even need the Linux kernel: some systems let you compiler your program to run directly on the hypervisor.
See eg https://github.com/hermit-os/hermit-rs or https://mirage.io/
signa11 · 2025-10-15
there is also this: https://mirage.io which does something similar.
tlavoie · 2025-01-28
Have you looked at "Emily" language at all? Same person or two, their original paper isn't reachable at their linked URL, but is on the Wayback Machine. "How Emily Tamed the Caml" - https://web.archive.org/web/20221231184748/https://www.hpl.hp.com/tech…
Emily took the approach of restricting a subset of OCaml, which they were running on Windows machines. No idea how tough it would be to get it running on a modern version.
Also for OCaml, the MirageOS unikernel is neat - develop on Linux etc., then recompile configured as a virtual machine with only the drivers (network, filesystem) needed by that one app. - https://mirage.io/
rixed · 2024-03-14
Mandatory reference to mirage-os, a similar unikernel build on top of xen with a focus on security, in OCaml:
https://mirage.io/
I wish to encounter some unikernels in production sometime.
fuzztester · 2023-12-20
Interesting, and thanks.
I didn't know about those. I kind of thought you may have used MirageOS, which I had read about earlier. It is done in OCaml.
https://mirage.io/
ralls_ebfe · 2023-10-23
There is a framework for OCaml for this: https://mirage.io/
So if you are interested in learning OCaml and want a unikernel, this would be a possible path to take.
ilaksh · 2023-08-30
Would be interested to hear the plans for security in more detail.
But in general I think these types of experiments show that operating systems could be improved with greenfield designs.
Reminds me a tiny bit of Mirage OS. https://mirage.io/
girvo · 2023-06-20
That was/is part of the promise of the whole unikernel thing, no?
https://mirage.io/ or similar could then let you boot your database. That said, it's not really taken off from what I can tell, so I'm guessing there's more to it than that.
agent281 · 2022-12-21
This seems backwards to me. Docker is built on Linux process controls and requires the Linux kernel. I believe Docker on MacOS/Windows requires a Linux VM.
> Unfortunately, one of the challenges of running Docker on macOS or Windows is that these Linux primitives are unavailable. Docker Desktop goes to great lengths to emulate them without modifying the user experience of running containers. It runs a (light) Linux VM to host the Docker daemon with additional "glue" helpers to connect the Docker client, running on the host, to that VM.
https://mirage.io/blog/2022-04-06.vpnkit
WASM and WASI would actually be a cross compatibility story because you could compile to an architecture and syscall interface that is platform agnostic.
jonjacky · 2022-12-18
"MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms. ...
MirageOS uses the OCaml language, with libraries that provide networking, storage and concurrency support that work under Unix during development, but become operating system drivers when being compiled for production deployment. ...
MirageOS 4.0 was released in March 2022, preceded by ... MirageOS 1.0 in December 2013. All the infrastructure you see here is self-hosted. ..."
https://mirage.io/
So this has been going on for 9 years, I presume someone is using it.
p4bl0 · 2022-07-27
OCaml has Mirage (https://mirage.io) for example, and ReasonML is just another syntax for the language.
kristjansson · 2021-12-17
Unikernels are a thing e.g. https://mirage.io. AFIACT uptake has been ... slow. You give up a lot to erase most or all of your OS, and only the most performance sensitive applications realize a benefit
thingification · 2021-12-08
From my skim of the README this sounds like (in part) a system for generating unikernels, is that correct?
Would anybody like to compare/contrast this with https://mirage.io/?
rackjack · 2021-12-03
MirageOS (unikernel) plug:
https://mirage.io/
and repo:
https://github.com/mirage/mirage
drhodes · 2021-04-04
Yep, check it out
https://en.wikipedia.org/wiki/Unikernel
https://mirage.io/
A 2014 podcast from IEEE,
https://www.se-radio.net/2014/05/episode-204-anil-madhavapeddy-on-the-…
AngusH · 2021-01-26
For those, such as myself, who were not previously familiar with it:
"MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms. Code can be developed on a normal OS such as Linux or MacOS X, and then compiled into a fully-standalone, specialised unikernel that runs under a Xen or KVM hypervisor."
https://mirage.io
It seems an interesting idea.
ksec · 2020-12-20
I am glad the first comment on HN is pointing this out.
I still think it is unfortunate UK couldn't bring its tech to the next level with IMG, ARM, Icera and arguably Dialog Semiconductor.
Or Interesting UniKernel project from Cambridge UK [1]. I mean there are lots of Innovation happening even right now in UK. Both hardware and Software.
Edit: And I forgot Raspberry Pi.
[1] https://mirage.io
vbrandl · 2020-08-02
There is some cool stuff for OCaml, that is not (yet) possible in Rust, e.g. building a unikernel using MirageOS (https://mirage.io/)
mxschumacher · 2020-02-14
I find the negative sentiment regarding microkernels premature as well. There are some really interesting projects underway:
https://mirage.io/
https://www.redox-os.org/
Don't microkernels have a real shot at replacing containers? Maybe we can stop running the huge linux kernel for every microservice?
yawaramin · 2019-07-27
Mirage OS would like to have a word with you https://mirage.io/
sgrove · 2018-12-27
> we don't do enough OS research like we used to.
I feel projects like MirageOS[0], Qubes OS[1], and unikernels in general are laying a lot of groundwork for interesting new developments in operating systems. And as a bonus, there's a lot more automated work on security and safety!
[0] https://mirage.io (and cool sub projects like running Mirage on a ESP32 with reprocessing to make a homebrew gameboy-like platform [0.1])
[0.1] An operating system that can scale down to tiny platforms could be a lot of fun to homebrew tinkering https://twitter.com/cem2ran/status/1034879037758496772
[1] https://www.qubes-os.org
simplify · 2018-10-06
I wonder if this is compatible with unikernals like MirageOS? https://mirage.io
kuwze · 2018-08-27
Unikernel Systems, which is cool because it is OCaml based. Their stuff is open source too:
https://mirage.io
tom_mellior · 2018-06-28
MirageOS (https://mirage.io/) has everything written in OCaml, and they don't seem to find it too slow.
sigjuice · 2018-01-12
See https://mirage.io
MirageOS is a library operating system ...
bad_user · 2017-10-19
Rust is in a different league altogether.
Scala, Haskell, OCaml are garbage collected languages. This makes them easier to use, but some problems are out of reach.
Embedded development, kernels, native apps requiring performance without frames dropped, real-time systems actually, including consumer stuff like decoding video, these have been the domain of C/C++.
Of course, there are projects out there using these languages, pushing the boundaries, like MirageOS (https://mirage.io/) which is built with OCaml. But those are like the exceptions confirming the rule.
rlonstein · 2017-10-01
Nice. I immediately though of https://mirage.io/ and http://erlangonxen.org/ but with a more "mainstream" language.