[−]cmrdporcupine · 2026-10-10 Sat 20:48 UTC ·
link
For that matter, the actual Linux kernel need not be large at all. It's really the user space stuff that takes up the bulk of what people think of as the largess of Linux.
Still, there's a whole pile of stuff there that many applications don't need. If you truly can run the entire of the OCaml runtime and standard libraries etc without it, and you're happy writing your apps in OCaml... MirageOS has always felt winning-ish to me as a general idea.
And to TFA's point, now with LLMs the relative exotic nature of OCaml as a platform need not be a huge hindrance. I like the language, but have only dipped my toes in. Definitely tempting to try writing apps on it w/ MirageOS now. Though I doubt I'd convince anybody to pay me to do that...
I was involved a bit in Unikernel Linux (https://github.com/unikernelLinux/) which is basically a Linux kernel where you can run a single application linked with the kernel. It can run baremetal or as a guest under KVM. It's both the best and worst of all worlds.
A lot of comments here about observability. Well UKL solves this nicely because you can run regular userspace processes in the unikernel, thus you can (optionally of course) run a shell, perf, and anything else you need to observe what the machine is doing.
Still, there's a whole pile of stuff there that many applications don't need. If you truly can run the entire of the OCaml runtime and standard libraries etc without it, and you're happy writing your apps in OCaml... MirageOS has always felt winning-ish to me as a general idea.
And to TFA's point, now with LLMs the relative exotic nature of OCaml as a platform need not be a huge hindrance. I like the language, but have only dipped my toes in. Definitely tempting to try writing apps on it w/ MirageOS now. Though I doubt I'd convince anybody to pay me to do that...
A lot of comments here about observability. Well UKL solves this nicely because you can run regular userspace processes in the unikernel, thus you can (optionally of course) run a shell, perf, and anything else you need to observe what the machine is doing.