Matrox Graphicsは8月11日、Matrox G200/G400/G450グラフィックカードのXFree86 4.0.1用ドライバのベータ版をリリースした。このドライバによりLinuxユーザーは、いままでサポートのなかったTV出力やデュアルヘッド機能を使うことが可能になる。ドライバのバイナリはMatroxのFTPサイトからダウンロードできる。
今回リリースされたドライバは、XFree86 4.0の「Xサーバのダイナミックロード化」「マルチヘッド(マルチディスプレイ)のサポート」「ダイナミックローダの独自実装」という3つの新機能を活用している。これらはすべてXFree86 4.0で新たに導入された機能だ。
XFree86 4.0の新機能
まず、Xサーバのダイナミックロード化だが、これはXサーバの機能をモジュールに分割して、そのモジュール(ファイル)を実行時にダイナミックにロード可能にする仕組みのことだ。以前のXFree86 3.3は、Xサーバのほぼすべての機能が1つのバイナリファイルにまとめられていて、モジュールをダイナミックロードすることは不可能なアーキテクチャだった。そのためドライバはあらかじめXサーバに組み込まれていて、ビデオカードが違えばXサーバ全体を入れかえなければならず面倒だった。これに対してXFree86 4.0では、ハードウェアに関連するドライバ部分だけを1つのファイルにして、それをモジュールとしてダイナミックロードすることが可能だ。
マルチヘッドのサポートは、ダイナミックロード化により初めて実現可能になった機能だ。ドライバを静的に組み込むXFree86 3.3以前のアーキテクチャでは、1つのドライバしか組み込めなかったので、種類が違う可能性もある複数枚のカードでマルチヘッドを実現することは不可能だった。しかしXFree86 4.0では、それぞれのカードに対応したドライバモジュールを組み込むだけでマルチヘッドが可能になった。
そしてXFree86 4.0は、ダイナミックローダをOSの機能に頼らず独自に実装している。このため、本来ならばOSの種類だけ必要なバイナリ形式のドライバファイルを、同じCPUアーキテクチャならば異なるOSで使い回しすることができる。実際、MatroxのFTPサイトでは1つのファイルしか用意されていない。
XFree86用のドライバが公開されるのはもちろんLinuxのシェアが上がったことが第一の要因なのだが、XFree86 4.0が公開されたことも一因といえる。