Windows 2000 的系统架构

kenli 2003-02-19 01:47:39
要想写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开始移到内核态的部分, 不在我们讨论范围之列.
...全文
133 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenli 2003-02-20
  • 打赏
  • 举报
回复
Intel的CPU定义了4个执行代码的权限,以防止低级别权限的代码无意或者恶意访问修改高级别数据和代码,ring0-3。Windows2000只实现了两个级别的代码执行权限,用户态和内核态,分别对应ring0和ring3。用户模式的代码在用户态下执行,核心态代码在核心态执行,这样就防止了串改,提高系统的稳定性。
user32.dll, kernel32.dll都是用户态代码,是win32子系统的一部分。只是win32api的实现。
marcal 2003-02-20
  • 打赏
  • 举报
回复
USER32.dll在用户态???那么GDI32.dll一定也是在用户态了?
  用户态和核心态是怎么样分的?

  现在我只知道kernel32.dll是在核心态的。同时所有的进程和线程都必须在核心kernel32.dll里面注册,每一个窗体都必须在user32.dll中建立消息模块,在shell32.dll里面注册窗体。难道这些都不是核心态?
lornwolf 2003-02-19
  • 打赏
  • 举报
回复
硬件抽象层屏蔽下层硬件的差别,向上提供一个通用接口。
ntdll.dll可以理解为环境子系统调用系统服务功能的通道。
执行体(executive)和图形引擎当然不是USER32.dll,USER32.dll在用户态,是Win32子系统的一部分,执行体(executive)和图形引擎都在核心态。
marcal 2003-02-19
  • 打赏
  • 举报
回复
驱动程序不是直接操作系统硬件的吗?Hardware Abstract Layer(硬件抽象层)这一层能讲的详细一点吗?
  ntdll.dll 是什么?只是泛指dynamice linking library??? 
  执行体(executive)和图形引擎是USER32.dll做的吗?
LoveBeyond 2003-02-19
  • 打赏
  • 举报
回复
买本“Windows操作系统原理”看看~~~
sunwhite 2003-02-19
  • 打赏
  • 举报
回复
写的好,值得一观
Windows 2000 Server资源大全全套书籍。第1卷 服务器使用指南 第2卷 部署规划指南 第3卷 TCP IP连网核心技术 第4卷 网络互连 第5卷 分布式系统 第6卷 深入开发IIS_5 Windows 2000 Server资源大全第1卷 服务器使用指南本书提供了有关Windows 2000 Server的全部信息,内容包括对磁盘、文件系统、存储、打印、故障处理和系统恢复性能等内容的描述。书中特别给出了Windows 2000新的存储性能和NTFS新特性。通过本书的学习,读者将全面掌握Windows 2000 Server的内容。Windows 2000 Server资源大全 第2卷 部署规划指南不用介绍了吧,Windows 2000 Server资源大全 第3卷 TCPIP连网核心技术 本书主要介绍了Microsoft Windows 2000 Server中TCP/IP协议栈的原理及实现,具体阐述了用TCP/IP栈中各种协议进行网络互连的配置和使用细节。本书对那些想深入了解并高效配置Windows 2000 Server的用户来说,是一本难得的权威参考书,特别适合于对TCP/IP已有初步了解的读者。Windows 2000 Server资源大全 第4卷 网络互连本书主要讲述利用Windows 2000 Server作为操作平台,进行局域网、广域网以及Internet网络互连的方法。其内容囊括了网络互连过程中的各种问题,包括路由、远程访问、与其他系统的互操作性、介质集成、其他网络协议等。本书首先讨论网络路由的基本问题,对网络路由的各种方法进行了深入的论述;远程访问部分主要讲述局域网与其他网络以及Internet互连、通信的问题,其中包括报文封装、加密以及其他通信安全方面的解决方案;互操作性部分阐述Windows 2000 Server平台与其他系统平台的兼容与交互操作的问题。介质集成部分从抽象的层次讲述互联网中所使用的物理连接;其他网络协议部分讨论了NetBEUI协议与数据链路控制。   本书以详尽的阐述、例子以及推荐的相关信息,可以使得读者对Windows 2000 Server的网络互联功能有较深入的了解,并且将对读者充分利用Windows 2000有极大的帮助。Windows 2000 Server资源大全 第5卷 分布式系统本书讲述理解和维护Windows 2000 Server中的分布式系统所需的全面的技术信息和工具。内容包括:应用活动目录来集中管理用户、组、安全服务以及网络资源,在活动目录中解析名字,在Windows 2000操作系统环境中开展安全认证、访问控制和密钥服务等。本书是网络管理人员不可多得的参考书之一。Windows 2000 Server资源大全 第6卷 深入开发IIS 5本书深入探讨了IIS 5的新特性和体系结构,包括增强的管理、安全和应用的支持能力,并详细阐述如何从包括IIS 4.0在内的其他Web服务器向IIS 5进行设置、内容和应用程序的迁移,如何优化和调整IIS服务器,如何维护ISP安装,以及如何使用Web访问原有数据和应用程序。   本书适用于IIS 5的中高级用户和Windows 2000系统开发人员,也可供希望获得Microsoft 认证专家资格的相关人员参考。

21,619

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