Changeset bdf5881 for chapter01/how.xml


Ignore:
Timestamp:
09/14/2003 03:09:34 AM (21 years ago)
Author:
James Robertson <jwrober@…>
Branches:
10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.0, 6.1, 6.1.1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, v5_0, v5_1, v5_1_1, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
Children:
b0ac1b2
Parents:
27a00d98
Message:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chapter01/how.xml

    r27a00d98 rbdf5881  
    33<?dbhtml filename="how.html" dir="chapter01"?>
    44
    5 <para>You are going to build the LFS system by using a previously installed
    6 Linux distribution such as Debian, Mandrake, Red Hat, etc.
    7 The existing Linux system will be used as a starting point, because you
    8 will need tools like a compiler, linker, text editor, and other development
    9 tools to build the system. Ordinarily, the required tools are available by
    10 default if you selected "development" as one of your installation options
    11 when you installed your Linux distribution.</para>
     5<para>You are going to build your LFS system by using a previously installed
     6Linux distribution such as Debian, Mandrake, Red Hat, etc. The existing Linux
     7system (host) will be used as a starting point, because you will need programs
     8like a compiler, linker, text editor, and other development tools to build the
     9new system. Ordinarily, the required tools are available by default if you
     10selected <quote>development</quote> as one of your installation options when
     11you installed your Linux distribution.</para>
    1212
    13 <para>After you have downloaded the packages that make up an LFS system,
    14 you will create a new Linux native partition and filesystem. Here is where
    15 the LFS system will be compiled and installed onto.</para>
     13<para>After you have downloaded the packages that make up a LFS system, you
     14will create a new Linux native partition and filesystem. This new Linux
     15partition and filesystem is where your new LFS system will be compiled and
     16installed onto.</para>
    1617
    17 <para>The next step, Chapter 5, will discuss the installation of a number
    18 of packages that will form the basic development suite which is used to
    19 build the actual system. Some of these packages are needed to resolve
    20 circular dependencies. For example, to compile a compiler you need a
     18<para>Chapter 5 will then discuss the installation of a number of packages that
     19will form the basic development suite (or toolset) which is used to build the
     20actual system in Chapter 6. Some of these packages are needed to resolve
     21circular dependencies. For example, to compile a compiler you need a 
    2122compiler.</para>
    2223
    23 <para>The first thing to be done in Chapter 5 is build a first pass of the
    24 toolchain, which is made up of Binutils and GCC. The programs from these
    25 packages will be linked statically in order for them to be used independently
    26 of the host system. The second thing to do is build Glibc, the C library.
    27 Glibc will be built with the toolchain programs we just built in the first
     24<para>The first thing to be done in Chapter 5 is build a first pass of the 
     25toolchain, which is made up of Binutils and GCC. The programs from these 
     26packages will be linked statically in order for them to be used independently 
     27of the host system. The second thing to do is build Glibc, the C library. Glibc
     28will be compiled by the toolchain programs we just built in the first
    2829pass.</para>
    2930
    30 <para>The next thing to do is build a second pass of the toolchain. This
    31 time the toolchain will be dynamically linked against the newly built Glibc.
    32 The remaining Chapter 5 packages are all built using this second pass
    33 toolchain and dynamically linked against the new Glibc. When this is done,
    34 the LFS installation process will no longer depend on the host distribution,
    35 with the exception of the running kernel.</para>
     31<para>The third thing to do is build a second pass of the toolchain. This time
     32the toolchain will be dynamically linked against the newly built Glibc. The
     33remaining Chapter 5 packages are all built using this second pass toolchain and
     34dynamically linked against the new host independant Glibc. When this is done,
     35the LFS installation process will no longer depend on the host distribution,
     36with the exception of the running kernel. This is known as <quote>self
     37contained</quote> and <quote>self hosted</quote>. There is a discussion of the
     38differences between statically and dynamically linked programs at the beginning
     39of Chapter 5.</para>
    3640
    37 <para>In Chapter 6 the real LFS system will be built. The
    38 chroot (change root) program is used to enter a virtual environment and
    39 start a new shell whose root directory will be set to the LFS partition.
    40 This is very similar to rebooting and instructing the kernel to mount the
    41 LFS partition as the root partition. The reason that you don't actually
    42 reboot, but instead chroot, is that creating a bootable system requires
    43 additional work which isn't necessary. As well, chrooting allows you
    44 to continue using the host while LFS is being built.  While software is
    45 being installed you can simply switch to a different VC (Virtual Console)
    46 or X desktop and continue using the computer as you normally would.</para>
     41<para>You may be asking yourself <quote>that seems like a lot of work, just to
     42get away from my host distribution</quote>. Let us take a few minutes to
     43discuss this question. The work involved in building the packages in Chapter 5
     44is to ensure that as little information from your host makes it into your new
     45pristine LFS system. When you build the first two packages in Chapter 5,
     46Binutils and GCC, they will be compiled statically.  This means that the
     47version of the C library on your host distribution will be embedded inside all
     48the binary programs you just compiled. This will cause problems for you down
     49the road (they have been well documented). The host's Glibc is usually an
     50unknown quantity and can contain bugs or anything else we don't know about
     51until it is too late. A well known issue is that statically linked binaries
     52compiled on a Glibc-2.2.x based system that then contain calls to the
     53getpwuid() function crash when run on a glibc-2.3.x based system.  You are
     54about to build a Glibc-2.3.x based system.  You do not want to build something
     55that is going to crash do you?  Finally, the Glibc Autoconf tests produce
     56different results depending on whether an existing Glibc is found on the host
     57distribution. This can lead to inconsistencies and encourages hacks and
     58workarounds. With all these things in mind, you can see that the extra effort
     59to compile Binutils and GCC twice is well worth it.</para>
    4760
    48 <para>When all the software from Chapter 6 is installed, the temporary
    49 tools built in Chapter 5 will be removed. Chapters 7, 8 and 9 will finalize
    50 the installation. The bootscripts are setup in Chapter 7, the kernel and
    51 boot loader are setup in Chapter 8 and Chapter 9 has some pointers to help
    52 you after you finish with the book.  Then, finally, you reboot the system
    53 into the new LFS system.</para>
     61<para>In Chapter 6 your real LFS system will be built. The chroot (change root)
     62program is used to enter a virtual environment and start a new shell whose root
     63directory will be set to the LFS partition. This is very similar to rebooting
     64and instructing the kernel to mount the LFS partition as the root partition.
     65The reason that you don't actually reboot, but instead chroot, is that creating
     66a bootable system requires additional work which isn't necessary. As well,
     67chrooting allows you to continue using the host while LFS is being built. 
     68While software is being installed you can simply switch to a different VC
     69(Virtual Console) or X desktop and continue using the computer as you normally
     70would.</para>
    5471
    55 <para>This is the process in a nutshell. Detailed information on the steps
    56 you will take are discussed in the chapters and package descriptions as you
    57 progress through them. If something isn't completely clear now, don't
    58 worry, everything will fall into place soon.</para>
     72<para>When all the software from Chapter 6 is installed, the temporary tools
     73built in Chapter 5 will be removed. Chapters 7, 8 and 9 will finalize the
     74installation. The bootscripts are setup in Chapter 7, the kernel and boot
     75loader are setup in Chapter 8 and Chapter 9 has some pointers to help you after
     76you finish with the book.  Then, finally, you reboot your computer into your
     77new LFS system.</para>
    5978
    60 <para>Please read Chapter 2 carefully as it explains a few important things
    61 you should be aware of before you begin to work through Chapters 5 and
     79<para>This is the process in a nutshell. Detailed information on the steps you
     80will take are discussed in the chapters and package descriptions as you
     81progress through them. If something isn't completely clear now, don't worry,
     82everything will fall into place soon.</para>
     83
     84<para>Please read Chapter 2 carefully as it explains a few important things you
     85should be aware of before you begin to work through Chapters 5 and
    6286beyond.</para>
    6387
Note: See TracChangeset for help on using the changeset viewer.