Collapse OS
Bootstrap post-collapse technology
Winter is coming and Collapse OS aims to soften the blow.
It is a z80 kernel and a collection of programs, tools and documentation that
allows you to assemble an OS that can:
- Run on minimal and improvised machines.
- Interface through improvised means (serial, keyboard, display).
- Edit text files.
- Compile assembler source files for a wide range of MCUs and CPUs.
- Read and write from a wide range of storage devices.
- Replicate itself.
Additionally, the goal of this project is to be as self-contained as possible.
With a copy of this project, a capable and creative person should be able to
manage to build and install Collapse OS without external resources (i.e.
internet) on a machine of her design, built from scavenged parts with low-tech
tools.
Status
The project lives on github
and is progressing well! Highlights:
-
Self replicates: Can assemble itself from within itself, given enough
RAM and storage.
-
Known to run on:
-
A RC2014 through a serial link. It can also have a PS/2
keyboard directly plugged in.
-
A Sega Master System or a MegaDrive (Genesis) with video output
and D-Pad input and/or a PS/2 keyboard adapter.
- Has a shell that can poke memory, I/O, call arbitrary code from memory.
- Can read SD cards.
- Has a text editor modeled after UNIX's ed.
- Compact:
- Kernel: 2700 SLOC. binary size varies wildly. Generally around 3K.
- zasm: 5K binary, 2400 SLOC, 8K RAM usage to assemble kernel or itself.
- ed: 1K binary, 500 SLOC.
-
Extremely flexible: Kernel parts are written as loosely knit modules
that are bound through glue code. This makes the kernel adaptable to
many unforseen situations.
-
Built from a GNU environment with minimal tooling: only
libz80 is needed.
- An exciting roadmap!
Try it out
See documentation
for instructions.
Questions?
If you have further questions about the project, a big discussion about it occurred on Reddit and I answered a lot of questions there.
There was also a nice conversation on Hacker News about Collapse OS, but I didn't participate because I don't have a HN account. Also, this community doesn't seem collapse-aware so the idea of participation into this discussion seemed tedious to me. But the user "yellowapple" did a good job of answering many questions in a way that is similar to what I would have.