Fedora Core 3は、Red Hat Inc.が協賛しているFedoraプロジェクトの最新リリースです。Fedora Coreには、新規バージョンがリリースされるたびに魅力的な新機能と無数のバグ修正が加えられています。今回のリリースでは、GNOME 2.8とKDE 3.3.0のデスクトップ環境、およびOpenOffice.org 1.1.2によるオフィスパッケージが更新されています。システムレベルでいうと、アクティブモードで利用可能なSELinuxを搭載した2.6.9 Linuxカーネルが同梱されています。
Fedora Core 3の開発サイクル全体を通じて、デスクトップチームはGNOMEコミュニティと連携してユーザビリティに関する調整を実施し、Fedora Core 3のユーザインターフェースとパフォーマンス、およびGNOME 2.8での実装を改良しました。
新しいGTK+ファイルセレクタには、さらなる機能拡張が施されています。タイプアヘッド検索(インクリメント検索)のような動作上の改良が実施されました。これによって、若干の文字を入力するだけで小さな「サーチ」ボックスがポップアップし、ファイルを見つけることができます(「図1.「ルックアヘッド機能を備えた新しいファイルセレクタ」を参照)。また、ファイルセレクタ内でLocationダイアログを開く操作は、ショートカットキー「/」で実行できるようになっています。
図1. ルックアヘッド機能を備えた新しいファイルセレクタ
一般の要望に応えて、WebブラウザFirefoxと電子メールクライアントThunderbirdが、ExtrasからFedora Coreに組み込まれました。さまざまなブラウザを利用できる現在では、Mozillaは旧式になっているので、Fedora Core 5のリリースサイクルあたりでFedora Coreから削除されると予想されます。Fedora Core 3のデフォルトのブラウザはFirefoxであり、デフォルトの電子メールクライアントはEvolution 2.0です。
図2. WebブラウザFirefox
Evolution 2.0には新しい機能が満載されています。これはNNTPをサポートするUsenetニューズグループリーダとなり、同時に電子メールクライアント、コンタクトマネージャ、カレンダスイートでもあります。Microsoft ExchangeおよびNovell GroupWiseサーバとの接続がサポートされ、オンラインカレンダ機能(webcal)もサポートされています。最も便利な機能の1つは、SpamAssassinによって提供されるジャンクメールフィルタリングです。Junkボタンをクリックするだけでメッセージをジャンクとして指定でき、ヒューリスティックスキャナも備えています。
図3. 電子メールクライアント Evolution 2.0
OpenOffice.org 1.1.2は、オフィス製品パッケージソフトの次期メジャーリリースです。このリリースは多数のバグ修正が行われ、以前のリリースに比べてはるかに多くのテンプレートを備えていることが話題となっています。Native Widget Framework(NWF)が実装され、OpenOffice.orgはホストプラットフォームのネイティブGUIとしての外観と使い勝手を備えました。そのため、GNOMEではGTK+アプリケーションのような感覚で使用でき、KDEではQtアプリケーションのような感覚で使用できます。また、新しいGTK+ファイルセレクタが組み込まれたことで、ファイルのオープンや保存の操作がより統一されています。
GNOMEの改善にとどまらず、ユーザのデスクトップ操作についても興味深い改良が加えられています。これらはすべて、hotplug、udev、D-BUS、HAL、およびgaminという形式のマジックレイヤに基づいて可能となりました。このマジックは、すべてfreedesktop.orgの規格によって可能となっています。
hotplugがLinuxに組み込まれたことによって、デバイスは接続するとただちにアクセス可能になります。設定のほとんどが自動的に実行されるため、ユーザはデバイスの設定についてあまり学習する必要はありません。D-BUSはメッセージシステムバスで、アプリケーション同士のシンプルな連絡手段を提供します。たとえば、「new printer added」のようなメッセージをプリンタ設定ユーティリティに渡すことができます。これとHardware Abstraction Layer(HAL)を組み合わせた場合、新しいプリンタをシステムに接続すると、自動的にそのプリンタ用のドライバ選択画面が表示されます(図4「プリンタドライバの選択」を参照)。HALではさまざまなソースからの情報が統合され、デスクトップアプリケーションで容易にハードウェアを特定できるようになります。
図4. プリンタドライバの選択
USBメモリは、手軽なリムーバブルデータストレージとして広く利用されるようになっています。Linuxでこれにアクセスする場合、以前ならおそらくターミナルを経由し、デバイス名を発見してデバイスをマウントしたうえでデータにアクセスし、そのあとデバイスをアンマウントする必要がありました。しかし、それはもう過去の話です。
USB端子(デジタルカメラを含む)を接続すると、ただちにhotplugで検出され、udevがそのデバイスにデバイスノードを割り当て、次にメッセージがD-BUS経由でHALに送られてGNOMEがそのデバイスを検出し、ログイン中のユーザで自動的にマウントします。そのデバイスのアイコンがデスクトップに表示されます(これはデジタルカメラ以外の場合です。デジタルカメラも自動的にマウントされますが、動作は異なります)。ユーザは、デスクトップに置かれたアイコンをダブルクリックするだけでファイルにアクセスできます。作業が終わったときに必要なのは、オープンしているウィンドウを閉じてデバイスを取り外すことだけです。
こうした自動動作はデジタルカメラ(カメラを接続して新しい写真が検出されると、自動的に同期)、データおよびオーディオCD、それにポータブルMP3デバイス(人気のiPodなど)でも利用できます。新しいファイル変更モニタであるgaminは、ファイルシステムで作成、変更、または削除などが発生すると、それをシステム内のGUIツールに通知します。gaminによって、使用し終わったデバイスの不要な「ロック」を防止できます。これは、Fedoraの以前のリリースでは問題となっていました。
図5. ドライブとメディアの選択
udevは、実際にシステム上に存在するデバイスのファイルのみを格納するダイナミックデバイスディレクトリを提供します。hotplugサブシステムの一部として、udevはカーネルイベントが発生するタイミングに基づいて/devディレクトリに置かれるデバイスノードの作成や削除を行います。また、必要に応じてネットワークインターフェースの名前の変更も行います。Fedora Core 3のudevの詳細については、http://fedora.redhat.com/docs/udev/をご覧ください。
図6. NetworkManager
たとえば以前のXIMでは、OpenOffice.org Writerのようなアプリケーションで、日本語で起動したあとに韓国語をXIMで入力するには、いったん閉じて第2の言語で再オープンする必要がありました。IIIMFでは、Writerのようなアプリケーションを任意の言語で実行でき、次にgimlet言語スイッチャを使用して、実行中にすばやく簡単に言語を変更できます(図7「実行中の複数言語の切り替え」)。
図7. 実行中の複数言語の切り替え
現在のIIIMFは、GTK+2ライブラリセットに対して記述されたアプリケーションとはうまく連動しますが、KDEアプリケーションを記述する際に使用されるQtライブラリとは連動できません。ネイティブのIIIMFサポートのないQtのようなアプリケーションには、XIMとIIIMFのプロトコルブリッジとしてhttxが提供され、ネイティブ言語入力が可能となっています。httxでブリッジされた入力にはXIMと同じ制限があるため、有用なのはそれぞれのネイティブ言語で実行するときだけです。
HelixPlayerはGTKを使用してビルドされたオープンソースのメディアプレーヤで、Helix DNAクライアントメディアエンジンを備えています。このエンジンは、Ogg VorbisおよびOgg Theoraのオープンソースプレイバックを提供します。これらはすべて、Realとコミュニティとの共同作業であるHelixコミュニティによって可能となっています。
一方、GStreamerマルチメディアフレームワークは最も興味深いものです。これは、Fedora CoreおよびGNOMEデスクトップに十分に統合されており、有効なメディア処理を提供します。DVDの「リッピング」を可能にするコンソールコマンドがあり、プラグインを追加するだけでフォーマットのサポートを拡張できます。Totemはシンプルなムービープレーヤで、GStreamerフレームワークを使用します。Sound Juicerは、Ogg VorbisフォーマットへのオーディオCDの「リッピング」に適したアプリケーションです。これは高速化され、HALと統合されています。
GCC Fedora Core 3は、GNU Cコンパイラ(GCC)バージョン4.0を出荷する最初のLinuxディストリビューションとして画期的なものです。GCC 3.4.2がまだ正規のコンパイラとして出荷されているため、これは技術レビューリリースです。GCC 4.0は、Static Single Assignment(SSA)によってパフォーマンスが向上しています。SSAの有効性は、変数のプロパティを単純化することによって、コンパイラの最適化を単純にすると同時に機能を向上させる機構にあります。
FORTIFY_SOURCEの拡張によって、コンパイル時間バッファオーバーフローの検出、およびオーバーヘッドの非常に小さいランタイムオーバーフロー保護が追加されています。これはコードの品質向上に役立つ優れた開発ツールであり、現在の目標はFedora Core 4ディストリビューション全体をコンパイルする-D_FORTIFY_SOURCEオプションを備えることです(Fedora Core 3では、GCC4を使用しているものはありません)。これの詳細については、Jakub Jelinekが作成した記事を参照してください(http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html)。
また、これに伴って、Fedora Core 3のglibcに新しい機能が組み込まれ、FORTIFY_SOURCEスイッチを備えたGCC4で有効化されています。GCC 3.4.2には、Fedora Updatesで提供されるアップデートで、まもなくこの機能の一部が組み込まれます。
新しいYUMでは、ヘッダ情報の圧縮を使用しています。このYUMでは(コマンドライン経由で)行う必要のある作業のリストが利用され、それに関係する情報が取得され、さらに依存性の解決に関してrpmlibに問い合わせが行われます。次にrpmlibが応答し、YUMでXMLメタデータ(repodataで提供)が使用されます。これによってYUMの高速化とメモリ消費の低減が実現されています。さらに高速化するために、XMLが一度読み取られるとその情報はキャッシュされます。これは、PythonのXML解析が必要な速度を発揮しないためです。したがって、YUMでこのメタデータが読み取られるのは、アイテムを解決するときだけです。メタデータはXMLパッケージとなっています(http://linux.duke.edu/metadata/)。ここでは、メタ情報は各リポジトリの「repodata」ディレクトリに保存されています。これは、RPMパッケージヘッダに格納された情報をXMLで表現し、圧縮したものです。これによって、YUMでより高速に依存性を解決し、有用な情報を取得することが可能になります。「repodata」ソースの生成は、createrepoユーティリティで行われます。YUMの新しい機能には、次のものが含まれます。yum list recent ―これはいずれかのリポジトリに最近追加されたパッケージをリストするもので、追加されたばかりのパッケージを確認する場合に役立ちます。yum list obsoletes ―これは旧式の環境で使用できるパッケージをリストします。yum groupremove [somegroupname] ―グループによるインストールがサポートされ、グループ全体の削除もサポートされています。パッケージをインターネットからダウンロードし、YUMを使用してそれをインストールすると、YUMの設定にリストされているリポジトリで提供され、パッケージで必要とされるあらゆる依存性をYUMが解決します。
1. ホームディレクトリをFedora Coreの以前のバージョンが実行されているシステムからアップデートまたは移行した場合、~/.ssh/configファイルのパーミッションを変更してOpenSSH 3.9による要件に適合させる必要があります。そのためには、~/.ssh/configが~/の所有者によって所有され、そのパーミッションが600に設定される必要があります。そうしないと、OpenSSHツールは終了します。
2. FHSへの適合性が増したFedora Core 3には、/srvディレクトリが含まれています。このディレクトリの本来の目的は、システムによって提供されるサイト固有のデータを格納することです。たとえば、httpd、cvs、およびftpサービスによって、それぞれのデータが保存されます。Fedora Core 3では、このディレクトリはこうした目的には使用されません。このディレクトリは、FHSへの適合性を確保するために存在するだけです。
3. メディアは以前の/mntではなく、/mediaでマウントされます。そのため、標準的なCD-ROMドライブは/media/cdromにマウントされ、標準的なCD-RWドライブは/media/cdrwとしてマウントされます。
4. Fedora Core 3では、kernel-sourceパッケージがなくなりました。カーネルをリビルドする場合は、kernel-
5. ext2onlineユーティリティによるオンラインのリサイズによって、ext3ファイルシステムの拡張が可能です。
6. cdrecordでは、--dev=0,1,2によるデバイスの指定が不要になりました。現在では、デバイス自体を指定するだけで済みます。たとえば、cdrecord --dev=/dev/hdc example.isoでは、/dev/hdcにあるCD Writerに置かれたCDにexample.isoが焼き付けられます。
Fedoraプロジェクトは長い道のりを経てきました。そして、Fedora Core 3はそのディストリビューションの目標を指し示しています。エンドユーザが大部分その有用性を認めるような優れたデスクトップディストリビューションとなり、同時にシステム管理者が大規模サイトで管理できるようなオペレーティング システムとなることです。
ディストリビューションでのPython 2.4の利用などを含むFedora Core 4の作業がすでに始まっています。Fedora Core 4にご期待ください。
Colin Charles(arenatechniques.com)はコンサルタント、作家、および学生で、OpenOffice.orgとFedoraプロジェクトに積極的に関与しています。コンピュータやその他の電子機器をいじることのほかに、ボーリングやサイクリングを楽しむ、ぶらぶらする、映画を観るといった趣味を持っています。