Pertama-tama, pada dasarnya ada dua jenis driver framebuffer klasik:
- Driver perangkat keras & firmware generik (mis. Vga, vesafb / uvesafb, efifb)
- Driver khusus perangkat keras (mis. Rivafb, atyfb)
Driver framebuffer klasik semua memiliki dukungan pengaturan mode dasar, tetapi mereka sedikit mengekspos jika ada dukungan untuk akselerasi perangkat keras.
Dengan desain X klasik, ini bukan masalah: untuk mendapatkan akselerasi 2D, server X berjalan sebagai root, dan dapat mengakses perangkat keras secara langsung. Ini pada dasarnya melewati driver framebuffer sepenuhnya. Untuk dukungan 3d (dan 2d pada kartu yang lebih baru), itu juga akan menggunakan driver DRM kernel yang memediasi akses dan memori video yang dikelola.
Dalam pengaturan ini, ada dua tempat di mana pengaturan mode dilakukan: baik di driver framebuffer kernel, dan di server userspace X. Duplikasi kode ini (dan sesekali berkelahi antar pengemudi, misalnya pada VT-switch) tidak ideal.
Selain itu, ada dua driver terpisah di kernel untuk perangkat keras yang sama: driver framebuffer dan driver DRM. Dalam beberapa kasus (misalnya pre-kms intelfb), Anda dapat memuat satu atau yang lain, tetapi tidak keduanya sekaligus.
KMS adalah solusi untuk masalah ini. Saya t:
- Menggabungkan driver framebuffer khusus perangkat keras kernel dan driver drm ke dalam satu driver.
- Menyediakan antarmuka untuk server X untuk digunakan untuk mengontrol pengaturan mode, sehingga server X tidak harus secara langsung mengakses perangkat keras. (Memang, dengan KMS, server X tidak lagi memerlukan izin root.)
Beberapa catatan menarik: Migrasi ke tempat yang sekarang KMS sebenarnya dimulai sekitar tahun 2004; lihat email Jon Smirl di konsol rearchitecture .
Untuk menjawab pertanyaan Anda yang lebih spesifik:
- Kecepatan pada umumnya tidak akan lebih buruk daripada salah satu driver generik yang tidak terkecuali (mis. VGA, vesafb), tetapi konsol teks framebuffer KMS dirancang untuk kenyamanan dan penggunaan darurat daripada kecepatan, dan konsol tidak sepenuhnya dipercepat pada beberapa driver. Antrian panjang yang terbungkus cukup buruk pada kartu intel, misalnya.
- Aplikasi yang dirancang untuk menggunakan antarmuka framebuffer lama masih akan bekerja pada framebuffer KMS.