Answers:
首先,基本上有两种类型的经典帧缓冲驱动程序:
经典的帧缓冲驱动程序都具有基本的模式设置支持,但是它们几乎不提供对硬件加速的支持。
对于经典的X设计,这并不是真正的问题:要获得2D加速,X服务器必须以root用户身份运行,并且可以直接访问硬件。它基本上完全绕过了帧缓冲驱动程序。对于3d(以及较新卡上的2d支持),它还将使用内核DRM驱动程序,该驱动程序介导访问和托管视频内存。
在此设置中,完成模式设置的地方有两个:在内核帧缓冲驱动程序中和在用户空间X服务器中。代码的这种重复(以及驱动程序之间偶尔发生争斗,例如在VT开关上)并不理想。
此外,内核中针对同一硬件有两个单独的驱动程序:帧缓冲驱动程序和DRM驱动程序。在某些情况下(例如,kms之前的intelfb),您可以加载一个或另一个,但不能同时加载两者。
KMS是解决这些问题的方法。它:
一些有趣的注意事项:迁移到现在的KMS实际上是在2004年左右开始的。请参阅乔恩·斯米尔(Jon Smirl)关于控制台架构的电子邮件。
要回答您更具体的问题: