collapseos/recipes
Virgil Dupras 019d05f64c Make the shell a userspace app
That's my mega-commit you've all been waiting for.

The code for the shell share more routines with userspace apps than with kernel
units, because, well, its behavior is that of a userspace app, not a device
driver.

This created a weird situation with libraries and jump tables. Some routine
belonging to the `kernel/` directory felt weird there.

And then comes `apps/basic`, which will likely share even more code with the
shell. I was seeing myself creating huge jump tables to reuse code from the
shell. It didn't feel right.

Moreover, we'll probably want basic-like apps to optionnally replace the shell.

So here I am with this huge change in the project structure. I didn't test all
recipes on hardware yet, I will do later. I might have broken some...

But now, the structure feels better and the line between what belongs to
`kernel` and what belongs to `apps` feels clearer.
2019-11-15 15:37:49 -05:00
..
rc2014 Make the shell a userspace app 2019-11-15 15:37:49 -05:00
sms Make the shell a userspace app 2019-11-15 15:37:49 -05:00
ti84 Make the shell a userspace app 2019-11-15 15:37:49 -05:00
.gitignore recipes/ti84: add upload instructions 2019-11-07 13:42:40 -05:00
README.md doc: fix mis-wording 2019-11-05 17:59:29 -05:00

Recipes

Because Collapse OS is a meta OS that you assemble yourself on an improvised machine of your own design, there can't really be a build script. Not a reliable one anyways.

Because the design of post-collapse machines is hard to predict, it's hard to write a definitive guide to it.

The approach we're taking here is a list of recipes: Walkthrough guides for machines that were built and tried pre-collapse. With a wide enough variety of recipes, I hope that it will be enough to cover most post-collapse cases.

That's what this folder contains: a list of recipes that uses parts supplied by Collapse OS to run on some machines people tried.

In other words, parts often implement logic for hardware that isn't available off the shelf, but they implement a logic that you are likely to need post collapse. These parts, however have been tried on real material and they all have a recipe describing how to build the hardware that parts have been written for.

Structure

Each top folder represents an architecture. In that top folder, there's a README.md file presenting the architecture as well as instructions to minimally get Collapse OS running on it. Then, in the same folder, there are auxiliary recipes for nice stuff built around that architecture.

Installation procedures are centered around using a modern system to install Collapse OS. These are the most useful instructions to have under both pre-collapse and post-collapse conditions because even after the collapse, we'll interact mostly with modern technology for many years.

There are, however, recipes to write to different storage media, thus making Collapse OS fully reproducible. For example, you can use rc2014/eeprom to write arbitrary data to a AT28 EEPROM.

The rc2014 architecture is considered the "canonical" one. That means that if a recipe is considered architecture independent, it's the rc2014 recipe folder that's going to contain it.

For example, rc2014/eeprom can be considered architecture independent because it's much more about the AT28 than about a specific z80 architecture. You can adapt it to any supported architecture with minimal hassle. Therefore, it's not going to be copied in every architecture recipe folder.

rc2014 installation recipe also contains more "newbie-friendly" instructions than other installation recipes, which take this knowledge for granted. It is therefore recommended to have a look at it even if you're not planning on using a RC2014.