Windows驱动程序基础系列,转载请标明出处:http://blog.csdn.net/ikerpeng/article/details/38778375
Windows运行模式:用户模式和内核模式
Windows从总体上来说分为:内核模式和用户模式,Intel的i386系列CPU逻辑概念上有4个特权层:Ring0(特权最高),Ring1,Ring2,Ring3. 内核模式则运行在Ring0上面,用户模式就运行在Ring3上。
运行在内核模式下面的Windows组件是安全的(驱动程序就是运行在此),不会受到恶意的攻击;而运行在用户模式下的程序是不安全而且容易受到攻击的。
驱动程序运行在内核模式下面,拥有最高的权限。因此没有任何的其他的保护措施,所以编写驱动程序要格外的小心,很可能直接导致系统的崩溃。
Windows操作系统的架构:
现代的操作系统都是基于分层的思路设计的。一般都是“客户端——服务器”的结构。
Windows架构简图(iker制作)
Win32子系统是最纯正的Windows子系统,提供大量的API。应用程序都是通过对它的调用实现对计算机的操作的。而大部分么的Win32子系统的API都是通过NativeAPI实现的。设置NativeAPI的是基于版本兼容的考虑。它通过软件中断的方式进入到内核模式。
下面说一下几个重要的概念:
虚拟内存管理:Windows中引入虚拟内存的概念,然后通过某种映射将物理内存和虚拟内存关联起来。每个进程拥有4G的虚拟内存,然后又被分为两部分:前半部分,0~0X7FFFFFFF规定为用户模式地址;后半部分规定为内核模式地址。另外,Windows规定内存模式下虚拟内存的映射方式一样,顶端的内核模式地址的数据一致。
I/O管理器: 负责发起I/O请求,并且管理这些请求。无论是端口的读写,对键盘的访问,还是对磁盘文件的操作都统一为IRP(I/O Request Packages)。而驱动程序负责完成这些IRP。
驱动程序就是在接收这些IRP请求后,进行相应的操作。
本小节完。
参考书目:
《
Windows 驱动开发技术详解 》