source: introduction/welcome/conventions.xml

trunk
Last change on this file was 4a96b451, checked in by Xi Ruoyao <xry111@…>, 7 weeks ago

conventions: Port a note about "Il1" or "O0" from LFS

  • Property mode set to 100644
File size: 11.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="conventions">
9 <?dbhtml filename="conventions.html"?>
10
11
12 <title>Conventions Used in this Book</title>
13
14 <sect2>
15 <title>Typographical Conventions</title>
16 <para>To make things easy to follow, a number of conventions are used
17 throughout the book. Here are some examples:</para>
18
19<screen><userinput>./configure --prefix=/usr</userinput></screen>
20
21 <blockquote>
22 <para>This form of text should be typed exactly as shown unless
23 otherwise noted in the surrounding text. It is also used to identify
24 references to specific commands.</para>
25 </blockquote>
26
27<screen><computeroutput>install-info: unknown option
28`--dir-file=/mnt/lfs/usr/info/dir'</computeroutput></screen>
29
30 <blockquote>
31 <para>This form of text (fixed width font) shows screen
32 output, probably the result of issuing a command. It is also used to
33 show filenames such as <filename>/boot/grub/grub.conf</filename></para>
34 </blockquote>
35
36 <note>
37 <para>Please configure your browser to display fixed-width text with
38 a good monospaced font, with which you can distinguish the glyphs of
39 <literal>Il1</literal> or <literal>O0</literal> clearly.</para>
40 </note>
41
42 <para><emphasis>Emphasis</emphasis></para>
43
44 <blockquote>
45 <para>This form of text is used for several purposes,
46 but mainly to emphasize important points, or to give examples of
47 what to type.</para>
48 </blockquote>
49
50 <para><ulink url="https://www.&lfs-domainname;/"/></para>
51
52 <blockquote>
53 <para>This form of text is used for hypertext links external to
54 the book, such as HowTos, download locations, websites, etc.</para>
55 </blockquote>
56
57 <para><xref linkend="seamonkey"/></para>
58
59 <blockquote>
60 <para>This form of text is used for links internal to
61 the book, such as another section describing a different package.</para>
62 </blockquote>
63
64<screen><userinput>cat &gt; $LFS/etc/group &lt;&lt; "EOF"
65<literal>root:x:0:
66bin:x:1:
67......</literal>
68EOF</userinput></screen>
69
70 <blockquote>
71 <para>This style is mainly used when creating configuration
72 files. The first command (in bold) tells the system to create
73 the file <filename>$LFS/etc/group</filename> from whatever is typed on the
74 following lines, until the sequence EOF is encountered.
75 Therefore, this whole section is usually typed exactly as shown.
76 Remember, copy and paste is your friend!</para>
77 </blockquote>
78
79 <para><replaceable>&lt;REPLACED TEXT&gt;</replaceable></para>
80
81 <blockquote>
82 <para>This form of text is used to encapsulate text that should be
83 modified, and is not to be typed as shown, or copied and pasted.
84 The angle brackets are not part of the literal text; they are part of the
85 substitution.</para>
86 </blockquote>
87
88 <para><systemitem class='username'>root</systemitem></para>
89
90 <blockquote>
91 <para>This form of text is used to show a specific system user or group
92 reference in the instructions.</para>
93 </blockquote>
94
95 <para>&nbsp;</para> <!-- add extra white space to improve readability -->
96 </sect2>
97
98 <sect2>
99 <title>Conventions Used for Package Dependencies</title>
100
101 <para>When new packages are created, the software's authors depend on prior work. In
102 order to build a package in BLFS, these dependencies must be built before
103 the desired package can be compiled. For each package, prerequisites are listed
104 in one or more separate sections: Required, Recommended, and Optional.</para>
105
106 <bridgehead renderas="sect3">Required Dependencies</bridgehead>
107
108 <para>These dependencies are the bare minimum needed to
109 build the package. Packages in LFS, and the required
110 dependencies of these required packages, are omitted from this list.
111 Always remember to check for nested dependencies. If a dependency is
112 said to be <quote>runtime</quote>, then it is not needed for building
113 the package, but only to use it after installation.</para>
114
115 <bridgehead renderas="sect3">Recommended Dependencies</bridgehead>
116
117 <para>These are dependencies the BLFS editors have determined
118 are important to give the package reasonable capabilities. If a
119 recommended dependency is not said to be <quote>runtime</quote>, package
120 installation instructions assume it is installed. If it
121 is not installed, the instructions may require modification, to
122 accommodate the missing package. A recommended <quote>runtime</quote>
123 dependency does not need to be installed before building the package, but
124 must be built afterwards for running the package with reasonable
125 capabilities.</para>
126
127 <bridgehead renderas="sect3">Optional Dependencies</bridgehead>
128
129 <para>These are dependencies the package <emphasis>may</emphasis> use. Integration
130 of optional dependencies may be automatic by the package, or
131 additional steps not presented by BLFS may be necessary. Optional dependencies are
132 sometimes listed without explicit BLFS instructions. In this case you must
133 determine how to perform the installation yourself.</para>
134
135 <para>&nbsp;</para> <!-- add extra white space to improve readability -->
136 </sect2>
137
138 <sect2>
139 <title>Conventions Used for Kernel Configuration Options</title>
140
141 <para>Some packages require specific kernel configuration options.
142 The general layout for these looks like this:</para>
143
144 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
145 href="conventions-kernel.xml"/>
146
147 <para>[...] on the right gives the symbolic name of the option, so you
148 can easily check whether it is set in your <filename>.config</filename>
149 file. Note that the <filename>.config</filename> file contains a
150 <literal>CONFIG_</literal> prefix before all symbolic names. The
151 meaning of the various entries is:
152
153 <blockquote>
154 <informaltable frame='none'><tgroup cols="2">
155 <colspec align="left"/><colspec align="left"/><tbody>
156 <row>
157 <entry><emphasis role="bold">Master section</emphasis></entry>
158 <entry>top level menu item</entry>
159 </row>
160 <row>
161 <entry><emphasis role="bold">Subsection</emphasis></entry>
162 <entry>submenu item</entry>
163 </row>
164 <row>
165 <entry>
166 <emphasis role="bold">Required parameter</emphasis></entry>
167 <entry>
168 the option can either be built-in, or not selected: it must be
169 selected
170 </entry>
171 </row>
172 <row>
173 <entry>
174 <emphasis role="bold">Required parameter (not as
175 module)</emphasis>
176 </entry>
177 <entry>
178 the option can be built-in, a module, or not selected (tri-state):
179 it must be selected as built-in
180 </entry>
181 </row>
182 <row>
183 <entry>
184 <emphasis role="bold">Required parameter (could be
185 a module)</emphasis>
186 </entry>
187 <entry>
188 the option can be built-in, a module, or not selected:
189 it must be selected, either as built-in or as a module
190 </entry>
191 </row>
192 <row>
193 <entry>
194 <emphasis role="bold">Required parameter (as
195 a module)</emphasis>
196 </entry>
197 <entry>
198 the option can be built-in, a module, or not selected:
199 it must be selected as a module; selecting it as built-in
200 may cause unwanted effects
201 </entry>
202 </row>
203 <row>
204 <entry>
205 <emphasis role="bold">Optional parameter</emphasis>
206 </entry>
207 <entry>
208 the option can be built-in, a module, or not
209 selected: it may be selected as a module or built-in if you
210 need it for driving the hardware or optional kernel features
211 </entry>
212 </row>
213 <row>
214 <entry>
215 <emphasis role="bold">Optional parameter (as a module
216 if enabled)</emphasis>
217 </entry>
218 <entry>
219 the option can be built-in, a module, or not
220 selected: it may be selected as a module if you need it
221 for driving the hardware or optional kernel features, but
222 selecting it as built-in may cause unwanted effects
223 </entry>
224 </row>
225 <row>
226 <entry>
227 <emphasis role="bold">Incompatible parameter</emphasis>
228 </entry>
229 <entry>
230 the option can either be built-in or not selected: it must
231 <emphasis>not</emphasis> be selected
232 </entry>
233 </row>
234 <row>
235 <entry>
236 <emphasis role="bold">Incompatible parameter (even as module)</emphasis>
237 </entry>
238 <entry>
239 the option can be built-in, a module, or not selected:
240 it must <emphasis>not</emphasis> be selected
241 </entry>
242 </row>
243 </tbody></tgroup></informaltable>
244 </blockquote>
245 </para>
246
247 <para>Note that, depending on other selections, the angle brackets
248 (&lt;&gt;) in the configuration menu may appear as braces ({}) if the option cannot be unselected,
249 or even as dashes (-*- or -M-), when the choice is imposed.
250 The help text describing the option specifies the other selections on which this
251 option relies, and how those other selections are set.</para>
252
253 <para>
254 The letter in <emphasis role='blue'>blue</emphasis> is the hotkey
255 for this option. If you are running
256 <command>make menuconfig</command>, you can press a key to quickly
257 traverse all the options with this key as the hotkey on the screen.
258 </para>
259
260 <para>&nbsp;</para> <!-- add extra white space to improve readability -->
261 </sect2>
262
263 <sect2>
264 <title>SBU values in BLFS</title>
265
266 <para>As in LFS, each package in BLFS has a build time listed in Standard
267 Build Units (SBUs). These times are relative to the time it took to build
268 binutils in LFS, and are intended to provide some insight into how long it
269 will take to build a package. Most times listed are for a single processor
270 or core to build the package. In some cases, large, long running builds
271 tested on multi-core systems have SBU times listed with comments such
272 as '(parallelism=4)'. These values indicate testing was done using
273 multiple cores. Note that while this speeds up the build on systems with
274 the appropriate hardware, the speedup is not linear and to some extent
275 depends on the individual package and the specific hardware used. </para>
276
277 <para>For packages which use ninja (i.e., anything using meson) or rust, by
278 default all cores are used; similar comments will be seen on such packages
279 even when the build time is minimal.</para>
280
281 <para>Where even a parallel build takes more than 15 SBU, on certain
282 machines the time may be considerably greater even when the build does not
283 use swap. In particular, different micro-architectures will build some
284 files at different relative speeds, and this can introduce delays when
285 certain make targets wait for another file to be created. Where a large
286 build uses a lot of C++ files, processors with Simultaneous Multi Threading
287 will share the Floating Point Unit and can take 45% longer than when using
288 four 'prime' cores (measured on an intel i7 using taskset and keeping the
289 other cores idle).</para>
290
291 <para>Some packages do not support parallel builds; for these, the
292 make command must specify -j1. Packages that are known to impose such limits are
293 so marked in the text.</para>
294
295 </sect2>
296
297</sect1>
Note: See TracBrowser for help on using the repository browser.