GGI (General Graphics Interface)
詳細情報
- 作成者
- Andreas Beck、Steffen Seeger
- 種類
- グラフィックス抽象化レイヤ
1990年代にLinuxへ「カーネル内のグラフィックス層とその上の単一ライブラリ」を持たせようとした試み。Linusに却下されたが、十年後にKMSが似た形で実現した。
1990年代半ば、Andreas BeckとSteffen Seegerが始めたプロジェクト。SVGAlibのゲームはroot権限が必要で、落ちるとコンソールが死ぬ。XFree86はグラフィックスカードを占有するsetuidプログラムだった。この状況への不満が出発点である。計画は二本立てだった。KGI(Kernel Graphics Interface)はモード設定とハードウェアアクセスを一手に引き受けるカーネル内ドライバ群、LibGGIはKGI、X、フレームバッファデバイス、SVGAlib、さらにはAA-libまでを「ターゲット」として描画先に選べるライブラリで、同じバイナリのまま出力先だけ切り替えられる。入力側はLibGIIが同じ役割を担った。
1998年、LinusはカーネルMLで「グラフィックスをカーネルに入れる気はない」と答えた。要するにXで困っていない、という理由である。コンソールはm68k移植由来のフレームバッファデバイスが担うことになり、GGIは任意で使うライブラリに留まった。Berlin(のちのFresco)はGGI上に作られ、XGGIはその上のXサーバだった。プロジェクトは2007年頃に動きを止める。翌年、LinuxにKMSが入り、KGIが提案した内容を、今度はグラフィックスドライバ側から、GGIとは呼ばれないまま実現した。