Mirror of CollapseOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 2.5KB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # Collapse OS
  2. *Bootstrap post-collapse technology*
  3. Collapse OS is a z80 kernel and a collection of programs, tools and
  4. documentation that allows you to assemble an OS that, when completed, will be
  5. able to:
  6. 1. Run on an extremely minimal and improvised architecture.
  7. 2. Communicate through a improvised serial interface linked to some kind of
  8. improvised terminal.
  9. 3. Edit text files.
  10. 4. Compile assembler source files for a wide range of MCUs and CPUs.
  11. 5. Write files to a wide range of flash ICs and MCUs.
  12. 6. Access data storage from improvised systems.
  13. 7. Replicate itself.
  14. Additionally, the goal of this project is to be as self-contained as possible.
  15. With a copy of this project, a capable and creative person should be able to
  16. manage to build and install Collapse OS without external resources (i.e.
  17. internet) on a machine of her design, built from scavenged parts with low-tech
  18. tools.
  19. ## Status
  20. The project unfinished but is progressing well! Highlights:
  21. * Self replicates: Can assemble itself from within itself, given enough RAM and
  22. storage.
  23. * Has a shell that can poke memory, I/O, call arbitrary code from memory.
  24. * Can "upload" code from serial link into memory and execute it.
  25. * Can manage multiple "block devices".
  26. * Can read and write to SD cards.
  27. * A z80 assembler, written in z80 that is self-assembling and can assemble the
  28. whole project.
  29. * Compact:
  30. * Kernel: 3K binary, 1800 SLOC.
  31. * ZASM: 4K binary, 2300 SLOC, 16K RAM usage to assemble kernel or itself.
  32. * Extremely flexible: Kernel parts are written as loosely knit modules that
  33. are bound through glue code. This makes the kernel adaptable to many unforseen
  34. situations.
  35. * From a GNU environment, can be built with minimal tooling: only
  36. [libz80][libz80], make and a C compiler are needed.
  37. ## Organisation of this repository
  38. * `kernel`: Pieces of code to be assembled by the user into a kernel.
  39. * `apps`: Pieces of code to be assembled into "userspace" application.
  40. * `recipes`: collection of recipes that assemble parts together on a specific
  41. machine.
  42. * `doc`: User guide for when you've successfully installed Collapse OS.
  43. * `tools`: Tools for working with Collapse OS from "modern" environments. Mostly
  44. development tools, but also contains emulated zasm, which is
  45. necessary to build Collapse OS from a non-Collapse OS machine.
  46. Each folder has a README with more details.
  47. ## More information
  48. Go to [Collapse OS' website](https://collapseos.org) for more information on the
  49. project.
  50. [libz80]: https://github.com/ggambetta/libz80