Прежде всего, есть два основных типа классических драйверов кадрового буфера:
- Общие драйверы аппаратного и микропрограммного обеспечения (например, vga, vesafb / uvesafb, efifb)
- Аппаратные драйверы (например, rivafb, atyfb)
Все классические драйверы кадрового буфера имели базовую поддержку настройки режима, но они практически не оказывали поддержку аппаратного ускорения.
С классическим X-дизайном это не было проблемой: чтобы получить 2D-ускорение, X-сервер работал от имени root и мог напрямую обращаться к оборудованию. В основном он полностью обошел драйвер фреймбуфера. Для 3d (и поддержки 2d на более новых картах) он также использовал бы драйвер DRM ядра, обеспечивающий доступ и управляемую видеопамять.
В этой настройке было два места, где была выполнена настройка режима: как в драйвере кадрового буфера ядра, так и в X-сервере пользовательского пространства. Такое дублирование кода (и случайные конфликты между драйверами, например, на VT-коммутаторе) не были идеальными.
Кроме того, в ядре было два отдельных драйвера для одного и того же устройства: драйвер кадрового буфера и драйвер DRM. В некоторых случаях (например, pre-kms intelfb) вы можете загрузить один или другой, но не оба одновременно.
KMS был решением этих проблем. Это:
- Объединяет аппаратный драйвер кадрового буфера ядра и драйвер drm в один драйвер.
- Предоставляет интерфейс для использования X-сервером для управления настройкой режима, поэтому X-серверу не требуется прямой доступ к оборудованию. (Действительно, с KMS X-серверу больше не нужны права root).
Некоторые интересные заметки: переход на то, что сейчас является KMS, фактически начался примерно в 2004 году; см . письмо Джона Смирла о реархитектуре консоли .
Чтобы ответить на ваши более конкретные вопросы:
- Скорость, как правило, не будет хуже, чем у одного из не ускоренных универсальных драйверов (например, VGA, vesafb), но текстовая консоль KMS с кадровым буфером была разработана для удобства и аварийного использования, а не со скоростью, и на некоторых драйверах консоль не полностью ускорена. Например, на картах Intel очень плохие длинные строки.
- Приложения, разработанные для использования старых интерфейсов кадрового буфера, будут по-прежнему работать с кадровым буфером KMS.