I have been fascinated by the idea of building my own Linux system for years: I was browsing through some old files of mine when I found Linux From Scratch resources I’d downloaded in February 2005! Now in 2011, I am finally taking the plunge and building my own LFS.
To my mind, making my own LFS system is a logical step in the process of learning how to program — I need to understand my tools, if for no other reason than to understand what wheels don’t need reinventing. Before jumping into things, I read the official LFS book entirely through and learned two core lessons:
- Linux is very easy to homebrew (conceptually, at least): build a preliminary toolkit, then use that to build the main toolkit, then build your own distro from the main toolkit.
- Linux was very hard to understand (conceptually, at least) until I read the LFS book: “Linux” is really not at all like the monolithic Win32 base I used for over a decade! Rather, the Linux “operating system” is a collection of simple tools, which can perform complex tasks when used together.
It took more than four months to finish it, but the LFS book was far and away some of the finest technical documentation I have ever read. The authors of the LFS book went out of their way to fully explain even tedious and potentially “obvious” things, and I have a much stronger grasp of what the most essential Linux tools are (hint: bash!) thanks to their labors.
I am also amazed by how many core tools hail from the GNU project — I wonder if anyone from GNU ever sleeps.
I hope to learn much by doing, and will be writing about my progress as I go along. I am only planning on making the LFS build at this point, but I may also progress to BLFS in order to get more experience with the X windowing system, which has baffled me utterly from day one. Happy hacking!
Bonus: My favorite quote of the book: “false [d]oes nothing, unsuccessfully”.