Operating system 程序如何与设备驱动程序通信?

Operating system 程序如何与设备驱动程序通信?,operating-system,driver,device-driver,hardware-programming,Operating System,Driver,Device Driver,Hardware Programming,所以我很困惑,作为程序员,我们到底是如何与计算机上的设备对话的。现在我说的不是大主意。我知道有一些设备驱动程序位于硬件之上,因此不同的程序可以使用这些功能 但总的来说,到底是谁在和司机说话?编写应用程序的程序员是否负责调用驱动程序上的函数?还是程序员通过操作系统调用函数,然后操作系统处理对驱动程序的调用?正如你所看到的,我对驱动程序、操作系统和应用程序如何结合的本质感到困惑 应用程序不直接调用驱动程序-这违反了用户模式和内核分离的整个理念。相反,操作系统公开与用户模式程序相关的功能,使应用程序能

所以我很困惑,作为程序员,我们到底是如何与计算机上的设备对话的。现在我说的不是大主意。我知道有一些设备驱动程序位于硬件之上,因此不同的程序可以使用这些功能


但总的来说,到底是谁在和司机说话?编写应用程序的程序员是否负责调用驱动程序上的函数?还是程序员通过操作系统调用函数,然后操作系统处理对驱动程序的调用?正如你所看到的,我对驱动程序、操作系统和应用程序如何结合的本质感到困惑

应用程序不直接调用驱动程序-这违反了用户模式和内核分离的整个理念。相反,操作系统公开与用户模式程序相关的功能,使应用程序能够调用公开的功能(与应记录的预定义限制有关)

这是一个很好的图表,来自windows的味道。