
设备驱动程序为什么和普通应用程序许多差异?
都是应用软件的一种,两个程序的作用:驱动程序是连接硬件的必不可少的程序,相当于硬件和系统之间的桥梁;而应用程序是在驱动程序的基础上,有了硬件的连接激活,才能更好的应用发挥硬件的作用。区别在于两个程序所发挥的作用不同。
驱动程序取决于硬件和操作系统。它们通常提供任何必要的异步时间相关硬件接口所需的中断处理。因此,差不多所有人都在用户模式下运行。然而,正如第二段所述,为了防止应用程序破坏关键OS数据,用户应用程序必然会在用户空间中运行。
此外,并非所有驱动程序都直接与设备通信。对于给定的I/O请求(如从设备读取数据),通常会有多个驱动程序分层堆栈,并参与请求。直接与设备通信的堆栈中的一个驱动程序称为功能驱动程序;执行辅助处理的驱动程序称为过滤器驱动程序。
扩展资料:
应用程序调用操作系统实现的函数,操作系统调用驱动程序实现的函数。驱动程序知道如何与设备硬件通信以获取数据。驱动程序从设备获取数据后,会将数据返回给操作系统,然后将其返回给应用程序。
应用程序通过设备驱动程序(而不是OS)提供的API /接口连接到IO设备。操作系统处理大多数硬件/软件交互。硬件供应商编写“插件/模块/驱动程序”,允许操作系统控制其特定的硬件。因此,使用OS提供的接口,您可以编写应用程序以访问IO设备。
因此,如果没有驱动程序的帮助,用户应用程序无法直接访问硬件,因为设备驱动程序是用低级语言编写的,而硬件,而用户应用程序是用高级语言编写的。
驱动程序是很底层的,危险性很高的,直接跟硬件打交道的,在操作系统层级下面而普通的应用程序层级是高于操作系统的,需要通过操作系统去调用底层的东西。
驱动程序,可以说相当于硬件的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。
扩展资料:
设备驱动程序与应用程序的相互关系:
在《linux设备驱动程序》里面介绍应用程序有一个组织策略的功能,驱动程序在编写的时候就是提供相关硬件设备的机能。就是说驱动程序不要加入额外的怎么去逻辑上使用硬件的部分,驱动程序需要实现好以下功能:
1、对设备初始化和释放;
2、把数据从内核传送到硬件和从硬件读取数据.;
3、读取应用程序传送给设备文件的数据和回送应用程序请求的数据.;
4、检测和处理设备出现的错误。
2016-12-14 · 知道合伙人软件行家

而普通的应用程序层级是高于操作系统的,需要通过操作系统去调用底层的东西