Skip to content

civboot/civboot

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.

Civboot: civboot a civilizational bootstrapper civboot

Civboot: a self-bootstrapping (self-replicating) technology stack for modern civilization.

Today's technology stack and supply chain are too large and complex to be able to reproduce or understand from books or working examples.

Simplifying parts of our technology stack has many benefits:

  1. It provides a learning reference which can be extrapolated from.
  2. It creates a base to modify and branch new ideas.
  3. It allows adaptability if supply chains are disrupted or resources are scarce, especially in places with fewer resources.

The goal of Civboot is to follow the bellow process for each technology stack (i.e. software, precision engineering, semiconductor fabrication, etc):

  1. Reduce its complexity to something more replicatable and understandable.
  2. Build a working system from as simple of tools as possible.
  3. Document that system and its construction.
  4. Repeat

The above should be continued for all technology stacks required to build the crown jewel of justified complexity in our Civilization: the computer.

Unfortunately, modern computers require a large and complex supply chain including multi-billion dollar silicon fabrication facilities. These require other billion dollar industries for their custom precision engineered tools, which themselves depend on other industries, etc. To be able to construct a CPU (and an entire Civboot) at a small scale (i.e. a university) we will likely need to pursue different technologies, such as Thin Film Transistors which can be made using low temperature processes on glass (instead of pure silicon).

These CPUs will be more rudimentary than the 2GHz with 8GiB of RAM we find in modern smartphones. Therefore, we will also need simpler software -- something like 100MHz CPUs with only a 10MiB of memory.

The Civboot stack will not be built in a night. It will require probably hundreds of interested people working in many different fields. All Civboot components should be designed so that parts of them can be built with off the shelf components. The end goal is that every component can be built inside a Civboot. "Every component" means not just that you could use a Civboot to build a CPU, it means you can use a Civboot to build a Civboot from only raw or recycled materials.

Once a stack can be self-replicated we should keep iterating on the process. Make each sub-stack:

  1. Better, simpler and cheaper to build
  2. Easier to learn
  3. More concisely documented
  4. Repeat

Even if we fail, it will be worth the effort. Having a simplified working-understanding of technology has many advantages other than the construction of a Civboot.

Non-goals

Civboot only contains needs to contain working prototypes and tutorials which provide a working knowledge of how to reconstruct and improve the Civboot. Deeper understanding of things like transistors, hardware architecture, software architecture, chemistry, mechanical engineering, etc can take potentially a lifetime of learning. It is hoped that Civboot can be a foundation for that learning, but Civboot itself aims to provide only a working understanding.

Progress

The following are what is necessary to complete a Civboot. Items without nested bullet points are not currently being worked on directly.

  • Minimalist software stack. The goal is that each "major layer" should be ~1-2 thousand lines of readable code and "core" tests.
    • The cxt documentation syntax.
    • The zoa cross-language serialized data format.
    • The fngi programming language
      • <1k line C file bootstrapps spor assembly language and runtime
      • <1k lines of spor bootstrapps fngi syntax
      • <1k lines of fngi bootstrapps core syntax elements (fn, if, loop, struct)
      • type checking
      • std library (string, regex, core data structures, zoa, etc)
  • Minimalist Operating System with core utilities. Again, each tool should ideally contain only a few thousand lines of code. As simple as possible but no simpler
    • Scripting language, better than bash probably good at processing data-flows. The D database language tutorial provides inspiration.
    • Cross compiling IR compiler, QBE provides inspiration.
    • Text editor + "shell". Vim and Jupiter notebooks provide inspiration.
    • Operating System. The OberonOS and CollapseOS provide inspiration and demonstrate what is possible: an operating system in < 10,000 lines of code with cross compilers and editing utilities. To a lesser degree Linux/BSD/Plan9 give some inspiration.
    • Version control and bug-tracking software ugit and fossil provide inspiration.
    • Learning system. Khan Academy provides inspiration.
    • Software defined 2D-CAD Modeling. [ImplicitCAD][ImplicitCAD] provides inspiration.
    • Networking stack. Networks from scratch seems like a good start, PJON provides inspiration
  • A reduced (only what's necessary for Civboot) version of the Global Village Construction Set and built using Civboot software
  • Photo Optics (lenses) fabrication and working knowledge.
  • Precision Engineering fabrication and working knowledge. Simplifying this into working
  • Electronics (non-semiconductor) fabrication and working knowledge (Electrical Engineering)
  • Semiconductor fabrication and working knowledge (Electrical Engineering, Circuit Design, etc)
    • A stack-based CPU built using FPGA and modern fabs, the J1 provides some inspiration.
    • Working TFT transistor fabrication.

Resources

This is the repository for Civboot: a Civilizational Bootstrapper. It's purpose is to act as a version-controlled wiki for all efforts related to Civboot.

This effort was started on 2019-11-14 and is still very early stage. This github repo should be used for discussion (through opening an issue).

Podcast

  • View it on youtube
  • Listen on anchor or wherever you get your podcasts.

About

Civilizational Bootstraper: landing page and wiki

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published