* Merged newxml into HEAD
[linux_from_scratch.git] / BOOK / chapter01 / how.xml
blob1181abb3e618dbc605dceb78bd3486ce71162a9e
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
3   <!ENTITY % general-entities SYSTEM "../general.ent">
4   %general-entities;
5 ]>
6 <sect1 id="ch-scatter-how">
7 <title>How things are going to be done</title>
8 <?dbhtml filename="how.html"?>
10 <para>You are going to build your LFS system by using a previously installed
11 Linux distribution (such as Debian, Mandrake, Red Hat, or SuSE). This existing
12 Linux system (the host) will be used as a starting point, because you will need
13 programs like a compiler, linker and shell to build the new system. Normally
14 all the required tools are available if you selected <quote>development</quote>
15 as one of the options when you installed your distribution.</para>
17 <para>In <xref linkend="chapter-partitioning"/> you will first create a new Linux native
18 partition and file system, the place where your new LFS system will be compiled
19 and installed. Then in <xref linkend="chapter-getting-materials"/> you download all the
20 packages and patches needed to build an LFS system, and store them on the new
21 file system. In <xref linkend="chapter-final-preps"/> you set up a good
22 environment to work in.</para>
24 <para><xref linkend="chapter-temporary-tools"/> then discusses the installation of a number
25 of packages that will form the basic development suite (or <emphasis>toolchain</emphasis>) which is
26 used to build the actual system in <xref linkend="chapter-building-system"/>. Some of these
27 packages are needed to resolve circular dependencies -- for example, to compile
28 a compiler you need a compiler.</para>
30 <para>The first thing to be done in <xref linkend="chapter-temporary-tools"/> is build a
31 first pass of the toolchain, made up of Binutils and GCC. The programs from
32 these packages will be linked statically in order for them to be usable
33 independently of the host system. The second thing to do is build Glibc, the
34 C library. Glibc will be compiled by the toolchain programs just built in
35 the first pass. The third thing to do is build a second pass of the toolchain.
36 This time the toolchain will be dynamically linked against the newly built
37 Glibc. The remaining <xref linkend="chapter-temporary-tools"/> packages are all built using
38 this second pass toolchain and dynamically linked against the new
39 host-independent Glibc. When this is done, the LFS installation process will no
40 longer depend on the host distribution, with the exception of the running
41 kernel.</para>
43 <para>You may be thinking that <quote>this seems like a lot of work, just to
44 get away from my host distribution</quote>. Well, a full technical explanation
45 is provided at the start of <xref linkend="chapter-temporary-tools"/>, including some notes
46 on the differences between statically and dynamically linked programs.</para>
48 <para>In <xref linkend="chapter-building-system"/> your real LFS system will be built. The
49 chroot (change root) program is used to enter a virtual environment and start
50 a new shell whose root directory will be set to the LFS partition. This is very
51 similar to rebooting and instructing the kernel to mount the LFS partition as
52 the root partition. The reason that you don't actually reboot, but instead
53 chroot, is that creating a bootable system requires additional work which isn't
54 necessary just yet. But the major advantage is that <quote>chrooting</quote> allows you to
55 continue using the host while LFS is being built. While waiting for package
56 compilation to complete, you can simply switch to a different VC (Virtual
57 Console) or X desktop and continue using the computer as you normally
58 would.</para>
60 <para>To finish the installation, the bootscripts are set up in
61 <xref linkend="chapter-bootscripts"/>, the kernel and bootloader are set up in
62 <xref linkend="chapter-bootable"/>, and <xref linkend="chapter-finalizing"/> contains some
63 pointers to help you after you finish the book. Then, finally, you're ready to
64 reboot your computer into your new LFS system.</para>
66 <para>This is the process in a nutshell. Detailed information on the steps you 
67 will take are discussed in the chapters and package descriptions as you 
68 progress through them. If something isn't completely clear now, don't worry, 
69 everything will fall into place soon.</para>
71 <para>Please read <xref linkend="chapter-final-preps"/> carefully as it explains
72  a few important things you should be aware of before you begin to work through
73 <xref linkend="chapter-temporary-tools"/> and beyond.</para>
75 </sect1>