まず、基本的な2種類のクラシックフレームバッファドライバーがあります。
- 汎用ハードウェアおよびファームウェアドライバー(vga、vesafb / uvesafb、efifbなど)
- ハードウェア固有のドライバー(たとえば、rivafb、atyfb)
従来のフレームバッファドライバはすべて基本的なモード設定サポートを備えていましたが、ハードウェアアクセラレーションのサポートはほとんどありませんでした。
従来のXデザインでは、これは実際には問題ではありませんでした。2Dアクセラレーションを取得するために、Xサーバーはルートとして実行され、ハードウェアに直接アクセスできました。基本的に、フレームバッファードライバーを完全にバイパスしました。3D(および新しいカードの2Dサポート)では、アクセスと管理されたビデオメモリを仲介するカーネルDRMドライバーも使用します。
この設定では、モード設定が行われた場所が2つありました。カーネルフレームバッファードライバーとユーザー空間Xサーバーの両方です。このコードの重複(および、VTスイッチなどでのドライバー間のたまの戦い)は理想的ではありませんでした。
さらに、同じハードウェアのカーネルには、フレームバッファードライバーとDRMドライバーの2つの別個のドライバーがありました。場合によっては(たとえば、km前のintelfb)、どちらか一方を読み込むことができますが、両方を同時に読み込むことはできません。
KMSはこれらの問題の解決策でした。それ:
- カーネルハードウェア固有のフレームバッファードライバーとdrmドライバーを単一のドライバーにマージします。
- Xサーバーがモード設定を制御するために使用するインターフェースを提供するため、Xサーバーはハードウェアに直接アクセスする必要がありません。(実際、KMSでは、Xサーバーはルート権限を必要としません。)
興味深いメモ:現在のKMSへの移行は、実際には2004年頃に開始されました。コンソールの再構築に関するJon Smirlのメールを参照してください。
より具体的な質問に答えるには:
- 一般に、速度は加速されていない一般的なドライバー(VGA、vesafbなど)の1つより悪くなりませんが、KMSフレームバッファーテキストコンソールは速度よりも利便性と緊急使用のために設計されており、一部のドライバーではコンソールが完全に加速されません。長い行の折り返しは、たとえば、Intelカードではかなり悪いです。
- 古いフレームバッファインターフェイスを使用するように設計されたアプリケーションは、引き続きKMSフレームバッファで動作します。