aboutsummaryrefslogtreecommitdiffstats
path: root/prologue/multilib.xml
diff options
context:
space:
mode:
Diffstat (limited to 'prologue/multilib.xml')
-rw-r--r--prologue/multilib.xml99
1 files changed, 99 insertions, 0 deletions
diff --git a/prologue/multilib.xml b/prologue/multilib.xml
new file mode 100644
index 000000000..a579d2c3a
--- /dev/null
+++ b/prologue/multilib.xml
@@ -0,0 +1,99 @@
+<?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 arch="ml_32,ml_x32,ml_all" id="pre-multilib">
+ <?dbhtml filename="multilib.html"?>
+
+ <title>About the Multilib Edition</title>
+
+ <sect2><title>What is Multilib</title>
+
+ <para>Today, most systems in the x86 world have a word size of 64
+ bit. The word size is a number of bits which can be used at once
+ in the most efficient way. Previous architectures of x86 processors
+ had a word size of 32 bit which means they have a different
+ understanding of what is the best alignment of data in memory as
+ well as they have a different mechanism to address a different size
+ of memory. Even the instruction set of the 64 bit processors is
+ quite simmilar to the instructions of 32 bit processors, binaries
+ (objects compiled to machine code) cannot directly be executed on
+ 64 bit systems.</para>
+
+ <para>Multilib is a mechanism to provide support for the 32 bit
+ binaries so that they can be executed of modern 64 bit CPUs.</para>
+
+ </sect2>
+
+ <sect2><title>Why doing Multilib?</title>
+
+ <para>From a educational point of view, LFS in its 'native' form is
+ probably the best way to see how a Linux system is built from source.
+ There is no need to confuse with different architectures. But when
+ there is a need to run 32 binaries and you don't want to build the
+ whole system in 32 bit (which would be waste of ressources
+ nowadays) than LFS-multilib is an option. Examples for such a
+ need could be
+ <itemizedlist>
+ <listitem><para>Closed-source software without source only
+ available for 32 bit. That may be the case for printer driver
+ or any other kind of hardware drivers, the company provides
+ the binaries. If you have such a driver, LFS-multilib
+ may help you getting the stuff running</para>
+ </listitem>
+ <listitem><para>If you want to go far beyond LFS and setup a
+ virtualization platform like <application>VirtualBox</application>,
+ you will need multilib support</para>
+ </listitem>
+ <listitem><para>or even just because you can</para>
+ </listitem>
+ </itemizedlist>
+
+ </para>
+
+ <para>The multilib edition of LFS goes a small step beyond and a
+ small step back to what has been said in the previous section
+ when talking about target architectures. On one hand, the multilib
+ edition is focused and <emphasis>limited</emphasis> to x86_64
+ architectures only, on the other hand, it <emphasis>expands</emphasis>
+ the instructions to utilize both possible architectures, namely
+ 32-bit as well as 64-bit.</para>
+
+ <para>It also goes a bit beyond the basic educational
+ approach of LFS which is to show you how to build a Linux system.
+ To achieve this, no support for additional architectures than
+ the default one for your system is required. If you haven't
+ previously built by the standard LFS book, you are encouraged to
+ do so before using this edition.</para>
+
+ </sect2>
+
+ <sect2><title>Building a Multilib System</title>
+
+ <para>Building a multilib system is not that much different from
+ building a system by using the 'native' LFS book. Beside some
+ tweaks here and there the most prominent difference is that
+ multilib requires compiling some applications up to three times:
+ one for the primary 64-bit architecture,
+ one for the 32-bit architecture (m32),
+ and once again for the 32-bit architecture with is 32-bit memory
+ access and 64 bit instruction set (mx32).</para>
+
+ <para>Continue only if you and your system meets the following
+ requirements:
+ <itemizedlist>
+ <listitem><para>you have a x86_64 compatible machine</para></listitem>
+ <listitem><para>you already have some experience with LFS</para></listitem>
+ <listitem><para>you have a need for 32-bit support</para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>If you passed all three requirements, go ahead and build LFS
+ in multilib mode.</para>
+
+ </sect2>
+
+</sect1>