Cloud VPS from "scratch"
I just successfully built a minimal Linux kernel, installed a SubX binary as init -- and ran the whole thing on a Linode.
It's not in https://github.com/akkartik/mu yet, but there will soon be step-by-step instructions.
This couldn't have happened without the education I received from http://minimal.linux-bg.org
Turn a set of .subx files into a bootable disk image.
$ git clone https://github.com/akkartik/mu
$ cd mu
# package up a "hello world" binary and Linux kernel into mu.iso
$ ./gen_iso examples/ex6.subx
# try it out
$ qemu-system-x86_64 -m 256M -cdrom mu.iso -boot d
The process is still fairly klunky, and I've added several large dependencies. But now that I have something working I can start polishing it.
One aspect that seems more broadly useful than just my own Assembly language project: how to deploy bootable disk images on Linode.
Now that I'm packaging Mu with a fork of bleeding-edge Linux, I have a tiger by the tail. I need to stay abreast of changes from upstream or risk bitrot, particularly as new security vulnerabilities are uncovered and patched.
I'm going to start changing the kernel soon, and I need a way to not kill myself merging patches from upstream. For starters: aggressively delete code Mu doesn't need. That'll reduce merge conflicts.
In the first run I just deleted non-x86 architectures. So far so good.
Updated Mu's fork of the Linux kernel again. Today I deleted the entire top-level sound/ directory and a whole bunch of unused file systems.
LoC down from 6.1M to 4.4M.
More deletions later, LoC in my fork of the Linux kernel are down from 27.1M to 12.3M. Goal is to only support lowest-common-denominator devices.
(My line-counting was way off earlier in this thread.)
*Update on the Mu computer*
A few days ago I found out about a hobbyist OS called Soso: https://github.com/ozkl/soso
Today I've gotten Mu running on it well enough to make it a first-class supported platform alongside Linux.
LoC of C I depend on thus goes down from 12M to 33k.
It's not a complete replacement, though. I still plan to work with Linux, particularly for its networking support. But it's *so* cool to have a minimal stack supporting graphics!
Server run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!