您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 驱动开发2.操作系统与驱动程序
操作系统与驱动程序操作系统与驱动程序sigang@mti.xidian.edu.cnsigang@mti.xidian.edu.cnWindow2000Window2000((NT5.0NT5.0)的设计目标)的设计目标兼容性兼容性操作系统应该尽量支持已经存在的操作系统应该尽量支持已经存在的硬件和软件。硬件和软件。健壮性和可靠性健壮性和可靠性用户程序的错误不应该使用户程序的错误不应该使操作系统崩溃。操作系统崩溃。可移植性可移植性操作系统应该尽量能够在现有和操作系统应该尽量能够在现有和未来的硬件平台上运行。未来的硬件平台上运行。可扩展性可扩展性操作系统应该易于增加新功能和操作系统应该易于增加新功能和支持新的硬件,并且对已有代码的影响应支持新的硬件,并且对已有代码的影响应该尽可能的小。该尽可能的小。Windows2000Windows2000中的硬件特权层中的硬件特权层为了实现健壮性和可靠性目标,为了实现健壮性和可靠性目标,NTNT的设计的设计者为它的核心实现部分选择了客户服务器者为它的核心实现部分选择了客户服务器体系结构体系结构。即用户应用程序作为操作系统。即用户应用程序作为操作系统服务器的一个客户在操作系统上运行服务器的一个客户在操作系统上运行Windows2000Windows2000中的程序运行于两个模式中:中的程序运行于两个模式中:用户模式和内核模式用户模式和内核模式用户模式用户模式用户的应用程序运行于这个模式中,在这用户的应用程序运行于这个模式中,在这个模式中的程序执行有很多的限制,例如个模式中的程序执行有很多的限制,例如不能访问其它应用程序的内存(除非运用不能访问其它应用程序的内存(除非运用各种机制进行内存共享),不能执行硬件各种机制进行内存共享),不能执行硬件I/OI/O等。如果用户程序需要各种受到限制的等。如果用户程序需要各种受到限制的服务,那么必须向操作系统提供请求,一服务,那么必须向操作系统提供请求,一种由硬件提供的陷阱机制用来处理这些请种由硬件提供的陷阱机制用来处理这些请求。求。内核模式内核模式操作系统的代码在这个模式下运行。内核操作系统的代码在这个模式下运行。内核模式在特权环境中运行,而用户模式在非模式在特权环境中运行,而用户模式在非特权环境中执行。在一个特权环境中执行。在一个IntelIntel平台上使用指平台上使用指令集中的令集中的Ring3Ring3执行用户模式,而使用执行用户模式,而使用RingRing00执行内核模式。执行内核模式。WindowsWindows中的大部分驱动程序运行于内核模中的大部分驱动程序运行于内核模式的环境中,在这种特权环境下运行使得式的环境中,在这种特权环境下运行使得它们几乎可以进行各种操作它们几乎可以进行各种操作Windows2000Windows2000操作系统的分层结构操作系统的分层结构硬件抽象层硬件抽象层硬件抽象层将处理器和平台依赖与设备驱动程序硬件抽象层将处理器和平台依赖与设备驱动程序和内核分开。通常在设备驱动程序被移植到一个和内核分开。通常在设备驱动程序被移植到一个新的平台上时,只要重新编译即可。新的平台上时,只要重新编译即可。设备驱动程序代码本质上是设备、处理器和平台设备驱动程序代码本质上是设备、处理器和平台特有的。显然设备驱动程序代码必须依赖于特有的。显然设备驱动程序代码必须依赖于HALHAL中的代码,以便引用硬件寄存器和总线。中的代码,以便引用硬件寄存器和总线。在某些情况下,设备驱动程序代码必须依赖于在某些情况下,设备驱动程序代码必须依赖于I/OI/O管理程序(及其它程序)提供的抽象代码来控制管理程序(及其它程序)提供的抽象代码来控制共享的硬件资源(例如,共享的硬件资源(例如,DMADMA通道)。通道)。Windows2000Windows2000的内核的内核Windows2000Windows2000中的一个重要设计概念中的一个重要设计概念————内内核从执行程序组件中分离出来核从执行程序组件中分离出来Windows2000Windows2000中的内核主要负责线程调度。中的内核主要负责线程调度。每一个线程都有一个独立的线程环境。线每一个线程都有一个独立的线程环境。线程环境包括程环境包括CPUCPU寄存器状态、线程寄存器状态、线程IDID、优、优先权、线程本地存储等等。先权、线程本地存储等等。执行程序组件执行程序组件执行程序组件负责执行内存管理、进程管理、安执行程序组件负责执行内存管理、进程管理、安全管理和全管理和I/OI/O管理等工作管理等工作。。这些可执行的程序组件被设计成模块软件这些可执行的程序组件被设计成模块软件这些组件包括即插即用管理器(这些组件包括即插即用管理器(PlugandPlayPlugandPlayManagerManager)、电源管理器()、电源管理器(PowerManagerPowerManager)、配置)、配置管理器(管理器(ConfigurationManagerConfigurationManager)、内存管理器)、内存管理器((MemoryManagerMemoryManager)、对象管理器()、对象管理器(ObjectObjectManagerManager)等)等需要考虑改进和折衷时,需要考虑改进和折衷时,MicrosoftMicrosoft增加、删除、增加、删除、融合或者分离这些组件融合或者分离这些组件I/OI/O管理程序管理程序I/OI/O管理程序是一个可执行的程序组件管理程序是一个可执行的程序组件由一系列的内核模式的例程所实现,这些例程为由一系列的内核模式的例程所实现,这些例程为用户模式的进程提供一个统一的抽象以实现用户模式的进程提供一个统一的抽象以实现I/OI/O操操作作I/OI/O管理程序的目标之一是使所有来自用户模式的管理程序的目标之一是使所有来自用户模式的I/OI/O访问独立于设备访问独立于设备I/OI/O管理程序将请求以管理程序将请求以IRP(I/ORequestPacket)IRP(I/ORequestPacket)的形的形式从用户模式发送到设备驱动程序例程。式从用户模式发送到设备驱动程序例程。I/OI/O管理程序是用户模式代码和设备驱动程序之间管理程序是用户模式代码和设备驱动程序之间的接口层的接口层API(API(应用程序编程接口应用程序编程接口))Windows2000Windows2000的执行程序组件和的执行程序组件和I/OI/O管理程管理程序执行操作系统的核心服务,但是这些服序执行操作系统的核心服务,但是这些服务不是直接暴露给用户模式的应用程序务不是直接暴露给用户模式的应用程序的。的。MicrosoftMicrosoft定义了几种定义了几种API(API(应用程序编程接应用程序编程接口口)),用户模式代码把它们看成是操作系统,用户模式代码把它们看成是操作系统服务的抽象,这些服务的抽象,这些APIAPI形成不同的环境子系形成不同的环境子系统统环境子系统环境子系统这些子系统包括这些子系统包括Win32Win32子系统、子系统、VDMVDM((VirtualVirtualDOSMachineDOSMachine)子系统、)子系统、WOW(WindowsWOW(WindowsOnOnWindows)Windows)子系统、子系统、POSIXPOSIX子系统、子系统、OS/2OS/2子系统子系统只有只有Win32Win32子系统是本机子系统,其它子系统依子系统是本机子系统,其它子系统依赖于赖于Win32Win32子系统,模拟它们自己的环境子系统,模拟它们自己的环境因此与因此与Win32Win32子系统相比,它们都将承受不同程子系统相比,它们都将承受不同程度的性能下降。但是,它们的目的是为了实现兼度的性能下降。但是,它们的目的是为了实现兼容性而不是速度容性而不是速度环境子系统环境子系统一个特定的应用程序只能存在于一个环境子系统一个特定的应用程序只能存在于一个环境子系统环境子系统通常作为单独的用户模式进程被实环境子系统通常作为单独的用户模式进程被实现现。它们根据需要装入,支持和代理用户模式进。它们根据需要装入,支持和代理用户模式进程程环境子系统成为用户模式客户的服务器。环境子系统成为用户模式客户的服务器。本地过程调用执行程序组件,将来自客户的每个本地过程调用执行程序组件,将来自客户的每个请求传递到合适的服务器进程(环境子系统),请求传递到合适的服务器进程(环境子系统),服务器进程要么直接完成请求的作业,要么依次服务器进程要么直接完成请求的作业,要么依次请求合适的执行程序组件。请求合适的执行程序组件。Win32Win32环境子系统的工作环境子系统的工作系统用户可见的图形用户接口(系统用户可见的图形用户接口(GDIGDI)。)。控制台控制台I/OI/O,包括键盘、鼠标以及各个子系,包括键盘、鼠标以及各个子系统的显示。统的显示。Win32APIWin32API的实现。这是应用程序和其它子的实现。这是应用程序和其它子系统用来与可执行组件的交互的接口。系统用来与可执行组件的交互的接口。Win32Win32函数分类函数分类USERUSER函数,负责管理窗口、菜单、对话框函数,负责管理窗口、菜单、对话框和空间。和空间。GDIGDI函数,在物理设备(如显示器和打印函数,在物理设备(如显示器和打印机)上执行绘图操作。机)上执行绘图操作。KERNELKERNEL函数,管理非函数,管理非GUIGUI资源,诸如进资源,诸如进程、线程、文件和同步服务。程、线程、文件和同步服务。Windows2000Windows2000中驱动程序的种类中驱动程序的种类用户模式驱动程序用户模式驱动程序用户模式驱动程序运行于用户模式下,只用户模式驱动程序运行于用户模式下,只能通过能通过Win32APIWin32API调用来访问系统数据。调用来访问系统数据。用户模式驱动程序和内核模式驱动程序有用户模式驱动程序和内核模式驱动程序有不同的结构、入口点和系统接口不同的结构、入口点和系统接口有一些设备驱动程序可以部分或者全部运有一些设备驱动程序可以部分或者全部运行于用户模式行于用户模式,如打印机的驱动程序,如打印机的驱动程序而实际上的大部分设备驱动程序运行于内而实际上的大部分设备驱动程序运行于内核模式核模式内核模式驱动程序内核模式驱动程序内核模式驱动程序分为遗留驱动程序和内核模式驱动程序分为遗留驱动程序和WDMWDM驱动程序驱动程序遗留驱动程序不支持遗留驱动程序不支持PnPPnP,而,而WDMWDM驱动程驱动程序则支持序则支持PnPPnP,它还支持电源管理和,它还支持电源管理和WMIWMI等等新特性。新特性。文件系统驱动程序文件系统驱动程序即即FSDFSD((FileSystemDriversFileSystemDrivers),这些驱动程序独立),这些驱动程序独立于任何底层设备进行于任何底层设备进行I/OI/O操作操作在基于在基于NTNT的操作系统中,文件系统驱动是核心模的操作系统中,文件系统驱动是核心模式的驱动式的驱动这些文件系统驱动程序总是要依靠底层的外围设这些文件系统驱动程序总是要依靠底层的外围设备的支持,它们还有可能需要一个或几个备的支持,它们还有可能需要一个或几个PnPPnP的总的总线驱动程序的支持。线驱动程序的支持。进行文件系统驱动程序开发进行文件系统驱动程序开发,需要安装,需要安装IFS(InstallableIFS(InstallableFileSystem)FileSystem),这是,这是MicrosoftMicrosoft提供的开提供的开发工具发工具其它内核模式设备驱动程序其它内核模式设备驱动程序它内核模式设备驱动程序提供对底层设备它内核模式设备驱动程序提供对底层设备的的I/OI/O服务。服务。这些程序包括总线驱动
本文标题:驱动开发2.操作系统与驱动程序
链接地址:https://www.777doc.com/doc-6340077 .html