3.ソースツリーの作成
カーネルの再構築方法も変更されています。
FedoraCore3では過去のバージョンまでに存在したkernel-sourceパッケージは存在しなくなっており、もしカーネルをカスタマイズする必要がある場合はカーネルのsrpmを取得して独自にrpmパッケージを作成する必要があります。
そのため、手順としては現在動作しているものと同じカーネルのsrpmパッケージをインストールする必要があります。
| # rpm -ivh kernel-2.6.10-1.741_FC3.src.rpm |
上記コマンドを実行することによって、自動的に下記のディレクトリにソースツリーが展開されます。
/usr/src/redhat/SOURCES/
FedoraCore3では、公式のカーネルパッケージ以外にも数十のパッチが適用されています。ソースアーカイブにパッチを適用するために下記のコマンドを実行します。(下記コマンドではまだカーネルのコンパイルは実施されません。)
| # rpmbuild -bp --target=i686
/usr/src/redhat/SPECS/kernel-2.6.spec |
上記コマンドによってパッチが適用されたカーネルソースは下記のディレクトリに保存されます。
/usr/src/redhat/BUILD/kernel-2.6.10/linux-2.6.10/
上記ディレクトリに存在しているMakefileを利用して半自動的にカーネルのコンパイルが行えます。
# cd /usr/src/redhat/BUILD/kernel-2.6.10/linux-2.6.10/
# cp configs/kernel-2.6.10-i686-smp.config .config
# make mrproper
# make menuconfig
# make dep && make clean && make
all |
上記コマンドを実行することによって自動的にカーネルのコンパイルが行われます。
その後は、適切に/boot/grub/grub.confにエントリを追加することにより、コンパイル作業が完了します。
4.デバイスファイルの取り扱い
FedoraCore3からは、新しいデバイスファイルの仕組みが実装されました。それが、udevと呼ばれる仕組みです。
今までのデバイスファイルの取扱いは、インストール時にデバイスノードを大量に作成し、デバイスファイルのメジャー番号、マイナー番号によってデバイスの特定を行っていました。
しかし現在、Linuxに対応するデバイスファイルは、日に日に増えており、対応するデバイスが増えれば増えるほど、デバイスファイルも増えていってしまうという問題があります。
また、USBメモリースティックやリムーバブルHDDなど、ホットスワップ可能なデバイスも現在ではたくさんありますが、抜き差しを繰り返すうちに実デバイスとデバイスファイルが食い違ってしまうようなマッピング問題もあります。
上記のような問題を抜本的に解決するための仕組みがudevとなります。udevは、新規にデバイスが接続されると同時に/sys/というディレクトリを監視します。そしてそのデバイスのためのデバイスファイルが、/etc/udev/rules.d/ディレクトリにあるルールに従って動的に生成されます。
また、デバイスの扱いと関連してFedoraCore3では、haldというデーモンが標準で動作するようになりました。
上記のデーモンは、新規デバイスの接続や切断のイベントをカーネルから受け取ると自動的に、fstab-syncというプログラムを呼び出します。fstab-syncはその名の通り、新規デバイスのエントリを/etc/fstabというファイルに動的に追加、削除を行うためのプログラムです。
一番のメリットとしては、いままでのようにわざわざ特殊デバイスのエントリを/etc/fstabに記述する必要は無くなりました。
5.おわりに
前後半の2回に渡って主に、システム管理に関連する内容についての新機能を紹介していきました。
新機能とは言え、奇を衒ったような特異な機能ではなく、既存の機能の改良という側面が大きく、次世代のLinuxディストリビューションのデファクトスタンダードになるであろう機能が多いと言えるでしょう。
詳細な動作などについてまた機会があればぜひ紹介していきたいと思います。
|