| | | | | | | [文章信息] | | | 作者: | 翟洪涛授权转载 | | 时间: | 2004-02-24 | | 出处: | yesky | | 责任编辑: | 方舟 | |
| [文章导读] | | | 本文是Windows 2000驱动程序设计的第一章,在这一章中先介绍驱动程序设计原理和WIN2000构架 | |
| |
|
| | | |
|
|
|
|
|
天极IT资讯短信服务 电脑小技巧
|
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。 | |
驱动程序在任何操作系统下都和系统内核有着密切的关系,尤其在WIN2000下。在进入WIN2000驱动程序世界之前,本章先介绍驱动程序设计原理和WIN2000构架。
系统的整体结构
WIN2000操作系统是计算机历史上最安全的操作系统,本节介绍WIN2000系统中驱动程序设计者最关心和最感兴趣的部分。
WIN2000的设计目标
有趣的是,原始的NT("New Technology")概念中不包含操作系统环境,直到1989年第一个NT操作系统出现了很长时间后。但是它还保持着原始的设计目标:
兼容性: 尽可能的支持现有的软件和硬件 。
稳定性和可靠性: 操作系统不会因为用户的误操作而损坏,一个用户程序应该不会使操作系统崩溃。
可移植性: 操作系统应当可在尽可能多的当前和未来的平台上运行。
可扩展性: 随着时间的流逝,市场的改变,操作系统应当可以只用添加少的代码就可以支持新的硬件和添加新的功能。
性能: 操作系统应当尽可能大的发挥硬件的效能。
当然,随着时间的流逝,操作系统的设计目标也是改变的,剩下的部分介绍怎样在设计中实现这些目标。
WIN2000的硬件特权级别
为实现稳定性和可靠性的设计目标,WIN2000的设计者使用用户模式服务结构,用户的程序在操作系统的用户模式服务程序中运行。
用户模式中,代码被严格约束在对系统没有损害的范围内。例如: 通过虚拟内存映像,一个程序不能访问其它程序的内存区(两个程序共同定义的公用内存区除外)。硬件I/O指令不能被执行。所有的CPU指令(如CPU中断)不能被执行(在特定的特权级下)。所有的这些被阻止的操作如果想运行,它们必须通过陷阱门来请求操作系统内核。
操作系统内核程序运行在内核模式下,它可以执行所有有效的CPU指令,包括I/O操作,可访问任何程序的内存区,当然是那些没有被翻出内存而被存到磁盘的内存区。
所有的现代的处理器都可以工作在特权级别模式和非特权级别模式下,用户模式工作在非特权级别模式下,内核模式工作在特权级别模式下。而不同的平台和CPU执行特权级别模式是不同的,为了达到可以在这两个模式下运行的目标,操作系统抽象了这两个模式,操作系统总是使用这些抽象的代码来在这两个操作模式下切换。例如: 在Intel平台上,内核模式使用Ring 0指令系统,而用户模式使用了Ring 3指令系统。
我们编写的驱动程序是运行在内核模式下,我们的不正确的代码将危及到WIN2000操作系统的安全,所以,我们必须格外小心我们代码的边界条件,以确保它们不会损坏整个操作系统。
|
|
|
|
|
|
|
|