Hi folks - bootrino author here.

marketing website https://www.bootrino.com/

technical documentation https://doc.bootrino.com/

bootrino console https://console.bootrino.com/

bootrino is new and in beta so I'm keen to find people who'd like to give it a try and let me know if it doesn't work.

Today, bootrino is not for booting unikernels, but that was the original idea.

bootrino lets you netboot Run-From-RAM operating systems on cloud servers, but the origin of the project goes back a few years ago to when I became interested in unikernels, and how they might improve security by running only application code and minimal operating system code on a server. That seemed to make a great deal of sense to me. If it's not possible to log in to a server because there is no login system then surely that's got to be alot harder for hackers to get in. So I fiddled around with unikernels and after significant pain, got the rump kernel up and running on EC2 (for the first time).

And I thought, "wow that was way too hard". So I set out to build some sort of application that would make it easy to build unikernel cloud images that would run on all the common clouds. And along that path I discovered the crushing pain, inconsistency and sometimes impossibility of building machine images for the common cloud platforms. I targeted Amazon, Rackspace, Azure, Softlayer, Google and Digital Ocean. All cloud platforms do machine images differently, all cloud platforms make it hard and slow and painful, some make it impossible. So I sat back and scratched my beard and thought "wow, actually maybe it's not practical to build something that makes it easy to boot unikernels on all the common clouds".

I can't remember where the idea came from, probably just woke up with it one morning, but it struck me like lightning "hang on, I don't need to build machine images for all these cloud platforms". Instead of making a machine image for each cloud via its own unique process, I realised that every single cloud vendor boots almost precisely the same version of Ubuntu, and that they all support some sort of mechanism for providing a startup script to the instance. I connected this realisation to something I had read recently on Hacker News describing a way of replacing the operating system of a live machine with a new operating system https://news.ycombinator.com/item?id=13622301 and my head exploded with excitement. Instead of building and uploading machine images, just use Ubuntu as a bootloader, format the root disk and replace it with whatever operating system I wanted. A MUCH better approach - faster, more consistent and guaranteed to work across all the clouds.

So I did alot of technology testing and got it to work - eureka!

The next major shift in the project was that I found that the unikernel technology wasn't really able to run on the cloud machines, or more correctly, it was able to run on some cloud machines under some circumstances. And at the same time I learned alot about embedded systems, Yocto Linux, and Run-From-RAM operating systems like Tiny Core Linux and Alpine Linux. And I realised that in fact Linux can be trimmed down so light that it has many of the characteristics of a unikernel - of specific interest to me is that it is possible to cut Linux down to not much more than the kernel and the application code, which makes things very similar to unikernels. Run-From-RAM Linux is extremely small, fast and can be configured to be quite secure. And I found that it's a real pain to boot Run-From-RAM operating systems in the cloud. So the focus of bootrino shifted from unikernels to being more generalised - bootrino would be a simple way to boot Run-From-RAM operating systems in the cloud.

Another idea occurred to me which was that the Run-From-RAM operating systems are so small that it would be possible to put them on web servers and have bootrino fetch the OS code from any web server along with a shell script (bootrino.sh) which put a huge amount of control and power into the bootrino user. My idea was that ll they would need to do is load a shell script onto a web server, and bootrino could then launch a cloud instance, pull down the bootrino.sh and there you have it - netboot Run-From-RAM operating systems on the major cloud platforms.

Along the way I dropped Rackspace (I think it was defeated by AWS and stopped being developer friendly). I dropped SoftLayer (it's extremely locked down and does not allow you to reformat your disk any way you want). I also dropped Microsoft Azure (because it's API and ways of going about doing things were so annoying I gave up on it).

So anyway thats the back story. If you've got time and inclination to boot up a Run-From-RAM OS on your cloud then I'd really appreciate to hear from you how it went so I can fix bugs and clean up documentation. thanks! Andrew bootrino@gmail.com