1.2. Scope
This section defines the boundary of the book so the project does not quietly grow from “build a usable system” into “reinvent every tool ever shipped because restraint is for other people.”
The book covers a deliberately limited target. The goal is not to produce an encyclopedic distribution, a general-purpose desktop, or a monument to package count. The goal is to bootstrap a functioning system with an LLVM-centered toolchain, install the pieces required for that system to operate, and carry the process far enough that the machine can actually boot into something useful instead of merely being philosophically complete.
The bootstrap path will center on LLVM and its immediate ecosystem: LLVM itself, Clang as the compiler front end, libc++ as the C++ standard library, and compiler-rt for runtime support. That is the spine of the build. The intent is not to sprinkle these parts into a mostly conventional GNU toolchain and pretend something interesting happened. The intent is to make them foundational and follow the consequences wherever they lead.
In other words, the system is being built around LLVM on purpose, not by accident, and certainly not because the easier route seemed insufficiently annoying.
Past the toolchain, the book will install enough software to make the system behave like a real machine rather than an elaborate proof of concept. That means the core userland, the libraries and utilities needed to compile, configure, inspect, and operate the system, and the basic layout required for boot, login, and routine maintenance. It does not mean every optional package that might someday become desirable after the first successful boot.
The endpoint is the Linux kernel. The kernel is the one explicit exception to the broader licensing preference behind the project, because refusing to use it would be an impressively committed way to stop building Linux while insisting that Linux was still the subject. So the kernel stays. It will be configured, built, and installed as part of the system, because eventually the book needs to produce more than a directory tree and a sense of moral accomplishment.
Everything outside that boundary is deferred unless it proves necessary for the system to function. The point is to reach a usable base system with a clear toolchain story, not to wander into endless expansion because there is always one more package that seems harmless right before it costs an afternoon.