The MirageOS project blog covers a library operating system for building unikernels in OCaml, with news on releases and uses.
HN commenters describe MirageOS as a useful set of pure OCaml libraries, including DNS, and as an option for running apps directly on a hypervisor.
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…
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.
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/techreports/2006/HPL-2006-116.pdf
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/
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-the-hood/
"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.
> 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