{"id":13473223,"url":"https://github.com/civboot/civboot","last_synced_at":"2025-03-26T17:32:30.977Z","repository":{"id":41423027,"uuid":"221794600","full_name":"civboot/civboot","owner":"civboot","description":"Civilizational Bootstraper: landing page and wiki","archived":false,"fork":false,"pushed_at":"2024-06-10T20:04:53.000Z","size":48099,"stargazers_count":339,"open_issues_count":4,"forks_count":9,"subscribers_count":24,"default_branch":"main","last_synced_at":"2024-08-01T16:32:34.364Z","etag":null,"topics":["education"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/civboot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-14T22:02:15.000Z","updated_at":"2024-07-23T10:07:06.000Z","dependencies_parsed_at":"2022-08-10T02:07:47.674Z","dependency_job_id":"396a4d47-a3f3-4f0c-959f-83ce7dbe40a0","html_url":"https://github.com/civboot/civboot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/civboot%2Fcivboot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/civboot%2Fcivboot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/civboot%2Fcivboot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/civboot%2Fcivboot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/civboot","download_url":"https://codeload.github.com/civboot/civboot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222156654,"owners_count":16940437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["education"],"created_at":"2024-07-31T16:01:01.886Z","updated_at":"2025-03-26T17:32:30.969Z","avatar_url":"https://github.com/civboot.png","language":null,"readme":"# Civboot: \u003cimg src=\"Civboot.png\" alt=\"civboot\" width=\"30\"/\u003e a civilizational bootstrapper \u003cimg src=\"Civboot.png\" alt=\"civboot\" width=\"30\"/\u003e\n\nTo grow a tree you need a seed. To build a computer you need a Civboot. In the\nsame way that a tiny seed has everything needed to grow into a tree, we should\ncreate a tiny Civboot which has everything needed to build a modern\nCivilization.\n\n\u003e Want to share your thoughts or ask questions? Feel free to open an issue here\n\u003e or [join us on discord][discord].\n\nWhat is a Civboot? Conceptually it is a seed from which can grow the essential\ntechnology of Civilization. Imagine a factory capable of building a minimalist\ngeneral-purpose personal computer, like something from the 80's/90's or better.\nA Civboot factory is one which can build such a factory from raw materials.\n\n* OR imagine that you wanted to be able to build computer chips and other\n  electronic components entirely \"in house\" (by a small company) with no\n  dependency on a supply chain. How large and expensive would such a factory\n  currently be? Can we do better?\n* OR imagine you wanted to have a self-sufficient factory on Mars that can build\n  computer chips and other necessary \"tools that build tools\". How large would\n  such a factory have to be and what would we need to take from earth?\n\nToday's technology stack and supply chain are too large and complex to be\nproduced in house or taken to Mars, much less understood from books or working\nexamples. Simplifying parts of our technology stack has many benefits:\n\n1. Provides working example that can be used as reference to learn from.\n2. Creates a base to modify and build new ideas and approaches.\n3. Allows adaptability if supply chains are disrupted or resources are scarce,\n   especially in places with fewer resources.\n\nThe goal of Civboot is to follow the bellow process for each technology stack\n(i.e. software, precision engineering, semiconductor fabrication, etc):\n\n1. Reduce its complexity to something more replicatable and understandable.\n2. Build a working system from as simple of tools as possible.\n3. Document that system and its construction.\n4. Repeat until it can rebuild itself with the knowledge of only a small group\n   of people.\n\nThe above should be continued for all technology stacks required to build the\ncrown jewel of justified complexity in our Civilization: the computer.\n\nUnfortunately, modern computers require a large and complex supply chain\nincluding multi-billion dollar silicon fabrication facilities. These require\nother billion dollar industries for their custom precision engineered tools,\nwhich themselves depend on other industries, etc. To be able to construct a CPU\n(and an entire Civboot) at a small scale (i.e. a University) we will likely need\nto pursue different technologies, such as [Thin Film Transistors][TFT] which can\nbe made using low temperature processes on glass (instead of pure silicon).\n\nThese CPUs will be more rudimentary than the 2GHz with 8GiB of RAM we find in\nmodern smartphones. Therefore, we will also need simpler software -- something\nlike 100MHz CPUs with only a 10MiB of memory.\n\nThe Civboot manufacturing, hardware and software stacks will not be built in a\nnight. It will require probably hundreds of interested people working in many\ndifferent fields. All Civboot components should be designed so that parts of\nthem can be built with off the shelf components. The end goal is that _every\ncomponent_ can be built inside a Civboot. \"Every component\" means not just that\nyou could use a Civboot to build a CPU, it means **you can use a Civboot to\nbuild a Civboot** from only raw or recycled materials.\n\nOnce a stack can be self-replicated we should keep iterating on the process.\nMake each sub-stack:\n\n1. Easier to learn\n2. More concisely documented\n3. Better, simpler and cheaper to build\n4. Repeat\n\nEven if we fail, it will be worth the effort. Having a simplified\nworking-understanding of technology has many advantages other than the\nconstruction of a Civboot.\n\n## Non-goals\n\nCivboot only needs to contain working prototypes and tutorials which provide a\n_working knowledge_ of how to reconstruct and improve the Civboot. Deeper\nunderstanding of things like transistors, hardware architecture, software\narchitecture, chemistry, mechanical engineering, etc can take potentially a\nlifetime of learning. It is hoped that Civboot can be a foundation for that\nlearning, but Civboot itself aims to provide only a working understanding.\n\n\n## Progress\nThe following are what is necessary to complete a Civboot. Items without nested\nbullet points are not currently being worked on directly.\n\n* [ ] Minimalist software stack. The goal is that each \"major layer\" should be\n  ~1-2 thousand lines of readable code and \"core\" tests.\n  * [x] The [cxt][cxt] documentation syntax.\n  * [x] The [zoa][zoa] cross-language serialized data format.\n  * [ ] The [fngi][fngi] programming language\n    * [X] \u003c1k line C file bootstrapps spor assembly language and runtime\n    * [X] \u003c1k lines of spor bootstrapps fngi syntax\n    * [X] \u003c1k lines of fngi bootstrapps core syntax elements (`fn`, `if`,\n      `loop`, `struct`)\n    * [X] type checking\n    * [ ] std library (string, regex, core data structures, zoa, etc)\n* [ ] Minimalist Operating System with core utilities. Again, each tool should\n  ideally contain only a few thousand lines of code. *As simple as possible but\n  no simpler*\n  * [ ] Scripting language, better than bash probably good at processing\n    data-flows. The [D database language][D database language] tutorial provides\n    inspiration.\n  * [ ] Cross compiling IR compiler, [QBE][QBE] provides inspiration.\n  * [ ] Text editor + \"shell\". Vim and Jupiter notebooks provide inspiration.\n  * [ ] Operating System. The [OberonOS][OberonOS] and [CollapseOS][CollapseOS]\n    provide inspiration and demonstrate what is possible: an operating system in\n    \u003c 10,000 lines of code with cross compilers and editing utilities. To a\n    lesser degree Linux/BSD/Plan9 give some inspiration.\n  * [ ] Version control and bug-tracking software [ugit][ugit] and\n    [fossil][fossil] provide inspiration.\n  * [ ] Learning system. [Khan Academy][Khan Academy] provides inspiration.\n  * [ ] Software defined 2D-CAD Modeling. [ImplicitCAD][ImplicitCAD] provides\n    inspiration.\n  * [ ] Networking stack. [Networks from scratch][NFS] seems like a good start,\n        [PJON][PJON] provides inspiration\n* [ ] A reduced (only what's necessary for Civboot) version of the [Global\n  Village Construction Set][OSE] and built using Civboot software\n* [ ] Photo Optics (lenses) fabrication and working knowledge.\n* [ ] Precision Engineering fabrication and working knowledge. Simplifying this into working\n* [ ] Electronics (non-semiconductor) fabrication and working knowledge (Electrical\n  Engineering)\n* [ ] Semiconductor fabrication and working knowledge (Electrical Engineering,\n  Circuit Design, etc)\n  * [ ] A stack-based CPU built using FPGA and modern fabs, the [J1][J1]\n    provides some inspiration.\n  * [ ] Working [TFT][TFT] transistor fabrication.\n\n[cxt]: https://github.com/civboot/cxt\n[zoa]: https://github.com/civboot/zoa\n[fngi]: https://github.com/civboot/fngi\n[QBE]: https://c9x.me/compile/\n[OberonOS]: https://en.wikipedia.org/wiki/Oberon_(operating_system)\n[CollapseOS]: https://collapseos.org/\n[ugit]: https://www.fossil-scm.org/home/doc/trunk/www/index.wiki\n[fossil]: https://www.fossil-scm.org/home/doc/trunk/www/index.wiki\n[Khan Academy]: https://www.khanacademy.org/\n[D database language]: https://www.dcs.warwick.ac.uk/~hugh/TTM/DTATRM.pdf\n[NFS]: https://www.networksfromscratch.com/index.html\n[PJON]: https://github.com/gioblu/PJON\n[OSE]: https://www.opensourceecology.org/gvcs\n[TFT]: ./notes/hardware.md#thin-film\n[J1]: https://github.com/jamesbowman/j1\n\n\n## Resources\n\nThis is the repository for Civboot: a Civilizational Bootstrapper. It's purpose\nis to act as a version-controlled wiki for all efforts related to Civboot.\n\nThis effort was started on 2019-11-14 and is still very early stage. This\ngithub repo should be used for discussion (through [opening an issue][issue]).\n\n[Chat on discord][discord]\n\nPodcast\n* View it on [youtube][CB youtube]\n* Listen on [anchor][CB anchor] or wherever you get your podcasts.\n\n[issue]: https://github.com/civboot/civboot/issues\n[CB youtube]: https://www.youtube.com/channel/UCCYYcyLG3MAZahnoKLx3Aaw?view_as=subscriber\n[CB anchor]: https://anchor.fm/civboot\n[discord]: https://discord.gg/VJD95zsmfy\n","funding_links":[],"categories":["HTML"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcivboot%2Fcivboot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcivboot%2Fcivboot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcivboot%2Fcivboot/lists"}