阅读:1503回复:3
这两天在啃2000DDK,发点我的学习笔记.大家别拍我.
1, NT的体系结构
要想写nt, 2000的驱动,首先要对2000的架构有所了解,否则都是舍本逐末, 沙上建塔(成语用的不大对 :P ). 2000的总体架构可以粗略分为2个部分,User Mode和Kernel Mode,如下图: --------------------- | subsystem | --------------------- | --------------------- | ntdll.dll | --------------------- UserMode =============================================================== KernelMode -------------------- | 执行体(executive)| -------------------- ------------ |内核 | 驱动程序 | | 图形引擎 | -------------------- ------------ | HAL 硬件抽象层 | -------------------- subsystem 是子系统, windows2k 实现win32/posix/os2 3个子系统. 我们用到的最多的是win32子系统,其它的两个几乎用不到. posix是微软为了符合美国国家标准实现的. os2是历史遗留产物. win32子系统是最重要的必须的子系统, 其它的两个子系统都需要依靠它. executive包括基本的操作系统服务,有: 存储管理, process & thread管理, 安全, I/O Manager和进程间通讯(LPC) kernel(内核)包括了调度(dispatch) 中断(interrupt), 异常(exception)和多处理器同步. device driver(设备驱动)就是我们可以插入自己驱动(或者可以说内核模块)的地方了. HAL Hardware Abstract Layer(硬件抽象层)是将内核,驱动程序和其它win2k执行程序与特定硬件差别隔离的层. 微软为不同的硬件体系做了不同的实现,安装的时候由安装程序检测硬件类型, 并装入适当的hal实现. 图形引擎是nt4开始移到内核态的部分, 不在我们讨论范围之列. |
|
|
沙发#
发布于:2003-01-21 11:27
ascii的图放上来就不对了,我把inside win2k的图放上来大家参考.
|
|
|
板凳#
发布于:2003-02-18 08:47
OS/2 至从微软与 IBM 分手之后一直由 IBM 公司继续开发怎么会成为历史呢?
|
|
地板#
发布于:2003-02-18 09:49
应该是支持OS/2或者说OS/2这个subsystem是历史遗留产物。 :D
|
|
|