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

LFS が対象としている CPU アーキテクチャーは 32 ビットインテル CPU が主となります。 LFS システムの構築に初めて取りかかる方は、おそらくこのアーキテクチャーを用いることでしょう。 32 ビットアーキテクチャーは Linux システムが最も広くサポートしているもので、このアーキテクチャーなら、オープンソースも製品ソフトウェアも互換性があります。

本書の作業手順は、多少の変更を加えれば Power PC や 64 ビットAMD/インテル CPU でも動作することは検証されています。 その CPU を使ったシステムをビルドするには、これ以降の数ページで説明している条件以外に必要となることがあります。 LFS システムそのものや Ubuntu、Red Hat/Fedora、SuSE などのディストリビューションをホストとするわけですが、それは 64 ビットシステムである必要があるということです。 ホストが 64 ビットAMD/インテルによるシステムであったとしても 32 ビットシステムは問題なくインストールできます。

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

Architecture Build Time     Build Size
32-bit       198.5 minutes  648 MB
64-bit       190.6 minutes  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 ビットシステムでのビルドに失敗するということです。 例としては Beyond Linux From Scratch (BLFS) にある Xorg ドライバーの一部分などです。 このような問題はたいていは解消していくことができますが、中には特別なビルド手順やパッチを要するものとなるかもしれません。