Ignore:
Timestamp:
06/07/2020 08:16:00 PM (4 years ago)
Author:
Bruce Dubbs <bdubbs@…>
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, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, 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:
595ff03
Parents:
d53fefa
Message:

Initial commit of alternative cross LFS

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/cross2@11897 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chapter07/introduction.xml

    rd53fefa rfcc02767  
    66]>
    77
    8 <sect1 id="ch-config-introduction" revision="sysv">
     8<sect1 id="ch-tools-introduction">
    99  <?dbhtml filename="introduction.html"?>
    1010
    1111  <title>Introduction</title>
    1212
    13     <para>Booting a Linux system involves several tasks.  The process must
    14     mount both virtual and real file systems, initialize devices, activate swap,
    15     check file systems for integrity, mount any swap partitions or files, set
    16     the system clock, bring up networking, start any daemons required by the
    17     system, and accomplish any other custom tasks needed by the user.  This
    18     process must be organized to ensure the tasks are performed in the correct
    19     order but, at the same time, be executed as fast as possible.</para>
     13  <para>This chapter shows how to build a minimal Linux system.
     14  This system will contain just enough tools to start constructing the final
     15  LFS system in <xref linkend="chapter-building-system"/> and allow a working
     16  environment with more user convenience than a minimum environment would.</para>
    2017
    21 <!--    <para>In the packages that were installed in Chapter&nbsp;6, there were two
    22     different boot systems installed.  LFS provides the ability to easily
    23     select which system the user wants to use and to compare and contrast the
    24     two systems by actually running each system on the local computer.  The
    25     advantages and disadvantages of these systems is presented below.</para>-->
    26 
    27   <sect2 id='sysv-desc'>
    28     <title>System V</title>
    29 
    30     <para>System V is the classic boot process that has been used in Unix and
    31     Unix-like systems such as Linux since about 1983.  It consists of a small
    32     program, <command>init</command>, that sets up basic programs such as
    33     <command>login</command> (via getty) and runs a script.  This script,
    34     usually named <command>rc</command>,  controls the execution of a set of
    35     additional scripts that perform the tasks required to initialize the
    36     system.</para>
    37 
    38     <para>The <command>init</command> program is controlled by the
    39     <filename>/etc/inittab</filename> file and is organized into run levels that
    40     can be run by the user:</para>
    41 
    42 <literallayout>
    43 0 &mdash; halt
    44 1 &mdash; Single user mode
    45 2 &mdash; Multiuser, without networking
    46 3 &mdash; Full multiuser mode
    47 4 &mdash; User definable
    48 5 &mdash; Full multiuser mode with display manager
    49 6 &mdash; reboot
    50 </literallayout>
    51 
    52     <para>The usual default run level is 3 or 5.</para>
    53 
    54     <bridgehead renderas="sect3">Advantages</bridgehead>
    55 
    56     <itemizedlist>
    57       <listitem>
    58           <para>Established, well understood system.</para>
    59       </listitem>
    60 
    61       <listitem>
    62           <para>Easy to customize.</para>
    63       </listitem>
    64 
    65     </itemizedlist>
    66 
    67 
    68     <bridgehead renderas="sect3">Disadvantages</bridgehead>
    69 
    70     <itemizedlist>
    71       <listitem>
    72           <para>Slower to boot.  A medium speed base LFS system
    73           takes 8-12 seconds where the boot time is measured from the
    74           first kernel message to the login prompt.  Network
    75           connectivity is typically established about 2 seconds
    76           after the login prompt.</para>
    77       </listitem>
    78 
    79       <listitem>
    80           <para>Serial processing of boot tasks. This is related to the previous
    81           point.  A delay in any process such as a file system check, will
    82           delay the entire boot process.</para>
    83       </listitem>
    84 
    85       <listitem>
    86           <para>Does not directly support advanced features like
    87           control groups (cgroups), and per-user fair share scheduling.</para>
    88       </listitem>
    89 
    90       <listitem>
    91           <para>Adding scripts requires manual, static sequencing decisions.</para>
    92       </listitem>
    93 
    94     </itemizedlist>
    95 
    96   </sect2>
     18  <para>There are two steps in building this minimal system. The first step
     19  is to build a new and host-independent toolchain (compiler, assembler,
     20  linker, libraries, and a few useful utilities).  The second step uses this
     21  toolchain to build the other essential tools.</para>
    9722<!--
    98   <sect2 id='sysd-desc'>
    99     <title>Systemd</title>
    100 
    101     <para>Systemd is a group of interconnected programs that handles system and
    102     individual process requests.  It provides a dependency system between
    103     various entities called "units".  It automatically addresses dependencies
    104     between units and can execute several startup tasks in parallel.  It
    105     provides login, inetd, logging, time, and networking services. </para>
    106 
    107     <bridgehead renderas="sect3">Advantages</bridgehead>
    108 
    109     <itemizedlist>
    110       <listitem>
    111           <para>Used on many established distributions by default.</para>
    112       </listitem>
    113 
    114       <listitem>
    115           <para>There is extensive documentation.
    116           See <ulink url="http://www.freedesktop.org/wiki/Software/systemd/"/>.</para>
    117       </listitem>
    118 
    119       <listitem>
    120           <para>Parallel execution of boot processes. A medium speed
    121           base LFS system takes 6-10 seconds from kernel start to a
    122           login prompt.  Network connectivity is typically established
    123           about 2 seconds after the login prompt.  More complex startup
    124           procedures may show a greater speedup when compared to System V.</para>
    125       </listitem>
    126 
    127       <listitem>
    128           <para>Implements advanced features such as control groups to
    129           manage related processes.</para>
    130       </listitem>
    131 
    132       <listitem>
    133           <para>Maintains backward compatibility with System V programs
    134           and scripts.</para>
    135       </listitem>
    136     </itemizedlist>
    137 
    138     <bridgehead renderas="sect3">Disadvantages</bridgehead>
    139 
    140     <itemizedlist>
    141       <listitem>
    142           <para>There is a substantial learning curve.</para>
    143       </listitem>
    144 
    145       <listitem>
    146           <para>Some advanced features such as dbus or cgroups cannot be
    147           disabled if they are not otherwise needed.</para>
    148       </listitem>
    149 
    150       <listitem>
    151           <para>Although implemented as several executable programs
    152           the user cannot choose to implement only the portions desired.</para>
    153       </listitem>
    154 
    155       <listitem>
    156           <para>Due to the nature of using compiled programs, systemd is
    157           more difficult to debug.</para>
    158       </listitem>
    159 
    160       <listitem>
    161           <para>Logging is done in a binary format.  Extra tools must
    162           be used to process logs or additional processes must be implemented
    163           to duplicate traditional logging programs.</para>
    164       </listitem>
    165 
    166     </itemizedlist>
    167 
    168   </sect2>
    169 -->
    170 <!--
    171   <sect2 id='sysv'>
    172     <title>Selecting a Boot Method</title>
    173 
    174     <para>Selecting a boot method in LFS is relatively easy. 
    175     Both systems are installed side-by-side.  The only task needed is to
    176     ensure the files that are needed by the system have the correct names.
    177     The following scripts do that.</para>
    178 
    179 <screen><userinput remap="install">cat &gt; /usr/sbin/set-systemd &lt;&lt; "EOF"
    180 #! /bin/bash
    181 
    182 ln -svfn init-systemd   /sbin/init
    183 ln -svfn init.d-systemd /etc/init.d
    184 
    185 for tool in halt poweroff reboot runlevel shutdown telinit; do
    186   ln -sfvn  ${tool}-systemd   /sbin/${tool}
    187   ln -svfn  ${tool}-systemd.8 /usr/share/man/man8/${tool}.8
    188 done
    189 
    190 echo "Now reboot with /sbin/reboot-sysv"
    191 EOF
    192 
    193 chmod 0744 /usr/sbin/set-systemd
    194 
    195 cat &gt; /usr/sbin/set-sysv &lt;&lt; "EOF"
    196 #! /bin/bash
    197 
    198 ln -sfvn init-sysv    /sbin/init
    199 ln -svfn init.d-sysv  /etc/init.d
    200 
    201 for tool in halt poweroff reboot runlevel shutdown telinit; do
    202   ln -sfvn  ${tool}-sysv   /sbin/${tool}
    203   ln -svfn  ${tool}-sysv.8 /usr/share/man/man8/${tool}.8
    204 done
    205 
    206 echo "Now reboot with /sbin/reboot-systemd"
    207 EOF
    208 
    209 chmod 0744 /usr/sbin/set-sysv</userinput></screen>
    210 
    211   <note><para>The comment about the correct command to reboot in the
    212   above scripts is correct.  The reboot command for the current boot
    213   system must be used after the script changes the default reboot command.
    214   </para></note>
    215 
    216   <para>Now set the desired boot system.  The default is System V:</para>
    217 
    218 <screen><userinput remap="install">/usr/sbin/set-sysv</userinput></screen>
    219 
    220   <para>Changing the boot system can be done at any time by running the
    221   appropriate script above and rebooting.</para>
    222 
    223   </sect2>
     23  <para>The files compiled in this chapter will be installed under the
     24  <filename class="directory">$LFS</filename> directory to keep them
     25  separate from the files installed in the next chapter and the host
     26  production directories. Since the packages compiled here are temporary,
     27  we do not want them to pollute the soon-to-be LFS system.</para>
    22428-->
    22529</sect1>
Note: See TracChangeset for help on using the changeset viewer.