In this chapter we will install all the software that belongs to a basic Linux system. After you're done with this chapter you have a fully working Linux system. The remaining chapters deal with setting up networking, creating the boot scripts and adding an entry to lilo.conf so that you can boot your LFS system.
This chapter is devided in two chunks. The first part installs a few necessary programs on the LFS system. These programs are needed to install the rest of the programs that belong to a basic system. When the first part is done, we will enter a chroot'ed environment. This means that we start a shell with $LFS as the root directory (instead of the usual / directory as the root directory). This has the same effect as rebooting the computer into the LFS system, but this way we don't have to reboot. If something goes wrong, you don't need to reboot back in the normal Linux system to fix whatever you need to fix. You just open a new shell on a virtual console, or start a new xterm and you can do what you need to do.
The software in the first part will be linked statically. These programs will be re-installed in the second part and linked dynamically. The reason for the static version first is that there is a chance that our normal Linux system and your LFS system aren't using the same C Library versions. If the programs in the first part are linked against an older C library version, those program might not work well on the LFS system.
The key to learn what makes Linux tick is to know exactly what packages are used for and why you or the system needs them. In depth descriptions of the package are provided in Appendix A.