aboutsummaryrefslogtreecommitdiffstats
path: root/prologue/architecture.xml
blob: 3527d59564aee1f3e1eed27b801881f246fb9a47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?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-architecture">
  <?dbhtml filename="architecture.html"?>

  <title>LFS Target Architectures</title>

<para>The primary target architecture of LFS is the 32-bit Intel CPU. If you
have not built an LFS system before, you should probably start with that
target. The 32-bit architecture is the most widely supported Linux system and
is most compatible with both open source and proprietary software.</para>

<para>On the other hand, the instructions in this book are known to work, with
some modifications, with both Power PC and 64-bit AMD/Intel CPUs. To build a
system that utilizes one of these CPUs, the main prerequisite, in addition to
those on the next few pages, is an existing Linux system such as an earlier LFS
installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution that targets
the architecture that you have. Also note that a 32-bit distribution can be
installed and used as a host system on a 64-bit AMD/Intel computer.</para>

<para>Some other facts about 64-bit systems need to be added here. When
compared to a 32-bit system, the sizes of executable programs are slightly
larger and the execution speeds are only slightly faster. For example, in a
test build of LFS-6.5 on a Core2Duo CPU based system, the following statistics
were measured:</para>

<screen><computeroutput>Architecture Build Time     Build Size 
32-bit       198.5 minutes  648 MB 
64-bit       190.6 minutes  709 MB</computeroutput></screen>

<para>As you can see, the 64-bit build is only 4% faster and is 9% larger than
the 32-bit build.  The gain from going to a 64-bit system is relatively
minimal. Of course, if you have more than 4GB of RAM or want to manipulate
data that exceeds 4GB, the advantages of a 64-bit system are substantial.</para>

<para>The default 64-bit build that results from LFS is considered a "pure"
64-bit system. That is, it supports 64-bit executables only. Building a
"multi-lib" system requires compiling many applications twice, once for a
32-bit system and once for a 64-bit system. This is not directly supported in
LFS becuase it would interfere with the educational objective of providing the
instructions needed for a straightforward base Linux system.  You can refer to
the <ulink url="http://trac.cross-lfs.org/">Cross Linux From Scratch</ulink>
project for this advanced topic.</para>

<para>There is one last comment about 64-bit systems. There are some packages
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.  This includes some Xorg drivers from <ulink
url="http://www.linuxfromscratch.org/blfs/view/svn/">Beyond Linux From Scratch
(BLFS)</ulink>. Many of these problems can be worked around, but may require
some specialized procedures or patches.</para>

</sect1>