kenli79
驱动小牛
驱动小牛
  • 注册日期2002-06-12
  • 最后登录2003-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1500回复:3

这两天在啃2000DDK,发点我的学习笔记.大家别拍我.

楼主#
更多 发布于:2003-01-21 11:18
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开始移到内核态的部分, 不在我们讨论范围之列.
超级菜鸟!!!!!!!!!
kenli79
驱动小牛
驱动小牛
  • 注册日期2002-06-12
  • 最后登录2003-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-21 11:27
ascii的图放上来就不对了,我把inside win2k的图放上来大家参考.
超级菜鸟!!!!!!!!!
SkyEyes
驱动牛犊
驱动牛犊
  • 注册日期2003-02-13
  • 最后登录2008-08-05
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-18 08:47
OS/2 至从微软与 IBM 分手之后一直由 IBM 公司继续开发怎么会成为历史呢?
kenli79
驱动小牛
驱动小牛
  • 注册日期2002-06-12
  • 最后登录2003-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-18 09:49
应该是支持OS/2或者说OS/2这个subsystem是历史遗留产物。 :D
超级菜鸟!!!!!!!!!
游客

返回顶部