Some funny thoughts about information technology on a post-apocalyptic environment, and some info about a more serious project!



When most people think about what to do after an apocalyptic event, the first time that comes to mind is food and other living essentials.

For example, on the norwegian island of Spitsbergen, in the Svalbard archipelago, the norwegian government has built a secure seed bank, the Svalbard Global Seed Vault [1].

This vault purpose is the preservation af a wide variety of plant seeds that are duplicate samples, or "spare" copies, of seeds held in gene banks worldwide, in order to avoid the loss of seeds in other genebanks during large-scale regional or global crises.

On the same island, the tech company Piql built another vault focused on historical documents, the Arctic World Archive [2].
All documents are digitalized and stored on a optical film specially developed for the task by Piql.

The film is able to store files of any kind of data — documents, PDFs, JPGs, TIFFs — converting them into big, high-density QR codes.
Piql claims its proprietary film format will store data safely for at least 500 years, and maybe as long as 1,000 years, with the assistance of the mine’s climate.


But, what about Information Technology?

What if a worldwide apocalyptic event will destroy all IT systems?

So, Virgil Dupras has decided that it would be just as important to create a versatile and survivable operating system after a catastrophic collapse.

The project is called Collapse OS [3], an operating system that can run on a z80 cpu, composed by a kernel and a collection of programs, tools and documentation.

All this component, may 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.


So little?

If you think it is too basic and outdated, let me remind you that tha Apollo missions has landed on moon using an onboard computer much less powerful and with a human interface much less user friendly than Collapse OS:


Apollo Guidance Computer [7]


Why Z80?

Virgil explains this choise on the project website [3]:

First, because I think there are more scavenge-friendly 8-bit chips around than scavenge-friendly 16-bit or 32-bit chips.

Second, because those chips will be easier to replicate in a post-collapse fab. The Z80 has 9000 transistors. 9000! Compared to the millions we have in any modern CPU, that's nothing! If the first chips we're able to create post-collapse have a low transistor count, we might as well design a system that works well on simpler chips.

The Z80 CPU was introduced by Zilog In the late 1970s, used in a whole bunch of early personal computers, such as the Sinclair ZX Spectrum and the Tandy TRS-80.
The Z80 started to decline in popularity after the IBM PC was released in 1981.
Zilog did release several other microprocessors (Z8000 and Z80000), but these did not take off, so the company switched its focus to microcontrollers.
Currently, descendants of the Z80 can be found in graphic calculators, embedded devices and consumer electronics.


Project status

Currently, Collapse OS is already usable.
It is capable of running on an RC2014 homebrew computer or a Sega Master System/MegaDrive/Genesis.
It can read SD cards, it has a simple text editor and can compile assembler source files.

On the project website there is also a detailed roadmap [4] that currently includes:

  1. Run on minimal and improvised machines.
    • Run on well known z80 machines.
      • TI-83+, TI-84+
      • TRS-80 model 1
    • Test scavenge+retrofit scenarios.
  2. Interface through improvised means (serial, keyboard, display).
    • PAL/NTSC
    • VGA
    • Various LCD screen models
    • E-ink displays
    • (still hesitating about dot matrix printers... maybe.)
  3. Compile assembler source files for a wide range of MCUs and CPUs.
    • 8080
    • 6502
    • AVR
    • PIC
  4. Read and write from a wide range of storage devices.
    • AVR MCUs
    • SST39
    • SPI RAM/ROM
    • Various floppy disks
    • Add mechanism to bootload from storage to allow for a 100% RAM address space.
  5. Replicate itself.
    • on a Sega Master System with a SD card module.


Let's try Collapse OS!

Do you want to be one of the first sysadmin of the post-doomsday hera of technology?

Good! Let's start practice on Collapse OS!

Michael Schierl has put together a set of emulators running in the browser [5], based on a Z80 JavaScript emulator, that run Collapse OS in different contexts.

The provided SD card image contains source code of all the included tools and of the kernel (ROM).In addition to the original ed, memt and zasm binaries, my images also include a convenience zmake binary - zmake foo will assemble foo/glue.asm to foo and will overwrite existing binaries. There is also a BASIC interpreter based on TinyBasic, with lowercase variable/keyword support and added IN/OUT/PEEK/POKE/SYS commands.

Using those, and following the User Guide [6] you can give Collapse OS a try.


The GitHub Arctic Code Vault

Collapse OS could be see as just a fun hobby project, but in my opinion may evolve in something useful.

Collapse OS should be a part of a more big project, focused on the preservation of the knowledge.
Along with software, is also important the preservation of engineering knowledge: if the collapse will happens, an operating system is useless if there are no technicians able to build, from recycled materials, a computer for run it!

Furthermore, all this information needs to be phisically preserverd: after the "doomsday", how will Collapse OS get distributed, since I imagine that GitHub will be down?

And that's where the Arctic World Archive comes in: all the documentation necessary to 'reboot' the IT should be archived on the Piql's vault, in order to be recovered similar to the seeds in the near vault if an apocalyptic event will happens.

Luckily, GitHub took care of this point, with the Arctic Code Vault project [8]:

Future historians will be able to learn about us from open source projects and metadata. They might regard our age of open source ubiquity, volunteer communities, and Moore’s Law as historically significant. We are already partnering with Stanford Libraries to help archive curated repositories along with the cultural and other context in which they are set, as key elements of wide-ranging historical and social research and analysis.

Because hardware can be much longer-lived than most of today’s storage media, especially older ones and/or those with mask ROM, there exists a range of possible futures in which working modern computers exist, but their software has largely been lost to bit rot. The Archive Program will preserve that software.

The deadline to save your code in the vault is 02/02/2020:

The 02/02/2020 snapshot archived in the GitHub Arctic Code Vault will sweep up every active public GitHub repository, in addition to significant dormant repos as determined by stars, dependencies, and an advisory panel. The snapshot will consist of the HEAD of the default branch of each repository, minus any binaries larger than 100KB in size. Each repository will be packaged as a single TAR file. For greater data density and integrity, most of the data will be stored QR-encoded. A human-readable index and guide will itemize the location of each repository and explain how to recover the data.


References

  1. Svalbard Global Seed Vault
  2. Arctic World Archive
  3. Collapse OS — Homepage
  4. Collapse OS — Roadmap
  5. Collapse OS Web Emulators
  6. Collapse OS documentation
  7. Apollo Guidance Computer
  8. GitHub Archive Program