I can’t recommend this project enough for someone who wants to learn about linux at really fundamental level. You start by compiling a set of tools that act sort of like an intermediary from your host system to your new, custom linux distribution. Then you take the tools you created to make an independent toolchain, i.e. a set of utilities that can compile code without relying on anything in the host’s system. This independent tool chain is absolutely critical, because once you get a compiler up and running by itself, you can compile any program you want that will install to your new system without needing to reference the host’s system. When you’re all set and done, you will have your own distribution, compiled and set up by yourself alone. This allows for such great flexibility and control over your system, much unlike any other distribution could give you. To computer people, this deep knowledge of your operating system is a great tool that can expand your abilities greatly.
If you want to head down the road to making your own distribution, you can download the how-to book from linuxfromscratch.org This book is the guide that will get you up and running much faster than going through the process yourself. The authors have done a good job at explaining every step of the process, and they’ve already worked all the kinks out that you would have to overcome if you decided to start the process yourself. For instance, they’ve tracked down patches for the code you will be compiling, and determined the order to install things so that there isn’t any issues of some code needing to link to code that you hadn’t installed yet, and so on. The authors (and I) definitely recommend that you set up your system on a 1-2 GB flash drive so that the new system has a new partition right off the bat.
I really liked the project, and good luck if you decide to make your own customized linux distribution! Help is available per request from me, or there’s always helpful folks in #lfs-support on irc.linuxfromscratch.org (note this is not freenode…)