how.xml 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <sect1 id="ch-scatter-how">
  2. <title>How things are going to be done</title>
  3. <?dbhtml filename="how.html" dir="chapter01"?>
  4. <para>You are going to build your LFS system by using a previously installed
  5. Linux distribution (such as Debian, Mandrake, Red Hat, or SuSE). This existing
  6. Linux system (the host) will be used as a starting point, because you will need
  7. programs like a compiler, linker and shell to build the new system. Normally
  8. all the required tools are available if you selected <quote>development</quote>
  9. as one of the options when you installed your distribution.</para>
  10. <para>In <xref linkend="chapter-making-space"/> you will first create a new
  11. partition and file system, the place where your new LFS system will be compiled
  12. and installed. Then in <xref linkend="chapter-getting-materials"/> you download
  13. all the packages and patches needed to build an LFS system, and store them on
  14. the new file system. In <xref linkend="chapter-preparation"/> you set up a good
  15. environment to work in.</para>
  16. <para><xref linkend="chapter-temporary-tools"/> then discusses the installation
  17. of a number of packages that form the basic development suite used to build the
  18. actual system in <xref linkend="chapter-building-system"/>.</para>
  19. <para>The first thing to be done in <xref linkend="chapter-temporary-tools"/>
  20. is build a first pass of the <emphasis>toolchain</emphasis>, consisting of
  21. Binutils and GCC. The programs from these packages will be linked statically in
  22. order for them to be usable independently of the host system (thus making it
  23. in theory possible to skip the second passes). The second thing to do is build
  24. Glibc, the C library. Glibc will be compiled by the just-built toolchain
  25. programs. The third thing to do is build a second pass of the toolchain, this
  26. time linking it dynamically against the newly built Glibc. The remaining <xref
  27. linkend="chapter-temporary-tools"/> packages are all built using this second
  28. pass toolchain and are dynamically linked against the new host-independent
  29. Glibc. When this is done, the LFS installation process will no longer depend on
  30. the host distribution, with the exception of the running kernel.</para>
  31. <para>You may be thinking that <quote>this seems like a lot of work, just to
  32. get away from my host distribution</quote>. Well, a full technical explanation
  33. is provided at the start of <xref linkend="chapter-temporary-tools"/>,
  34. including some notes on the differences between statically and dynamically
  35. linked programs.</para>
  36. <para>In <xref linkend="chapter-building-system"/> your real LFS system will be
  37. built. The <command>chroot</command> (change root) program is used to enter a
  38. virtual environment and start a new shell whose root directory will be set to
  39. the LFS partition. This is very similar to rebooting and instructing the kernel
  40. to mount the LFS partition as the root partition. The reason that you don't
  41. actually reboot, but instead chroot, is that creating a bootable system
  42. requires additional work which isn't necessary just yet. But the major
  43. advantage is that chrooting allows you to continue using the host while LFS is
  44. being built. While waiting for package compilation to complete, you can simply
  45. switch to a different VC (Virtual Console) or X desktop and continue using the
  46. computer as you normally would.</para>
  47. <para>To finish the installation, the bootscripts are set up in
  48. <xref linkend="chapter-bootscripts"/>, the kernel and bootloader are set up in
  49. <xref linkend="chapter-mixture"/>, and <xref linkend="chapter-finalizing"/>
  50. contains some pointers to help you after you finish the book. Then, finally,
  51. you're ready to reboot your computer into your new LFS system.</para>
  52. <para>This is the process in a nutshell. Detailed information on all the steps
  53. taken is given in the chapters and sections as you progress through them. If
  54. something isn't completely clear now, don't worry, everything will fall into
  55. place soon.</para>
  56. </sect1>