Hacker News new | ask | show | jobs
by JonChesterfield 969 days ago
OCaml is a good language but perhaps unikernel does not mean what I thought it did:

> fully-standalone, specialised unikernel that runs under a Xen or KVM hypervisor.

Or maybe xen / kvm are no longer called operating systems?

I'm interested in having my code be responsible for thread scheduling and page tables - no OS layer to syscall into - but am not as keen on DIYing the device drivers to get it talking to the rest of the world.

3 comments

MirageOS unikernels run directly on Xen, e.g. http://roscidus.com/blog/blog/2016/01/01/a-unikernel-firewal...

> I replace the [QubesOS] Linux firewall VM with a MirageOS unikernel. The resulting VM uses safe (bounds-checked, type-checked) OCaml code to process network traffic, uses less than a tenth of the memory of the default FirewallVM, boots several times faster, and should be much simpler to audit or extend.

NanoVMs has OSS tools for golang unikernels on multiple hypervisors and cloud platforms, https://nanovms.com/dev/tutorials/running-go-unikernels

Nanos runs not just go but pretty much any language you want to throw at it:

https://github.com/nanovms/ops-examples .

> I'm interested in having my code be responsible for thread scheduling and page tables

But MirageOS does exactly that, last I looked. As does RustyHermit.

> Or maybe xen / kvm are no longer called operating systems?

> I'm interested in having my code be responsible for thread scheduling and page tables - no OS layer to syscall into [...]

You might be confusing Xen and KVM here? Xen and KVM are rather different in this regard.

KVM runs on a full Linux kernel (as far as I know). But running your application as unikernels on top of Xen is more comparable to the old Exokernel concept.