发布网友 发布时间:2022-04-20 08:37
共1个回答
热心网友 时间:2023-08-27 11:23
驱动程序(Device Driver)全称为“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序。可以说相当于硬件的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。驱动程序在系统中所占的地位十分重要, 驱动程序给我的首先印象应该是面对设备与操作系统的,但是并不一定每一个驱动程序都是与硬件相关联的.在实际的驱动程序开发中不要狭义的理解为硬件,应该理解为设备,硬件也可以叫做设备,在计算机系统中虚拟的也可以是设备,比如 磁盘卷,分区、网络协议、以及其他的设备驱动程序都是设备,那么与硬件无关的驱动程序,比如NDIS驱动,文件过滤系统驱动、磁盘过滤系统驱动程序、文件透明加密驱动... 他们所面对的设备不一样而已 我们形象的理解为NDIS是与网络中间层通讯协议(设备)驱动,卷(设备)过滤驱动,文件系统(设备)过滤驱动。驱动程序的强大之处就是因为他在OS核心层(Ring0)运行,在RING0层运行有什么强大的呢,因为操作系统的保护模式*,在RING3层很多操作受到*,比如 直接IO硬件、开启/关闭中断等等特权指令必须在RING0层才能执行、如果你在RING3层执行此类代码就会收到一个类似于 【应用程序指令错误】的消息提示,而相关的应用程序也会被WINDOWS终止,在CPU的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃,所以在RING3受到*.必须在RING0下运行. 如何理解驱动程序的重要性与强大之处,再看看我们在操作计算机的内部流程,我们简单的理解为 输入-应用程序--内核-设备,在这里在最后有个‘设备’但是某些操作的流程并不是一定是与设备有关的,可能仅仅是一系列的简单的操作仅仅是与API有关的.比如OpenProcess、 NtTerminateProcess 在应用程序调用的时候,在RING3的最后一步是在NTDLL 最终由NTDLL进入内核 ,基本上可以这样概括一下,就是所有的操作在进入计算机底层以后都要进过相关驱动程序,在这些功能调用上用个形象的说法 应用层是‘标’,那么驱动层就是‘本’,还有就是驱动层作为操作系统与设备(不一定是硬件)的中间桥梁,有着一夫当关的重大作用,哈哈.... 太多说不完,LZ自己找资料看看..