Changeset cdc04a1 for prologue


Ignore:
Timestamp:
10/18/2022 08:31:34 AM (2 years ago)
Author:
Xi Ruoyao <xry111@…>
Branches:
xry111/arm64, xry111/arm64-12.0
Children:
2dc81d4
Parents:
04ca2a7 (diff), 0f9c02a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge remote-tracking branch 'origin/trunk' into xry111/arm64

Location:
prologue
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • prologue/architecture.xml

    r04ca2a7 rcdc04a1  
    1414called AArch64) CPUs.  On the other hand, the instructions in this book may
    1515work on 32-bit ARM CPUs with some modifications. To build a system that
    16 utilizes one of these CPUs, the main prerequisite, in addition to those on
     16utilizes one of these alternative CPUs, the main prerequisite, in
     17addition to those on
    1718the next page, is an existing Linux system such as an earlier LFS
    1819installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution that
     
    2425applications twice, once for a 32-bit system and once for a 64-bit system.
    2526This is not directly supported in LFS because it would interfere with the
    26 educational objective of providing the instructions needed for a
    27 straightforward base Linux system. Some LFS/BLFS editors maintain a fork
    28 of LFS for multilib, which is accessible at <ulink
     27educational objective of providing the minimal instructions needed for a
     28base Linux system. Some LFS/BLFS editors maintain a multilib fork
     29of LFS, accessible at <ulink
    2930url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But
    3031the multilib edition is for x86_64, and multilib is an advanced topic
  • prologue/audience.xml

    r04ca2a7 rcdc04a1  
    1919how a Linux system works from the inside out. Building an LFS system helps
    2020demonstrate what makes Linux tick, and how things work together and depend on
    21 each other. One of the best things that this learning experience can provide is
     21each other. One of the best things this learning experience can provide is
    2222the ability to customize a Linux system to suit your own unique needs.</para>
    2323
    24 <para>Another key benefit of LFS is that it allows you to have more control
    25 over the system without relying on someone else's Linux implementation. With
    26 LFS, you are in the driver's seat and dictate every aspect of the
     24<para>Another key benefit of LFS is that it gives you control
     25of the system without relying on someone else's Linux implementation. With
     26LFS, you are in the driver's seat. <emphasis>You</emphasis> dictate every aspect of your
    2727system.</para>
    2828
    29 <para>LFS allows you to create very compact Linux systems. When installing
    30 regular distributions, you are often forced to install a great many
    31 programs which are probably never used or understood. These programs waste
    32 resources. You may argue that with today's hard drive and CPUs, such
     29<para>LFS allows you to create very compact Linux systems. With
     30other distributions you are often forced to install a great many
     31programs you neither use nor understand. These programs waste
     32resources. You may argue that with today's hard drives and CPUs, wasted
    3333resources are no longer a consideration. Sometimes, however, you are still
    34 constrained by size considerations if nothing else. Think about bootable
     34constrained by the system's size, if nothing else. Think about bootable
    3535CDs, USB sticks, and embedded systems. Those are areas where LFS can be
    3636beneficial.</para>
     
    3838<para>Another advantage of a custom built Linux system is security. By compiling
    3939the entire system from source code, you are empowered to audit everything
    40 and apply all the security patches desired. It is no longer necessary to
     40and apply all the security patches you want. You don't have to
    4141wait for somebody else to compile binary packages that fix a security hole.
    4242Unless you examine the patch and implement it yourself, you have no
     
    4949book.</para>
    5050
    51 <para>There are too many other good reasons to build your own LFS system to
    52 list them all here. In the end, education is by far the most powerful of
    53 reasons. As you continue in your LFS experience, you will discover the power
    54 that information and knowledge truly bring.</para>
     51<para>There are too many good reasons to build your own LFS system to
     52list them all here. In the end, education is by far the most important
     53reason. As you continue your LFS experience, you will discover the power
     54that information and knowledge can bring.</para>
    5555
    5656</sect1>
  • prologue/prerequisites.xml

    r04ca2a7 rcdc04a1  
    1414  level of existing knowledge of Unix system administration in order to resolve
    1515  problems and correctly execute the commands listed. In particular, as an
    16   absolute minimum, you should already have the ability to use the
     16  absolute minimum, you should already know how to use the
    1717  command line (shell) to copy or move files and directories, list directory
    1818  and file contents, and change the current directory. It is also expected that
    19   you have a reasonable knowledge of using and installing Linux
     19  you know how to use and install Linux
    2020  software.</para>
    2121
    2222  <para>Because the LFS book assumes <emphasis>at least</emphasis> this basic
    23   level of skill, the various LFS support forums are unlikely to be able to
     23  level of skill, the various LFS support forums are unlikely to
    2424  provide you with much assistance in these areas. You will find that your
    25   questions regarding such basic knowledge will likely go unanswered or you
    26   will simply be referred to the LFS essential pre-reading list.</para>
     25  questions regarding such basic knowledge will likely go unanswered (or you
     26  will simply be referred to the LFS essential pre-reading list).</para>
    2727
    28   <para>Before building an LFS system, we recommend reading the following:</para>
     28  <para>Before building an LFS system, we urge you to read these articles:</para>
    2929
    3030  <itemizedlist>
     
    3636      <quote>generic</quote> Unix software packages under Linux. Although it
    3737      was written some time ago, it still provides a good summary of the
    38       basic techniques needed to build and install software.</para>
     38      basic techniques used to build and install software.</para>
    3939    </listitem>
    4040
     
    4343      <ulink url="https://moi.vonos.net/linux/beginners-installing-from-source/"/></para>
    4444
    45       <para>This guide provides a good summary of basic skills and
     45      <para>This guide provides a good summary of the basic skills and
    4646      techniques needed to build software from source code.</para>
    4747    </listitem>
  • prologue/standards.xml

    r04ca2a7 rcdc04a1  
    3232        Standard Base (LSB) Version 5.0 (2015)</ulink></para>
    3333
    34         <para>The LSB has four separate standards: Core, Desktop,
    35         Runtime Languages, and Imaging. In addition to generic requirements
    36         there are also architecture specific requirements.  There are also two
    37         areas for trial use: Gtk3 and Graphics.  LFS attempts to conform to the
     34        <para>The LSB has four separate specifications: Core, Desktop,
     35        Runtime Languages, and Imaging.  Some parts of Core and Desktop
     36        specifications are architecture specific.  There are also two trial
     37        specifications: Gtk3 and Graphics.  LFS attempts to conform to the LSB
     38        specifications for the IA32 (32-bit x86) or AMD64 (x86_64)
    3839        architectures discussed in the previous section.</para>
    3940
    40         <note><para>Many people do not agree with the requirements of the LSB.
    41         The main purpose of defining it is to ensure that proprietary software
    42         will be able to be installed and run properly on a compliant system.
     41        <note><para>Many people do not agree with these requirements.
     42        The main purpose of the LSB is to ensure that proprietary software
     43        can be installed and run on a compliant system.
    4344        Since LFS is source based, the user has complete control over what
    44         packages are desired and many choose not to install some packages that
     45        packages are desired; you may choose not to install some packages that
    4546        are specified by the LSB.</para></note>
    4647
     
    4849    </itemizedlist>
    4950
    50     <para>Creating a complete LFS system capable of passing the LSB
    51     certifications tests is possible, but not without many additional packages
    52     that are beyond the scope of LFS.  These additional packages have
    53     installation instructions in BLFS. </para>
     51    <para>While it is possible to create a complete system that will pass the LSB
     52    certification tests "from scratch", this can't be done without many additional packages
     53    that are beyond the scope of the LFS book.  Installation instructions for these
     54    additional packages can be found in BLFS. </para>
    5455
    5556    <variablelist>
  • prologue/why.xml

    r04ca2a7 rcdc04a1  
    1111  <title>Rationale for Packages in the Book</title>
    1212
    13     <para>As stated earlier, the goal of LFS is to build a complete and usable
    14     foundation-level system.  This includes all packages needed to replicate
    15     itself while providing a relatively minimal base from which to customize
    16     a more complete system based on the choices of the user.  This does not
     13    <para>The goal of LFS is to build a complete and usable
     14    foundation-level system&mdash;including all the packages needed to replicate
     15    itself&mdash;and providing a relatively minimal base from which to customize
     16    a more complete system based on the user's choices.  This does not
    1717    mean that LFS is the smallest system possible.  Several important packages
    18     are included that are not strictly required.  The lists below document the
    19     rationale for each package in the book.</para>
     18    are included that are not, strictly speaking, required.  The list below documents the
     19    reasons each package in the book has been included.</para>
    2020
    2121    <itemizedlist>
     
    2525
    2626        <para>This package contains utilities to administer Access
    27         Control Lists, which are used to define more fine-grained
     27        Control Lists, which are used to define fine-grained
    2828        discretionary access rights for files and directories.
    2929        </para>
     
    3333        <para>Attr</para>
    3434
    35         <para>This package contains programs for administering
    36         extended attributes on filesystem objects.
     35        <para>This package contains programs for managing
     36        extended attributes on file system objects.
    3737        </para>
    3838      </listitem>
     
    4141        <para>Autoconf</para>
    4242
    43         <para>This package contains programs for producing shell scripts that
     43        <para>This package supplies programs for producing shell scripts that
    4444        can automatically configure source code from a developer's
    45         template. It is often needed to rebuild a package after updates
    46         to the build procedures.</para>
     45        template. It is often needed to rebuild a package after
     46        the build procedure has been updated.</para>
    4747      </listitem>
    4848
     
    5151
    5252        <para>This package contains programs for generating Make files from
    53         a template. It is often needed to rebuild a package after updates
    54         to the build procedures.</para>
     53        a template. It is often needed to rebuild a package after
     54        the build procedure has been updated.</para>
    5555      </listitem>
    5656
     
    6161        a Bourne Shell interface to the system.  It was chosen over
    6262        other shell packages because of its common usage and extensive
    63         capabilities beyond basic shell functions.</para>
     63        capabilities.</para>
    6464      </listitem>
    6565
     
    6868
    6969        <para>This package provides an arbitrary precision numeric processing language.
    70         It satisfies a requirement needed when building the Linux kernel.</para>
     70        It satisfies a requirement for building the Linux kernel.</para>
    7171      </listitem>
    7272
     
    7474        <para>Binutils</para>
    7575
    76         <para>This package contains a linker, an assembler, and other
     76        <para>This package supplies a linker, an assembler, and other
    7777        tools for handling object files. The programs in this package are
    78         needed to compile most of the packages in an LFS system and beyond.</para>
     78        needed to compile most of the packages in an LFS system.</para>
    7979      </listitem>
    8080
     
    8383
    8484        <para>This package contains the GNU version of yacc (Yet Another
    85         Compiler Compiler) needed to build several other LFS programs.</para>
     85        Compiler Compiler) needed to build several of the LFS programs.</para>
    8686      </listitem>
    8787
     
    9696        <para>Check</para>
    9797
    98         <para>This package contains a test harness for other programs.</para>
     98        <para>This package provides a test harness for other programs.</para>
    9999      </listitem>
    100100
     
    112112
    113113        <para>This package contains programs to implement a message bus system,
    114         which a simple way for applications to talk to one another.
     114        a simple way for applications to talk to one another.
    115115        </para>
    116116      </listitem>
     
    119119        <para>DejaGNU</para>
    120120
    121         <para>This package contains a framework for testing other programs.</para>
     121        <para>This package supplies a framework for testing other programs.</para>
    122122      </listitem>
    123123
     
    133133        <para>E2fsprogs</para>
    134134
    135         <para>This package contains the utilities for handling the ext2, ext3
     135        <para>This package supplies utilities for handling the ext2, ext3
    136136        and ext4 file systems.  These are the most common and thoroughly
    137137        tested file systems that Linux supports.</para>
     
    142142
    143143        <para>This package is a device manager.  It dynamically controls the ownership,
    144         permissions, names, and symbolic links of devices in the /dev directory as
    145         devices are added or removed from the system.
     144        permissions, names, and symbolic links of device nodes in the /dev directory when
     145        devices are added to or removed from the system.
    146146        </para>
    147147      </listitem>
     
    150150        <para>Expat</para>
    151151
    152         <para>This package contains a relatively small XML parsing library.  It
     152        <para>This package yields a relatively small XML parsing library.  It
    153153        is required by the XML::Parser Perl module.</para>
    154154      </listitem>
     
    172172        <para>Findutils</para>
    173173
    174         <para>This package contains programs to find files in a file system.
     174        <para>This package provides programs to find files in a file system.
    175175        It is used in many packages' build scripts.</para>
    176176      </listitem>
     
    188188        <para>Gawk</para>
    189189
    190         <para>This package contains programs for manipulating text files.
     190        <para>This package supplies programs for manipulating text files.
    191191        It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
    192192        many other packages' build scripts.</para>
     
    196196        <para>GCC</para>
    197197
    198         <para>This package is the Gnu Compiler Collection.  It contains the
     198        <para>This is the Gnu Compiler Collection.  It contains the
    199199        C and C++ compilers as well as several others not built by LFS.
    200200        </para>
     
    211211        <para>Gettext</para>
    212212
    213         <para>This package contains utilities and libraries for
    214         internationalization and localization of numerous packages.</para>
     213        <para>This package provides utilities and libraries for
     214        the internationalization and localization of many packages.</para>
    215215      </listitem>
    216216
     
    225225        <para>GMP</para>
    226226
    227         <para>This package contains math libraries that provide useful functions
    228         for arbitrary precision arithmetic.  It is required to build GCC.</para>
     227        <para>This package supplies math libraries that provide useful functions
     228        for arbitrary precision arithmetic.  It is needed to build GCC.</para>
    229229      </listitem>
    230230
     
    232232        <para>Gperf</para>
    233233
    234         <para>This package contains a program that generates a perfect hash
    235         function from a key set. It is required for Eudev.</para>
     234        <para>This package produces a program that generates a perfect hash
     235        function from a set of keys. It is required by
     236        <phrase revision='sysv'>Eudev</phrase>
     237        <phrase revision='systemd'>Systemd</phrase>.</para>
    236238      </listitem>
    237239
     
    246248        <para>Groff</para>
    247249
    248         <para>This package contains programs for processing and formatting text.
     250        <para>This package contributes programs for processing and formatting text.
    249251        One important function of these programs is to format man pages.</para>
    250252      </listitem>
     
    253255        <para>GRUB</para>
    254256
    255         <para>This package is the Grand Unified Boot Loader.  It is one
    256         of several boot loaders available, but is the most flexible.
     257        <para>This is the Grand Unified Boot Loader.  It is
     258        the most flexible of several boot loaders available.
    257259        </para>
    258260      </listitem>
     
    262264
    263265        <para>This package contains programs for compressing and
    264         decompressing files. It is needed to decompress many packages in LFS
    265         and beyond.</para>
     266        decompressing files. It is needed to decompress many packages
     267        in LFS.</para>
    266268      </listitem>
    267269
     
    276278        <para>Inetutils</para>
    277279
    278         <para>This package contains programs for basic network
     280        <para>This package supplies programs for basic network
    279281        administration.</para>
    280282      </listitem>
     
    283285        <para>Intltool</para>
    284286
    285         <para>This package contains tools for extracting translatable
     287        <para>This package contributes tools for extracting translatable
    286288        strings from source files.</para>
    287289      </listitem>
     
    305307        <para>Kbd</para>
    306308
    307         <para>This package contains key-table files, keyboard utilities
     309        <para>This package produces key-table files, keyboard utilities
    308310        for non-US keyboards, and a number of console fonts.</para>
    309311      </listitem>
     
    312314        <para>Kmod</para>
    313315
    314         <para>This package contains programs needed to administer Linux
     316        <para>This package supplies programs needed to administer Linux
    315317        kernel modules.</para>
    316318      </listitem>
     
    320322
    321323        <para>This package contains a very nice text file viewer that
    322         allows scrolling up or down when viewing a file. It is also used by
    323         Man-DB for viewing manpages.</para>
     324        allows scrolling up or down when viewing a file.
     325        Many packages use it for paging the output.</para>
    324326      </listitem>
    325327
     
    358360        <para>Libpipeline</para>
    359361
    360         <para>The Libpipeline package contains a library for manipulating
     362        <para>The Libpipeline package supplies a library for manipulating
    361363        pipelines of subprocesses in a flexible and convenient way. It is
    362364        required by the Man-DB package.</para>
     
    367369
    368370        <para>This package contains the GNU generic library support
    369         script. It wraps the complexity of using shared libraries in a
     371        script. It wraps the complexity of using shared libraries into a
    370372        consistent, portable interface.  It is needed by the test
    371373        suites in other LFS packages.</para>
     
    382384        <para>M4</para>
    383385
    384         <para>This package contains a general text macro processor useful
     386        <para>This package provides a general text macro processor useful
    385387        as a build tool for other programs.</para>
    386388      </listitem>
     
    405407        <para>This package contains programs for finding and viewing man pages.
    406408        It was chosen instead of the <application>man</application> package
    407         due to superior internationalization capabilities.  It supplies
     409        because of its superior internationalization capabilities.  It supplies
    408410        the man program.</para>
    409411      </listitem>
     
    412414        <para>Man-pages</para>
    413415
    414         <para>This package contains the actual contents of the basic
     416        <para>This package provides the actual contents of the basic
    415417        Linux man pages.</para>
    416418      </listitem>
     
    420422
    421423        <para>This package provides a software tool for automating the building
    422         of software. The main goal for Meson is to minimize the amount of time
    423         that software developers need to spend configuring their build
     424        of software. The main goal of Meson is to minimize the amount of time
     425        that software developers need to spend configuring a build
    424426        system.  It's required to build Systemd, as well as many BLFS
    425427        packages.</para>
     
    430432        <para>MPC</para>
    431433
    432         <para>This package contains functions for the arithmetic of complex
     434        <para>This package supplies arithmetic functions for complex
    433435        numbers. It is required by GCC.</para>
    434436      </listitem>
     
    444446        <para>Ninja</para>
    445447
    446         <para>This package contains a small build system with a focus on speed.
     448        <para>This package furnishes a small build system with a focus on speed.
    447449        It is designed to have its input files generated by a higher-level build
    448450        system, and to run builds as fast as possible.
     
    457459        handling of character screens.  It is often used to provide
    458460        cursor control for a menuing system. It is needed by a number of
    459         packages in LFS.</para>
     461        the packages in LFS.</para>
    460462      </listitem>
    461463
     
    464466
    465467        <para>This package provides management tools and libraries relating to
    466         cryptography. These are useful for providing cryptographic functions to
     468        cryptography. These supply cryptographic functions to
    467469        other packages, including the Linux kernel.</para>
    468470      </listitem>
     
    503505        <para>Psmisc</para>
    504506
    505         <para>This package contains programs for displaying information
     507        <para>This package produces programs for displaying information
    506508        about running processes. These programs are useful for system
    507509        administration.</para>
     
    512514
    513515        <para>This package provides an interpreted language that has a design
    514         philosophy that emphasizes code readability.</para>
     516        philosophy emphasizing code readability.</para>
    515517
    516518      </listitem>
     
    519521        <para>Readline</para>
    520522
    521         <para>This package is a set of libraries that offers command-line
     523        <para>This package is a set of libraries that offer command-line
    522524        editing and history capabilities.  It is used by Bash.</para>
    523525      </listitem>
     
    527529
    528530        <para>This package allows editing of text without opening it in a
    529         text editor. It is also needed by most LFS packages' configure
     531        text editor. It is also needed by many LFS packages' configure
    530532        scripts.</para>
    531533      </listitem>
     
    535537
    536538        <para>This package contains programs for handling passwords
    537         in a secure way.</para>
     539        securely.</para>
    538540      </listitem>
    539541
     
    541543        <para>Sysklogd</para>
    542544
    543         <para>This package contains programs for logging system messages,
    544         such as those given by the kernel or daemon processes when unusual
     545        <para>This package supplies programs for logging system messages,
     546        such as those emitted by the kernel or daemon processes when unusual
    545547        events occur.</para>
    546548      </listitem>
     
    551553        <para>This package provides an <application>init</application> program
    552554        and several additional boot and system control capabilities as an
    553         alternative to Sysvinit.  It is used by many commercial distributions.
     555        alternative to Sysvinit.  It is used by many Linux distributions.
    554556        </para>
    555557      </listitem>
     
    559561
    560562        <para>This package provides the <application>init</application>
    561         program, which is the parent of all other processes on the Linux
     563        program, the parent of all the other processes on a running Linux
    562564        system. </para>
    563565      </listitem>
     
    567569
    568570        <para>This package provides archiving and extraction capabilities
    569         of virtually all packages used in LFS.</para>
     571        of virtually all the packages used in LFS.</para>
    570572      </listitem>
    571573
     
    574576
    575577        <para>This package contains the Tool Command Language used
    576         in many test suites in LFS packages.</para>
     578        in many test suites.</para>
    577579      </listitem>
    578580
     
    580582        <para>Texinfo</para>
    581583
    582         <para>This package contains programs for reading, writing, and
     584        <para>This package supplies programs for reading, writing, and
    583585        converting info pages.  It is used in the installation
    584586        procedures of many LFS packages.</para>
     
    594596
    595597      <listitem>
    596         <para>Wheel</para>
    597 
    598         <para>This package contains a Python module that is the
    599         reference implementation of the Python wheel packaging standard.
    600         </para>
    601       </listitem>
    602 
    603       <listitem>
    604598        <para>Vim</para>
    605599
    606         <para>This package contains an editor. It was chosen because of its
     600        <para>This package provides an editor. It was chosen because of its
    607601        compatibility with the classic vi editor and its huge number of powerful
    608602        capabilities.  An editor is a very personal choice for
    609         many users and any other editor could be substituted if desired.</para>
     603        many users. Any other editor can be substituted, if you wish.</para>
     604      </listitem>
     605     
     606      <listitem>
     607        <para>Wheel</para>
     608
     609        <para>This package supplies a Python module that is the
     610        reference implementation of the Python wheel packaging standard.
     611        </para>
    610612      </listitem>
    611613
     
    634636        <para>Zstd</para>
    635637
    636         <para>This package contains compression and decompression routines
     638        <para>This package supplies compression and decompression routines
    637639        used by some programs. It provides high compression ratios and a very
    638640        wide range of compression / speed trade-offs.</para>
Note: See TracChangeset for help on using the changeset viewer.