DirectFB
概要
DirectFBは、Direct Frame Bufferを意味する言葉であり、GNU/LinuxシステムなどUnix系ベースのオペレーティングシステムにて動作するソフトウェアライブラリである。主に、組み込みLinuxでの利用を前提に開発されている。これは、少ないメモリ使用量で、グラフィックアクセラレーションを実現し、入力デバイスの管理や抽象化レイヤーの作成、ウィンドウシステムの統合などのサポートを、一切カーネルに変更を加えることなく、フレームバッファの上層に透過的なウィンドウと多層の描画レイヤーを提供することで実現している。GPUが実装していない機能はCPUでレンダリングできる。DirectFBはGNU Lesser General Public License(LGPL)にて配布されるフリーソフトウェアである。
このライブラリは、開発者がUnix系オペレーティングシステムにおいて、完全なX Window System(X11)サーバーの代替として利用可能になるよう設計されている。DirectFBを利用すると、直接APIを使用しアプリケーションとビデオハードウェアが会話できるようになる。その結果、描画操作を高速かつ簡易に実現できるようになる。
このライブラリは、しばしば、組み込みシステムの開発者が完全なX Window Systemサーバーの実装によるオーバーヘッドを巧みに回避し、組み込みシステム上にビデオゲームを実装する際にも利用される。2006年に発表された、DirectFBがCE Linux Forumのオーディオ/ビデオ グラフィック仕様v2.0のソフトウェアスタックにも含まれている。
DirectFBはXDirectFBという、DirectFBが生成するウィンドウをX11の最上層のウィンドウ(ルートウィンドウ)に描画するルートレス(rootless)Xサーバーの実装にも利用されている。XDirectFBはDirectFB上のX11アプリケーションを書き換えることなく容易に動作させるため、X11とDirectFBの間に立って両者のインタフェースを取り持つ。
DirectFBGLはOpenGLのハードウェアアクセラレーションをサポートするため、Mesa 3Dライブラリのダイレクト・レンダリング・インフラストラクチャ(Direct Rendering Infrastructure; DRI)を利用する、DirectFB/XDirectFBのためのOpenGL拡張である。
DirectFBは組み込みに限らず、メモリリソースの限られた環境でグラフィカルなインタフェースを提供する場合に使用されることがある。例えばハードディスクへのオペレーティングシステムのインストール時においては、ディスク上にファイルシステムが作成されるまでは多くのデータがメモリのみに溜め込まれているケースがある。この様な時にGUIを提供する場合は少しでもメモリを節約するため、X Window Systemの代わりにDirectFBをインストーラに組み込む場合がある。LinuxディストリビューションのDebianは、オペレーティングシステムのインストーラーであるDebianインストーラでグラフィカルインストールサポートのために、ウィジェット・ツールキットのGTK+とのバインディングである、GTK on DirectFBを利用していた。
利用例
DirectFBを利用する製品の一例は、LinuxTV、販売されなかったがPalm Foleoモバイルコンパニオン、webOSオペレーティングシステム、そして、jointSPACEプロジェクトの成果物をベースとするPhilipsTVである。 日本ではシャープのAQUOSやソニーのBRAVIAなどデジタルテレビの実装にも用いられている。