Linux的内核驱动程序( .ko文件)将只处理硬件访问以及一些基本功能。
对于图形驱动程序,这将是
文本模式帧缓冲图形模式(包括简单的2D加速,如“复制此区域”)呈现命令队列的接口。所有这些都可以在几千字节内实现,特别是当其他组件被重用时。
复杂的操作(如OpenGL呈现、着色编译和提交等)不会在内核中处理,因为这会危及系统的稳定性。相反,这些命令是在单独的进程中处理的,通常是X服务器或使用3D图形的程序,然后将命令列表发送给驱动程序,驱动程序只需将命令传递给卡。同样,此驱动程序严重重用组件。
在Windows下,理念是将所有这些都压缩到内核模块(.sys)中,因为组件化没有好处(各个供应商通常不一起工作)。