刚开始使用Linux时,内核模式设置有些痛苦,但是现在有了它真是太棒了。我的意思是,X是否不需要以root身份运行?高分辨率硬件加速控制台?酷的东西。
问题是,许多UNIX平台都没有任何形式的模式设置内核驱动程序。因此,依赖KMS的硬件现在大多限于Linux。
我的问题:为什么实际上在内核中实现呢?
如果需要硬件访问来设置屏幕分辨率,为什么不使用单独的特权守护程序或小的setuid二进制文件?这样可以保持分离特权代码并让显示服务器以受限用户身份运行的优势。同时摆脱了特殊的驱动程序要求,并使跨UNIX支持更加容易。对?还是我在这里错过了重要的事情?
这就是微内核操作系统架构的思想。
—
Barmar 2015年
在这种情况下,我不考虑微内核类型模型,而只是考虑不同内核之间的可移植性。
—
DanL4096
OpenBSD和FreeBSD也正在使用KMS,Solaris也正在使用KMS。这样,当开发人员制作适用于Linux的驱动程序时,该驱动程序支持也将流向使用KMS的其他人。
—
hspaans 2015年
这是建筑性的东西。硬件访问是内核的一项任务(如果不是的话)。在内核和用户空间之间分配工作很麻烦,因为您将需要两个组件,而这些组件实际上只能使用模糊的界面来完成一项工作。最终,您将在内核的域内执行工作,因此,有充分的理由将整个事情放入内核。当然,您可以随时随地实现它。健壮的平台都是关于明确定义的架构和接口。一切都摇摇晃晃。
—
Bananguin 2015年
在相当长的一段时间内,各种崩溃将使控制台处于一种奇怪的模式,在这种模式下X不再起作用,但是实际上并未恢复TTY样式的conole访问。IIRC GL加速问题和崩溃经常引起这种情况。KMS意味着内核知道如何解决问题并恢复控制台状态。IOW在一定程度上改善了可用性。尽管有人可能会认为内核可能会要求用户空间守护程序执行此操作,但我想这可能并不总是很好。同样将其放入内核意味着没有封闭源的困难。
—
James Youngman'3