Forráskód Böngészése

Added a page describing the Linux standards LFS
uses to guide its procedures. Included a sub-section on why
each package is in the book.



git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9116 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

Bruce Dubbs 15 éve
szülő
commit
27a023ce78
5 módosított fájl, 538 hozzáadás és 3 törlés
  1. 13 0
      chapter01/changelog.xml
  2. 2 2
      general.ent
  3. 1 1
      prologue/architecture.xml
  4. 1 0
      prologue/preface.xml
  5. 521 0
      prologue/standards.xml

+ 13 - 0
chapter01/changelog.xml

@@ -37,6 +37,19 @@
 
 -->
 
+    <listitem>
+      <para>2009-11-23</para>
+      <itemizedlist>
+        <listitem>
+          <para>[bdubbs] Add a page describing the Linux standards LFS
+          uses to guide its procedures. Included a sub-section on why
+          each package is in the book.
+          Fixes <ulink url="&lfs-ticket-root;1673">#1673</ulink>
+          and <ulink url="&lfs-ticket-root;2196">#2196</ulink></para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
     <listitem>
       <para>2009-11-22</para>
       <itemizedlist>

+ 2 - 2
general.ent

@@ -1,5 +1,5 @@
-<!ENTITY version "SVN-20091122">
-<!ENTITY releasedate "November 22, 2009">
+<!ENTITY version "SVN-20091123">
+<!ENTITY releasedate "November 23, 2009">
 <!ENTITY copyrightdate "1999-2009"><!-- jhalfs needs a literal dash, not &ndash; -->
 <!ENTITY milestone "7.0">
 <!ENTITY generic-version "development"> <!-- Use "development", "testing", or "x.y[-pre{x}]" -->

+ 1 - 1
prologue/architecture.xml

@@ -51,7 +51,7 @@ that cannot currently be built in a "pure" 64-bit system or require specialized
 build instructions.  Generally, these packages have some embedded 32-bit
 specific assembly language instructions that fail when building on a 64-bit
 system.  Examples include the  <ulink
-url="http://www.linuxfromscratch.org/blfs/view/cvs/">Beyond Linux From Scratch
+url="http://www.linuxfromscratch.org/blfs/view/svn/">Beyond Linux From Scratch
 (BLFS)</ulink> packages Zip and some Xorg drivers. Many of these problems can
 be worked around, but may require some specialized procedures or
 patches.</para>

+ 1 - 0
prologue/preface.xml

@@ -14,6 +14,7 @@
   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="foreword.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="audience.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="architecture.xml"/>
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="standards.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="prerequisites.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="hostreqs.xml"/>
   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="typography.xml"/>

+ 521 - 0
prologue/standards.xml

