‹ Notes

Bootstrapping in computer systems

Bootstrapping is something interesting that happens in computers.

Compilers.

Bootstrapping in compilers refers to the process of writing a compiler for a programming language in the same language it is intended to compile. Initially, a minimal version of the compiler is written in another language (like assembly or C), just enough to support writing more of itself. Once this minimal compiler can compile basic constructs of its own language, developers can progressively rewrite and improve the compiler in its own language, recompiling itself at each stage—this is called self-hosting.

Distributed systems design.

In distributed systems, you can look at Google’s File System for one example.

GFS v1 was written from scratch. Atop this, Google Bigtable (a scalable distributed map) was achieved built atop GFS. GFS v1 has a single master, which is a constraint for filesystem metadata operations. GFS v2 scales this using many masters, who are all workers which store their state in a Bigtable cluster. In essence, GFS v2 is boostrapped from v1 - its metadata services run on Bigtable which run on GFS v1.