User interface 设备驱动程序是相互通信还是异步调用?

User interface 设备驱动程序是相互通信还是异步调用?,user-interface,process,operating-system,device-driver,multitasking,User Interface,Process,Operating System,Device Driver,Multitasking,我将画一个我所要求的非常详细的例子 假设我们在一个典型的userland应用程序中,比如绘画软件或文本编辑,我们决定将鼠标悬停或单击组合框。仅通过此输入,鼠标的轨迹球需要从低级设备驱动程序中取出,但视频驱动程序也需要相应地(似乎)同时更新屏幕上指针的位置,如下所示: 如图所示,不是移动鼠标,而是调用驱动程序/更新屏幕。但是,如果我们选择同时单击菜单组合框/下拉列表,并不断更新帧缓冲区提要,该怎么办?这两个驱动程序几乎是同时调用的,调用它们的是什么(GUI桌面、直接调用应用程序等)。因为鼠标可以

我将画一个我所要求的非常详细的例子

假设我们在一个典型的userland应用程序中,比如绘画软件或文本编辑,我们决定将鼠标悬停或单击组合框。仅通过此输入,鼠标的轨迹球需要从低级设备驱动程序中取出,但视频驱动程序也需要相应地(似乎)同时更新屏幕上指针的位置,如下所示:


如图所示,不是移动鼠标,而是调用驱动程序/更新屏幕。但是,如果我们选择同时单击菜单组合框/下拉列表,并不断更新帧缓冲区提要,该怎么办?这两个驱动程序几乎是同时调用的,调用它们的是什么(GUI桌面、直接调用应用程序等)。因为鼠标可以在任何地方工作,无论是否在应用程序上。。。这让我怀疑,如果鼠标输入无限期地被系统调用,那么视频输出更多地取决于应用程序是什么(如下面的texpad)。

鼠标驱动程序与视频驱动程序无关。你把内核空间和用户空间的区别搞错了

内核不知道“鼠标指针”的概念。它只输出一个界面,上面写着“我有一个输入设备,可以给出X和Y坐标”。同样,对于视频驱动程序,它只输出一个界面,上面写着“我有一个可以输出图片的设备”——它不知道鼠标指针是什么

GUI都是在用户空间中处理的,这就是下拉框、鼠标指针等的概念。。。处理GUI的任何程序都会使用内核接口并使用它进行操作,例如将输入设备与鼠标指针关联,并将视频输出到屏幕

屏幕内容如何实际推送到硬件取决于驱动程序,不涉及用户空间。GUI只是告诉内核,“我希望屏幕看起来像这样”,内核处理其余的事情


如果您有多核CPU,这两个驱动程序当然可以并行运行,但是,除非您正在实现驱动程序或调度程序,否则您不需要知道详细信息。

鼠标驱动程序与视频驱动程序无关。你把内核空间和用户空间的区别搞错了

内核不知道“鼠标指针”的概念。它只输出一个界面,上面写着“我有一个输入设备,可以给出X和Y坐标”。同样,对于视频驱动程序,它只输出一个界面,上面写着“我有一个可以输出图片的设备”——它不知道鼠标指针是什么

GUI都是在用户空间中处理的,这就是下拉框、鼠标指针等的概念。。。处理GUI的任何程序都会使用内核接口并使用它进行操作,例如将输入设备与鼠标指针关联,并将视频输出到屏幕

屏幕内容如何实际推送到硬件取决于驱动程序,不涉及用户空间。GUI只是告诉内核,“我希望屏幕看起来像这样”,内核处理其余的事情

如果您有多核CPU,这两个驱动程序当然可以并行运行,但是,除非您正在实现驱动程序或调度程序,否则您不需要知道细节