Linux From Scratch (LFS) is a way to install a working Linux system by building all components of it manually. This is, by design, much more labour-intensive than installing a pre-built distribution (see Linux distribution). The idea is that installing the individual packages one-by-one will lead to an understanding of the internals of a working Linux system. In addition, of course, compiling all of the software specifically for the system on which it will run tends to result in smaller and faster programs. Finally, it is easier to customize the installed packages when each in installed manually - "Your distro your rules".
To build LFS the builder need a clean partition and a working Linux system. First a toolchain must be compiled consisting of the tools used to compile LFS like gcc, glibc and Perl. Then the packages that will make up the finished system can be compiled against that toolchain.
Linux From Scratch is also the name of a book written by Gerard Beekmans and others. In that book the reader is given instructions on how to build a Linux system from scratch. The book is available freely from the Linux From Scratch website and is currently in version 5.0. Gerard Beekmans has also written Beyond Linux From Scratch which presents instructions on how to further develop the raw Linux system that was created in LFS.