Collapse OS — Roadmap

Destination

Minimal systems? There's tons of them. Self-assembling systems? There's tons of them. Running on less than 10K transistors? not so much.

If we assume that lower complexity will be forced upon us, we need such a system, a system that is capable of running and self-replicating on very low transistor count.

Collapse OS has no target machine because those machines it's going to run on don't exist yet and will very often be cobbled up together. However, it has target specs: it self-hosts on a Sega Master System, which has 8Kb of RAM. It can run on tighter machines, but self-hosting is hardly possible on machines tighter than that.

It can of course run on bigger machines. It's even likely that most ad-hoc post-collapse computers have much higher specs. However, being able to run on such small machines increases the likeliness for Collapse OS to be useful for a given post-collapse community.

Being able to run on such small machines can also simplify the code on more complex machines. For example, a modern PC is very complex, but if you can stay in 8086 real mode, 80x25 VGA and INT13h disk access, you can bypass a lot of the complexity associated with modernity (that being said, if you have a fully- functional modern PC, you probably want to run a modern OS on it rather than Collape OS).

Of course, a machine with 8Kb of RAM is severly limited, but it's surprising how much these little transistors can achieve when you pour a bit of creativity in it. With assemblers, a text editor and a way to write data to flash, you have enough to steadily improve your technological situation, build more sophisticated machines from more sophisticated scavenged parts and, who knows, in a couple of decades, build a new IC fab (or bring an old one back to life).

Status: completed!

In March 2021, I completed the 6809 port of Collapse OS, having it run on a CoCo2. This port has been entirely written and debugged from within Collapse OS on a TRS-80 4P with 5 1/4 floppies. Because the development of this port went rather well, I now consider the project to have reached its design goals: it's minimal, can self-host, cross-compile and self-improve.

This doesn't mean, however, that I'm finished with the project. There's many areas where Collapse OS can be improved and simplified. Documentation can always be augmented. Ports can be added. Next areas I'm considering improving:

Additionally, as of November 2021, I think I can say that Collapse OS has stabilized. Since the rewrite to Forth, the code has changed wildly and many times over as I was discovering the field. I'm now pretty satisfied with how things are presently structured within the project and I don't think I'll embark in another wild change in it.

Non-goals

It's worth mentionning that supporting specific peripherals isn't on the roadmap. There's too many of them out there and most peripheral post-collapse will be cobbled-up together anyway. Peripherals listed in the goals section above are just one of a kind.

The goal is to give good starting point for as many types of peripherals possible. We expect the post-collapse user to adapt existing code to specific hardware in inventory.

It's also important to keep in mind that the goal of this OS is to program microcontrollers, so the type of peripherals it needs to support is limited to whatever is needed to interact with storage, serial links, display and receive text, do bit banging.