91 lines
3.6 KiB
Markdown
91 lines
3.6 KiB
Markdown
# Collapse OS
|
|
|
|
*Bootstrap post-collapse technology*
|
|
|
|
Collapse OS is a Forth operating system and a collection of tools and
|
|
documentation with a single purpose: preserve the ability to program micro-
|
|
controllers through civilizational collapse.
|
|
|
|
It it designed to:
|
|
|
|
1. Run on minimal and improvised machines.
|
|
2. Interface through improvised means (serial, keyboard, display).
|
|
3. Edit text files.
|
|
4. Compile assembler source files for a wide range of MCUs and CPUs.
|
|
5. Read and write from a wide range of storage devices.
|
|
6. Assemble itself and deploy to another machine.
|
|
|
|
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.
|
|
|
|
## Git repository no longer updated
|
|
|
|
In the wake of my rejection of modern software and complexity, I've stopped
|
|
using git to manage versioning in Collapse OS because I consider RCS to be
|
|
sufficient. The commit adding this message is therefore the last I'm adding.
|
|
|
|
Further improvements of Collapse OS are available on [Collapse OS' website][web]
|
|
as tarballs of the project including RCS metadata. Those tarballs are updated
|
|
regularly.
|
|
|
|
## Getting started
|
|
|
|
Documentation is in text files in `doc/`. Begin with `intro.txt`.
|
|
|
|
Collapse OS can run on any POSIX platform and builds easily.
|
|
See `/cvm/README.md` for instructions.
|
|
|
|
Alternatively, there's also [Michael Schierl's JS Collapse OS emulator][jsemul]
|
|
which is awesome and allows you to run Collapse OS from your browser, but it
|
|
isn't always up to date. The "Javascript Forth" version is especially awesome:
|
|
it's not a z80 emulator, but a *javascript port of Collapse OS*!
|
|
|
|
## Organisation of this repository
|
|
|
|
* `blk.fs`: Collapse OS filesystem's content. See below.
|
|
* `cvm`: A C implementation of Collapse OS, allowing it to run natively on any
|
|
POSIX platform.
|
|
* `doc`: Documentation.
|
|
* `arch`: collection of makefiles that assemble Collapse OS on different
|
|
machines.
|
|
* `tools`: Tools for working with Collapse OS from "modern" environments. For
|
|
example, tools for facilitating data upload to a Collapse OS machine
|
|
through a serial port.
|
|
* `emul`: Tools for running Collapse OS in an emulated environment.
|
|
* `tests`: Automated test suite for the whole project.
|
|
|
|
## blk.fs
|
|
|
|
This file is a big text file containing the "real deal", that is, the contents
|
|
of Collapse OS' filesystem. That filesystem contains everything that a
|
|
post-collapse computer would manage, that is, all Forth and assembler source
|
|
code for the tools it needs to fulfill its goals.
|
|
|
|
The Collapse OS filesystem is a simple sequence of 1024 bytes blocks. That is
|
|
not very workable in the text editor of a modern system. `blk.fs` represents an
|
|
"unpacked" view of that block system. Each block (16 lines max per block, 64
|
|
chars max per line) begins with a marker indicating the block number of the
|
|
contents that follow.
|
|
|
|
Blocks must be in ascending order.
|
|
|
|
That file can be "packed" to a real blkfs with `/tools/blkpack`. A real blkfs
|
|
can be "unpacked" to its text file form with `/tools/blkunpack`.
|
|
|
|
## Status
|
|
|
|
The project unfinished but is progressing well! See [Collapse OS' website][web]
|
|
for more information.
|
|
|
|
## Looking for the assembler version?
|
|
|
|
The Forth-based Collapse OS is the second incarnation of the concept. The first
|
|
one was entirely written in z80 assembly. If you're interested in that
|
|
incarnation, checkout the `z80asm` branch.
|
|
|
|
[web]: http://collapseos.org
|
|
[jsemul]: https://schierlm.github.io/CollapseOS-Web-Emulator/
|