Changeset fcc02767 for chapter07/introduction.xml
- Timestamp:
- 06/07/2020 08:16:00 PM (4 years ago)
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter07/introduction.xml
rd53fefa rfcc02767 6 6 ]> 7 7 8 <sect1 id="ch- config-introduction" revision="sysv">8 <sect1 id="ch-tools-introduction"> 9 9 <?dbhtml filename="introduction.html"?> 10 10 11 11 <title>Introduction</title> 12 12 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> 20 17 21 <!-- <para>In the packages that were installed in Chapter 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 — halt 44 1 — Single user mode 45 2 — Multiuser, without networking 46 3 — Full multiuser mode 47 4 — User definable 48 5 — Full multiuser mode with display manager 49 6 — 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> 97 22 <!-- 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 > /usr/sbin/set-systemd << "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 > /usr/sbin/set-sysv << "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> 224 28 --> 225 29 </sect1>
Note:
See TracChangeset
for help on using the changeset viewer.