@@ -0,0 +1,521 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+  <!ENTITY % general-entities SYSTEM "../general.ent">
+  %general-entities;
+]>
+
+<sect1 id="pre-standards">
+  <?dbhtml filename="standards.html"?>
+
+  <title>LFS and Standards</title>
+
+  <sect2>
+    <title/>
+
+     <para>The structure of LFS follows Linux standards as closely as 
+     possible.  The primary standards are:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para><ulink url="http://www.unix.org/single_unix_specification">The 
+        Single UNIX Specification Version 3 (POSIX)</ulink>.  Note: 
+        Free registratration is required.</para>
+      </listitem>
+      <listitem>
+        <para><ulink url="http://www.pathname.com/fhs/pub/fhs-2.3.html">Filesystem 
+        Hierarcy Standard (FHS)</ulink></para>
+
+      </listitem>
+      <listitem>
+        <para><ulink url="http://refspecs.freestandards.org/LSB_4.0.0/">Linux 
+        Standard Base (LSB) Core Specification 4.0</ulink></para>
+
+        <para>The LSB has five separate standards: Core, C++, Desktop,
+        Runtime Languages, and Printing. In addition to generic requirements
+        there are also architecture specific requirements.  LFS attempts to
+        conform to the architectures discussed in the previous section.</para>
+
+        <note><para>Many people do not agree with the requirements of LSB.  The
+        main purpose of defining it is to ensure that proprietary software will
+        be able to be installed and run properly on a compliant system.  Since LFS
+        is source based, the user has complete control over what packages are
+        desired and many choose not to install some packages that are specified
+        by the LSB.  </para></note>
+
+      </listitem>
+    </itemizedlist>
+
+    <para>Creating a complete LFS system capable of passing the LSB
+    certifications tests is possible, but not without many additional ipackages
+    that are beyond the scope of LFS.  Most of these additional packages have
+    intallation instructions in BLFS. </para> 
+
+  </sect2>
+
+  <sect2>
+    <title>Why is each package in the book?</title>
+
+    <para>As stated earlier, the goal of LFS is to build a complete and usable 
+    foundation-level system.  This includes all packages needed to replicate 
+    itself while providing a relativly minimal base from which to customize
+    a more complete system based on the choices of the user.  This does not
+    mean that LFS is the smallest system possible.  Several important packages
+    are included that are not strictly required.  The lists below document the
+    rationale for each package int he book.</para>
+
+
+    <itemizedlist>
+
+      <listitem>
+        <para>Autoconf</para>
+
+        <para>This package contains programs for producing shell scripts that
+        can automatically configure source code from a developer's
+        template. It is often needed to rebuild a package after updates
+        to the build procedures.</para>
+      </listitem>
+
+      <listitem>
+        <para>Automake</para>
+
+        <para>This package contains programs for generating Make files from
+        a template. It is often needed to rebuild a package after updates
+        to the build procedures.</para>
+      </listitem>
+
+      <listitem>
+        <para>Bash</para>
+
+        <para>This package satifies an LSB core requirement to provide
+        a Bourne Shell interface to the system.  It was chosen over
+        other shell packages bacause of its common usage and extensive
+        capabilities beyond basic shell functions. </para>
+      </listitem>
+
+      <listitem>
+        <para>Binutils</para>
+
+        <para>This package package contains a linker, an assembler, and other 
+        tools for handling object files.  It contains programs required by
+        LSB core. 
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Bison</para>
+
+        <para>This package contains the GNU version of yacc (Yet Another
+        Compiler Compiler) needed to build several other LFS  programs.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Bzip2</para>
+
+        <para>This package contains programs for compressing and decompressing 
+        files.  It is required to decompress many LFS packages.</para>
+      </listitem>
+
+      <listitem>
+        <para>Coreutils</para>
+
+        <para>This package contains a number of essential programs for viewing 
+        and manipulating files and directories.  It also contains programs 
+        required by LSB core.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>DejaGNU</para>
+
+        <para>This package contains a framework for testing other programs.
+        It is only installed in the temporary toolchain.</para>
+      </listitem>
+
+      <listitem>
+        <para>Diffutils</para>
+
+        <para>This package contains programs that show the differences 
+        between files or directories.  It contains programs required by
+        LSB core.</para>
+      </listitem>
+
+      <listitem>
+        <para>Expect</para>
+
+        <para>This package contains a program for carrying out scripted 
+        dialogues with other interactive programs.  It is commonly used
+        for testing other packages.  It is only installed in the temporary 
+        toolchain.</para>
+      </listitem>
+
+      <listitem>
+        <para>E2fsprogs</para>
+
+        <para>This package contains the utilities for handling the ext2, ext3
+        and ext4 file systems.  These are the most common and thouroughly
+        tested file systems that Linux supports.</para>
+      </listitem>
+
+      <listitem>
+        <para>File</para>
+
+        <para>This package contains a utility for determining the type of a 
+        given file or files.  It is required by LSB core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Findutils</para>
+
+        <para>This package contains programs to find files in a file system.
+        They are required by LSB core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Flex</para>
+
+        <para>This package contains a utility for generating programs that 
+        recognize patterns in text.  It is the GNU version of the lex 
+        (lexical analyzer) program.  It is required to build several 
+        LFS packages. </para>
+      </listitem>
+
+      <listitem>
+        <para>Gawk</para>
+
+        <para>This package contains programs for manipulating text files.
+        It is the GNU version of awk (Aho-Weinberg-Kernighan) that
+        is required by LSB core.</para>
+      </listitem>
+
+      <listitem>
+        <para>Gcc</para>
+
+        <para>This package is the Gnu Compiler Collection.  It contains the 
+        C and C++ compilers as well as several others not built by LFS.  It
+        also contins the standard C++ libraries required by the LSB
+        C++ standard.</para>
+      </listitem>
+
+      <listitem>
+        <para>GDBM</para>
+
+        <para>This package contains the GNU Database Manager library.  It
+        is used by one other LFS packages.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Gettext</para>
+
+        <para>This package contains utilities and libraries for 
+        internationalization and localization of numerous packages.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Glibc</para>
+
+        <para>This package contains the main C library.  Linux programs would
+        not run without it. </para>
+      </listitem>
+
+      <listitem>
+        <para>GMP</para>
+
+        <para>This package package contains math libraries and have
+        useful functions for arbitrary precision arithmetic.  It
+        is required to build Gcc. </para>
+      </listitem>
+
+      <listitem>
+        <para>Grep</para>
+
+        <para>This package contains programs for searching through files.
+        It is required by LSB core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Groff</para>
+
+        <para>This package contains programs for processing and formatting text.
+        One important function of these programs is to format man pages.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>GRUB</para>
+
+        <para>This package is the Grand Unified Boot Loader.  It is one 
+        of several boot loaders available, but is the most flexible.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Gzip</para>
+
+        <para>This package contains programs for compressing and 
+        decompressing files.  It is required by LSB core.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Iana-etc</para>
+
+        <para>This package provides data for network services and protocols.
+        It is needed to enable proper networking capabilities.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Inetutils</para>
+
+        <para>This package contains programs for basic network 
+        administration.  
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>IProute2</para>
+
+        <para>This package contains programs for basic and advanced IPv4 and
+        IPv6 networking.  It was chosen over the other common network
+        tools package (net-tools) for its IPv6 capabilities.  </para>
+      </listitem>
+
+      <listitem>
+        <para>Kbd</para>
+
+        <para>This package contains key-table files and keyboard utilities
+        for non-US keyboards. </para>
+      </listitem>
+
+      <listitem>
+        <para>Less</para>
+
+        <para>This package contains a very nice text file viewer that
+        allows scolling up or down when viewing a file.   
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Libtool</para>
+
+        <para>This package contains the GNU generic library support 
+        script. It wraps the complexity of using shared libraries in a 
+        consistent, portable interface.  It us needed by the test
+        suites in other LFS packages.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Linux Kernel</para>
+
+        <para>This package is the Operating Ststem.  It is the Linux in
+        the GNU/Linux environment.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>M4</para>
+
+        <para>This package contains a general text macro processor. It is 
+        required by LSB core.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Make</para>
+
+        <para>This package contains a program for directing the building
+        of packages.  It is required by almost every package in LFS.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Man-DB</para>
+
+        <para>This package contains programs for finding and viewing man pages.
+        It was chosen instead of the <application>man</application> package
+        due to superior internationalization capabilities.  It supplies
+        the man program required by LSB core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Man-pages</para>
+
+        <para>This package contains the actual contents of the basic
+        Linux man pages. </para>
+      </listitem>
+
+      <listitem>
+        <para>Module-Init-Tools</para>
+
+        <para>This package contains programs needed to administer Linux
+        kernel modules.  </para>
+      </listitem>
+
+      <listitem>
+        <para>MPFR</para>
+
+        <para>This package contains functions for multiple precision 
+        arithmetic.  It is required by Gcc.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Ncurses</para>
+
+        <para>This package contains libraries for terminal-independent 
+        handling of character screens.  It is often used to provide 
+        cursor control for a menuing system.  It provides libraries required
+        by LSB core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Patch</para>
+
+        <para>This package a program for modifying or creating files by 
+        applying a <emphasis>patch</emphasis> file typically created 
+        by the <application>diff</application> program.  It is needed by
+        the build procedure for several LFS packages. </para>
+      </listitem>
+
+      <listitem>
+        <para>Perl</para>
+
+        <para>This package is an interpreter for the runtime language
+        PERL.  It is required by the LSB Runtime Languages standard.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Pkg-config</para>
+
+        <para>This package contains a tool for passing the include path 
+        and/or library paths to build tools during the configure and make 
+        processes.  It is needed by many LFS packages. </para>
+      </listitem>
+
+      <listitem>
+        <para>Procps</para>
+
+        <para>This package contains programs for monitoring processes.
+        It contains programs required by LSB core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Psmisc</para>
+
+        <para>This package contains programs for displaying information 
+        about running processes.  It contains programs required by LSB 
+        core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Readline</para>
+
+        <para>This package is a set of libraries that offers command-line 
+        editing and history capabilities.  It is used by Bash. </para>
+      </listitem>
+
+      <listitem>
+        <para>Sed</para>
+
+        <para>This package allows editing of text without opening it in a 
+        text editor. It is also needed by most LFS packages' configure 
+        scripts. It is required by LSB core.</para>
+      </listitem>
+
+      <listitem>
+        <para>Shadow</para>
+
+        <para>This package contains programs for handling passwords 
+        in a secure way.  It provides programs required by LSB core.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Sysklogd</para>
+
+        <para>This package contains programs for logging system messages, 
+        such as those given by the kernel or daemon processes when unusual 
+        events occur.  
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Sysvinit</para>
+
+        <para>This package provides the <application>init</application>
+        program which it the parent of all other processes on the Linux
+        system. </para>
+      </listitem>
+
+      <listitem>
+        <para>Tar</para>
+
+        <para>This package provides archiving and extraction capabilities
+        of virtually all packages used in LFS.  It is required by
+        LSB core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Tcl</para>
+
+        <para>This package contains the Tool Command Language used
+        in many testsuites in LFS packages.  It is only installed in 
+        the temporary toolchain. </para>
+      </listitem>
+
+      <listitem>
+        <para>Texinfo</para>
+
+        <para>This package contains programs for reading, writing, and 
+        converting info pages.  It is used in the installation 
+        procedures of many LFS packages. </para>
+      </listitem>
+
+      <listitem>
+        <para>Udev</para>
+
+        <para>This package contains programs for dynamic creation of 
+        device nodes.  It is an alternative to creating thousands of
+        static devices in the /dev directory.  
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Util-linux-ng</para>
+
+        <para>This package contains miscellaneous utility programs. 
+        Among them are utilities for handling file systems, consoles, 
+        partitions, and messages.  It contains programs required by
+        LSB core. </para>
+      </listitem>
+
+      <listitem>
+        <para>Vim</para>
+
+        <para>This package an editor.  It was chosen because its compatibility
+        with the classic vi editor and its huge number of powerful
+        capabilities.  An editor is a very personal choice for
+        many users and any other editor could be substituted if desired.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>Zlib</para>
+
+        <para>This package contains compression and decompression routines 
+        used by some programs.  It is required by LSB core.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+  </sect2>
+
+</sect1>
+