Cloud VPS from "scratch"

I just successfully built a minimal Linux kernel, installed a SubX binary[1] as init -- and ran the whole thing on a Linode.

It's not in 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 minimal.linux-bg.org

[1] github.com/akkartik/mu/blob/4e

Follow

Turn a set of .subx files into a bootable disk image.

```
$ git clone 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
```

github.com/akkartik/mu#readme

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.

Credit: minimal.linux-bg.org/

One aspect that seems more broadly useful than just my own Assembly language project: how to deploy bootable disk images on Linode.

akkartik.name/post/iso-on-lino

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.

Context: github.com/akkartik/mu#readme

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.

github.com/akkartik/mu#readme

(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: github.com/ozkl/soso

Today I've gotten Mu running on it well enough to make it a first-class supported platform alongside Linux.

github.com/akkartik/mu#readme

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!

@vertigo @rain

@akkartik @vertigo that's awesome that you're even connecting with other projects like soso

Sign in to participate in the conversation
Mastodon

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!