| README.md | ||
Digital Seed Vault
resilience archive — something that could meaningfully bootstrap modern computing and fabrication after a large-scale loss of access.
Below is a thoughtful, hierarchical map of open technologies worth backing up, with reasoning for why each layer matters and what to capture. Think of it as a civilization-reconstruction stack.
0. Guiding Principles
A. Prefer specifications + reference implementations
Specs are more durable than code alone.
B. Prefer bootstrappable systems
Things that can compile themselves or be rebuilt from minimal assumptions.
C. Prefer foundational over trendy
A boring compiler beats 100 JavaScript frameworks.
D. Capture documentation, not just source
Docs are as critical as code.
1. Knowledge & Specifications (The Most Critical Layer)
These are the least replaceable.
1.1 Core Standards
Back up official specifications, not just implementations.
- POSIX (IEEE 1003)
- C standard (C89/C99/C11)
- C++ standard (selected revisions)
- ECMAScript spec
- Unicode standard
- IEEE 754 (floating point)
- ISO character encodings
- OpenDocument Format (ODF)
- PDF spec (ISO 32000)
- SQL standard (at least SQL-92, SQL:2011)
Why: Without specs, implementations diverge and knowledge decays.
1.2 Internet & Networking Standards
- TCP/IP RFCs (core set)
- HTTP/1.1, HTTP/2, HTTP/3 RFCs
- DNS RFCs
- SMTP, IMAP, POP
- TLS specifications
- SSH protocol spec
Why: Rebuilding a network requires protocols more than servers.
2. Bootstrapping Toolchain (Absolute Core)
This is the “from bare metal to software” path.
2.1 Assemblers & Linkers
- GNU Binutils
- NASM
- LLVM lld
- ELF specification
2.2 C Toolchains (Highest Priority)
- GCC (multiple versions)
- Clang/LLVM
- musl libc
- glibc (older + stable)
- Newlib
Why: C is the foundation of almost everything else.
2.3 Minimal Compilers / Seeds
These are gold.
- TinyCC (tcc)
- PCC (Portable C Compiler)
- Stage0 project
- MesCC
- bootstrap-seeds
Why: Enables rebuilding compilers from minimal sources.
3. Programming Languages (Strategic Selection)
Not “popular”, but covering paradigms + longevity.
3.1 Systems Languages
- C
- C++
- Rust
- Zig
- Assembly (x86, ARM, RISC-V)
3.2 General-Purpose Languages
- Python (CPython source + docs)
- Lua
- Java (OpenJDK)
- Go
3.3 Functional / Academic
- Scheme (R5RS, R7RS)
- Common Lisp (SBCL, CLHS)
- OCaml
3.4 Scripting & Glue
- Bash
- POSIX sh
- Perl
- fish
Why: Diversity of paradigms ensures adaptability.
4. Operating Systems (Core Survivability Layer)
4.1 Kernels
- Linux kernel (multiple LTS versions)
- BSD kernels (FreeBSD, OpenBSD)
- MINIX
- seL4 (formally verified kernel)
4.2 Userlands
- GNU coreutils
- BusyBox
- Toybox
- util-linux
- systemd (even if controversial)
4.3 Distributions (As Blueprints)
Not binaries—build systems and recipes.
- Debian (apt + build scripts)
- Alpine Linux
- Buildroot
- Yocto
- NixOS (extremely valuable)
- Arch
Why: Distros encode decades of integration knowledge.
5. Storage, Filesystems & Databases
5.1 Filesystems
- ext4
- XFS
- ZFS
- FAT (specs)
- NTFS (open docs)
- ltfs
5.2 Databases
- SQLite
- PostgreSQL
- MariaDB
- Berkeley DB
Why: Data persistence is civilization-critical.
6. Development Infrastructure
6.1 Version Control
- Git (core + docs)
- Git internals documentation
- Mercurial
6.2 Build Systems
- Make
- CMake
- Meson
- Autotools
- Ninja
6.3 Package Managers
- apt
- pacman
- nix
- pip (with PEPs)
7. Security & Cryptography
7.1 Crypto Libraries
- OpenSSL
- LibreSSL
- libsodium
- GnuPG
7.2 Specifications
- AES
- RSA
- ECC
- SHA family
- Kerberos
Why: Secure communication is not optional.
8. Networking & Services
8.1 Servers
- OpenSSH
- nginx
- Apache HTTP Server
- Postfix
- Dovecot
8.2 Distributed Systems
- etcd
- Raft specification
- IPFS (protocol + implementation)
9. User Applications (Minimal but Essential)
9.1 Editors
- Vim
- Emacs
- Nano
9.2 Browsers
- Firefox (Gecko)
- Chromium
- qutebrowser
- palemoon
- ladybird
9.3 Graphics & Media
- X.org
- Phoenix
- Xlibre
- Wayland
- Mesa
- FFmpeg
- GIMP
- Inkscape
10. Scientific & Engineering Stack
- Octave
- SciPy stack
- BLAS / LAPACK
- OpenFOAM
- KiCad
- FreeCAD
Why: Engineering knowledge must be preserved, not just code.
11. Open Hardware (Extremely Important)
11.1 Architectures
- RISC-V ISA specs
- OpenPOWER
- OpenSPARC
11.2 CPUs & SoCs
- OpenRISC
- VexRiscv
- BOOM (Berkeley OoO RISC-V)
11.3 HDL & Tools
- Verilog
- VHDL
- Yosys
- nextpnr
- OpenROAD
Why: Software without hardware is theoretical.
12. Manufacturing & Fabrication
12.1 3D Printing
- RepRap documentation
- Marlin firmware
- Prusa firmware
- Cura
- Slic3r
12.2 CNC & Robotics
- GRBL
- LinuxCNC
- ROS
12.3 Electronics
- Open hardware schematics
- Adafruit / SparkFun designs
- OSHW definition
13. Documentation & Learning Material (Do NOT Skip)
- The Linux Programming Interface
- K&R C
- SICP
- Structure and Interpretation of Computer Programs
- OSDev wiki
- Wikipedia dumps (technical sections)
- Stack Overflow data dump (selected tags)
Why: Future engineers must learn, not just compile.
14. Meta: How to Store This in Git
Recommendations:
- Monorepo by category, not by project
- Mirror tags + releases
- Store PDFs + HTML docs
- Add
README.mdexplaining why each item exists - Generate dependency graphs