I’ve been having a lot of fun with Rust Rumprun unikernels lately. Managed to get mio compiled and baked as a unikernel running under qemu (screenshot), followed quickly by running a mioco (mio + coroutines) http demo (screenshot).
Learned a lot in the process, since very few rust projects seem to be 100% compatible with netbsd out of the box, so there has been a lot of tweaking and sending tiny PRs for better netbsd support.
Was doing the same about a month ago. It’s been a good time. Hard to find a cloud to deploy to, though.
Did you happen to try AWS? Theoretically AWS lets you boot your own kernel, which should (also theoretically) be compatible with the xen_pv rumpbake target. It’s been on my to-do list to try… but haven’t found time to give it a go yet.
I fear it won’t be quite as simple as it sounds, since everything is a special snowflake in unikernel land :)
I happened to try. Not sure if anyone tried after me, or if I scared everyone off. At least the web server on AWS is still up.
Then I tried GCE, and it wasn’t exactly better than AWS, so still not sure about deployment on the public cloud.
Not sure if the cloud infra is complex because general purpose operating systems make it complex, or if it’s complex because it’s complex by nature.
Urgh. Thanks for the writeup…it does indeed look a lot more complicated than I had hoped. I’ll put it on my todo list to try, maybe if we take turns smashing our head against the blackbox we’ll eventually end up with a unified launch script :)
I already find AWS to be ridiculously complex, adding in a custom kernel seemed like it would make it even more impossible.
I’ve used EC2 exactly twice, and have exactly the same sentiments :)
I have had success on Vultr. And I’m hoping to try some (toy) deployments on DO.
I’d like to add myself to “currently having fun with rumprun” crew :)
Anyone here use NetBSD? As a user of FreeBSD and OpenBSD, I always been interested in it, but never tried it.
I heard once that Force10 switches ran a modified version of NetBSD, but not sure if that is still the case or not.
The Apple AirPort Extreme and Time Capsule devices run NetBSD http://apple.stackexchange.com/questions/105957/what-is-the-os-inside-the-time-capsule
Ah yeah. I do remember hearing that at one point, but had completely forgotten! I think some of the original NextStep used some NetBSD too, along with FreeBSD parts as well.
It would be interesting to hear why Apple chose to use NetBSD in their AirPort product line, as apposed to one of the other BSDs. Maybe ease of porting? A tech/project lead being more familiar with NetBSD?
I’ve been toying with NetBSD some lately, partly because I’ve been helping someone land their NetBSD changes for LLDB. The other reason that I’ve had for toying with it is that a port to NetBSD is a good start to a port to run on Rumprun, the NetBSD-based Rump Kernel. (There’s at least one other person on Lobste.rs working with Rumprun but he’s working with it for Rust.)
Nice. I’d call Rumprun a “rump kernel based unikernel”, though. There’s a bunch of new terms revolving around rump kernels, which I’m starting to realize is a bit suboptimal, but since the terms describe different things, there’s really no way around it. The FAQ on the rump kernel wiki attempts to provide some clarity/sanity. (There are at least two other persons working on Rumprun here ;-)
I’m trying to get effort put into the second edition on the
book for rump kernels.
Quite a lot of functionality has been added since the first
edition 2-3 years ago. While augmenting the technical descriptions is
easy enough, the hard part is rewriting the introduction to reflect the
new motivations for the project.
I’m also looking at print-on-demand shops to offer a physical option.
That way the answer to people who ask where they can buy a physical copy
can be something nicer than “lpr”.