iii. LFS が対象とする CPU アーキテクチャー

LFS が対象としている CPU アーキテクチャーは AMD/インテル x86 CPU (32ビット) と x86_64 CPU (64ビット) です。 Power PC や ARM については、本書の手順を多少修正することで動作することが確認されています。 これらの CPU を利用したシステムをビルドする場合は、この後に示す諸条件を満たす必要がありますが、まずはそのアーキテクチャーをターゲットとする、LFS システムそのものや Ubuntu、Red Hat/Fedora、SuSE などの Linux システムが必要です。 ホストが 64 ビット AMD/インテルによるシステムであったとしても 32 ビットシステムは問題なくインストールできます。

64 ビットシステムにて明らかなことをここに記しておきます。 32 ビットシステムに比べると、実行プログラムのサイズは多少大きくなり、実行速度は若干速くなります。 例えば Core2Duo CPU をベースとするシステム上に、LFS 6.5 をビルドしてみたところ、以下のような情報が得られました。

アーキテクチャー ビルド時間  ビルドサイズ
32 ビット        198.5 分    648 MB
64 ビット        190.6 分    709 MB

ご存知かと思いますが 64 ビットによってビルドを行っても、32 ビットのときのビルドに比べて 4% 早くなるだけで 9% は大きなものになります。 つまり 64ビットシステムによって得られることは比較的小さいということです。 もちろん 4GB 以上の RAM を利用していたり、4GB を超えるデータを取り扱いたいならば、64 ビットシステムを用いるメリットが大きいのは間違いありません。

LFS の手順に従って作り出す 64 ビットシステムは、"純粋な"64 ビットシステムと言えます。 つまりそのシステムは 64 ビット実行モジュールのみをサポートするということです。 "複数のライブラリ" によるシステムをビルドするのなら、多くのアプリケーションを二度ビルドしなければなりません。 一度は 32 ビット用であり、一度は 64 ビット用です。 現時点にて本書はこの点をサポートしませんが、後々のリリースに向けて検討中です。 さしあたりそのような応用的なトピックに関しては Cross Linux From Scratch プロジェクトを参照してください。

最後に 64 ビットシステムについてもう一つ述べておきます。 古いパッケージの中には現時点にて "純粋な" 64 ビットシステム上でビルドできないものがあり、あるいは特別なビルド手順を必要とするものがあります。 一般的に言えば、そのようなパッケージには 32 ビット固有のアセンブリ言語の命令が含まれるからであり、 だから 64 ビットシステムでのビルドに失敗するということです。 例としては http://xorg.freedesktop.org/releases/individual/driver/ にある、古いビデオカードに対応する Xorg ドライバーなどです。 このような問題はたいていは解消していくことができますが、中には特別なビルド手順やパッチを要するものとなるかもしれません。