Updated the How things are going to be done page to include more of the PLFS hint's text.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2804 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
James Robertson 2003-09-14 03:09:34 +00:00
parent 27a00d980f
commit bdf5881ce6
2 changed files with 75 additions and 47 deletions

View File

@ -87,6 +87,10 @@
</itemizedlist> </itemizedlist>
</para></listitem> </para></listitem>
<listitem><para>September 13th, 2003 [jwrober]: Updated the "How things are
going to be done" page to include more of the PLFS hint's
text.</para></listitem>
<listitem><para>September 13th, 2003 [jwrober]: Merged whoread and whonotread <listitem><para>September 13th, 2003 [jwrober]: Merged whoread and whonotread
into a since audience page.</para></listitem> into a since audience page.</para></listitem>

View File

@ -2,63 +2,87 @@
<title>How things are going to be done</title> <title>How things are going to be done</title>
<?dbhtml filename="how.html" dir="chapter01"?> <?dbhtml filename="how.html" dir="chapter01"?>
<para>You are going to build the LFS system by using a previously installed <para>You are going to build your LFS system by using a previously installed
Linux distribution such as Debian, Mandrake, Red Hat, etc. Linux distribution such as Debian, Mandrake, Red Hat, etc. The existing Linux
The existing Linux system will be used as a starting point, because you system (host) will be used as a starting point, because you will need programs
will need tools like a compiler, linker, text editor, and other development like a compiler, linker, text editor, and other development tools to build the
tools to build the system. Ordinarily, the required tools are available by new system. Ordinarily, the required tools are available by default if you
default if you selected "development" as one of your installation options selected <quote>development</quote> as one of your installation options when
when you installed your Linux distribution.</para> you installed your Linux distribution.</para>
<para>After you have downloaded the packages that make up an LFS system, <para>After you have downloaded the packages that make up a LFS system, you
you will create a new Linux native partition and filesystem. Here is where will create a new Linux native partition and filesystem. This new Linux
the LFS system will be compiled and installed onto.</para> partition and filesystem is where your new LFS system will be compiled and
installed onto.</para>
<para>The next step, Chapter 5, will discuss the installation of a number <para>Chapter 5 will then discuss the installation of a number of packages that
of packages that will form the basic development suite which is used to will form the basic development suite (or toolset) which is used to build the
build the actual system. Some of these packages are needed to resolve actual system in Chapter 6. Some of these packages are needed to resolve
circular dependencies. For example, to compile a compiler you need a circular dependencies. For example, to compile a compiler you need a
compiler.</para> compiler.</para>
<para>The first thing to be done in Chapter 5 is build a first pass of the <para>The first thing to be done in Chapter 5 is build a first pass of the
toolchain, which is made up of Binutils and GCC. The programs from these toolchain, which is made up of Binutils and GCC. The programs from these
packages will be linked statically in order for them to be used independently packages will be linked statically in order for them to be used independently
of the host system. The second thing to do is build Glibc, the C library. of the host system. The second thing to do is build Glibc, the C library. Glibc
Glibc will be built with the toolchain programs we just built in the first will be compiled by the toolchain programs we just built in the first
pass.</para> pass.</para>
<para>The next thing to do is build a second pass of the toolchain. This <para>The third thing to do is build a second pass of the toolchain. This time
time the toolchain will be dynamically linked against the newly built Glibc. the toolchain will be dynamically linked against the newly built Glibc. The
The remaining Chapter 5 packages are all built using this second pass remaining Chapter 5 packages are all built using this second pass toolchain and
toolchain and dynamically linked against the new Glibc. When this is done, dynamically linked against the new host independant Glibc. When this is done,
the LFS installation process will no longer depend on the host distribution, the LFS installation process will no longer depend on the host distribution,
with the exception of the running kernel.</para> with the exception of the running kernel. This is known as <quote>self
contained</quote> and <quote>self hosted</quote>. There is a discussion of the
differences between statically and dynamically linked programs at the beginning
of Chapter 5.</para>
<para>In Chapter 6 the real LFS system will be built. The <para>You may be asking yourself <quote>that seems like a lot of work, just to
chroot (change root) program is used to enter a virtual environment and get away from my host distribution</quote>. Let us take a few minutes to
start a new shell whose root directory will be set to the LFS partition. discuss this question. The work involved in building the packages in Chapter 5
This is very similar to rebooting and instructing the kernel to mount the is to ensure that as little information from your host makes it into your new
LFS partition as the root partition. The reason that you don't actually pristine LFS system. When you build the first two packages in Chapter 5,
reboot, but instead chroot, is that creating a bootable system requires Binutils and GCC, they will be compiled statically. This means that the
additional work which isn't necessary. As well, chrooting allows you version of the C library on your host distribution will be embedded inside all
to continue using the host while LFS is being built. While software is the binary programs you just compiled. This will cause problems for you down
being installed you can simply switch to a different VC (Virtual Console) the road (they have been well documented). The host's Glibc is usually an
or X desktop and continue using the computer as you normally would.</para> unknown quantity and can contain bugs or anything else we don't know about
until it is too late. A well known issue is that statically linked binaries
compiled on a Glibc-2.2.x based system that then contain calls to the
getpwuid() function crash when run on a glibc-2.3.x based system. You are
about to build a Glibc-2.3.x based system. You do not want to build something
that is going to crash do you? Finally, the Glibc Autoconf tests produce
different results depending on whether an existing Glibc is found on the host
distribution. This can lead to inconsistencies and encourages hacks and
workarounds. With all these things in mind, you can see that the extra effort
to compile Binutils and GCC twice is well worth it.</para>
<para>When all the software from Chapter 6 is installed, the temporary <para>In Chapter 6 your real LFS system will be built. The chroot (change root)
tools built in Chapter 5 will be removed. Chapters 7, 8 and 9 will finalize program is used to enter a virtual environment and start a new shell whose root
the installation. The bootscripts are setup in Chapter 7, the kernel and directory will be set to the LFS partition. This is very similar to rebooting
boot loader are setup in Chapter 8 and Chapter 9 has some pointers to help and instructing the kernel to mount the LFS partition as the root partition.
you after you finish with the book. Then, finally, you reboot the system The reason that you don't actually reboot, but instead chroot, is that creating
into the new LFS system.</para> a bootable system requires additional work which isn't necessary. As well,
chrooting allows you to continue using the host while LFS is being built.
While software is being installed you can simply switch to a different VC
(Virtual Console) or X desktop and continue using the computer as you normally
would.</para>
<para>This is the process in a nutshell. Detailed information on the steps <para>When all the software from Chapter 6 is installed, the temporary tools
you will take are discussed in the chapters and package descriptions as you built in Chapter 5 will be removed. Chapters 7, 8 and 9 will finalize the
progress through them. If something isn't completely clear now, don't installation. The bootscripts are setup in Chapter 7, the kernel and boot
worry, everything will fall into place soon.</para> loader are setup in Chapter 8 and Chapter 9 has some pointers to help you after
you finish with the book. Then, finally, you reboot your computer into your
new LFS system.</para>
<para>Please read Chapter 2 carefully as it explains a few important things <para>This is the process in a nutshell. Detailed information on the steps you
you should be aware of before you begin to work through Chapters 5 and will take are discussed in the chapters and package descriptions as you
progress through them. If something isn't completely clear now, don't worry,
everything will fall into place soon.</para>
<para>Please read Chapter 2 carefully as it explains a few important things you
should be aware of before you begin to work through Chapters 5 and
beyond.</para> beyond.</para>
</sect1> </sect1>