剖析Windows系统服务调用机制

剖析Windows系统服务调用机制

ID:47108815

大小:40.00 KB

页数:7页

时间:2019-08-05

剖析Windows系统服务调用机制_第1页
剖析Windows系统服务调用机制_第2页
剖析Windows系统服务调用机制_第3页
剖析Windows系统服务调用机制_第4页
剖析Windows系统服务调用机制_第5页
资源描述:

《剖析Windows系统服务调用机制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、剖析Windows系统服务调用机制一>序言  Windows系统服务调用是存在于Windows系统中的一个关键接口,常常称作SystemCall,SysemServiceCall或SystemServiceDispatching等,在此我们就权且称之为Windows系统服务调用,它提供了操作系统环境由用户态切换到内核态的功能。虽然在国外关于Windows系统服务调用的讨论比较多,但却很少看到比较详细的中文资料,希望本文能够为和作者一样对Windows底层感兴趣并且是刚刚接触的朋友提供一些帮助。文章

2、中将以一个内核级的进程监视/隐藏工具T-ProcMon为例来详细讨论Windows系统服务调用的相关技术细节。另需注意本文讨论的技术仅适用于基于WindowsNT内核的操作系统,并以Windows2000为例。  二>Windows2000系统体系结构  微软Windows2000是一个主要面向网络服务器的操作系统,因此它和以前大家比较熟悉的Windows9x有很大的区别。但是对于讨论一个因商业策略而出现的个人桌面操作系统的确没有太大的价值。所以我们将主要介绍一些关于NT系统内部结构的细节。Win

3、dows2000在实现其自身目标的过程中,我们有必要讲解一些它的特性。  1.可扩展性(Extensibility)  Windows2000操作系统是一个面向未来的系统,所以它非常注重自身的扩展性,因为在将来可能有许多市场等方面的原因导致我们必须添加或删除目前操作系统的一些组件,这就必须要求操作系统有较强的可扩展性。为了满足扩充/删除的各种需求,Windows2000提供了一个重要的设计思想就是子系统(Subsystem)。我们可以将一些需要扩展的操作系统功能作为一个子系统添加到Windows2

4、000内,就像OS/2,POSIX等一样。当然还有一个特性就是,我们可以通过为系统服务调用添加钩子来修改系统的各项行为,这就为我们提供了一个了解系统内部并扩展系统功能的机会。  2.可靠性和健壮性(ReliabilityandRobust)  一个系统存在的最基本的要求就是它的稳定性,没有稳定的环境就做不出任何满意的产品。为了满足这项要求,Windows2000提出了基于对象的访问控制权限的措施。现代的大多数微处理器都支持两种模式:用户模式(User/Normal)和内核模式(Kernel/Pri

5、vileged)。操作系统组件和关键的系统组件处于内核模式,而一般用户模式的程序只能访问私有地址空间和执行非特权等级的指令。如果用户要调用一些内核组件的功能,就得通过系统服务调用来实现。  3.兼容性(Compatibility)  Intel和Microsoft能够做到今天的一个很重要的因素就是他们支持对过去存在系统的兼容。这一点非常的关键,没有人愿意三天两头的更换系统,当然也很少有人有这个经济实力。Windows2000为了实现对其他系统的兼容,如Dos,16位Windows等,出现了环境子系

6、统。而在Windows2000中必须存在的环境子系统是Win32,它是其他子系统的基础,其他子系统都是一些表面的接口,而实际上是调用了Win32提供的接口,而Win32最终也是通过系统服务调用来与内核联系的。虽然操作系统为各种环境子系统提供了不同的动态链接库,而且其中的API函数名称往往也是不同的,不过这个函数的最终都是通过相同的系统服务调用进入内核来实现的。    4.易维护性(Maintainability)  作为一个大型的项目,Windows2000的维护也成为了一个大型的工程。而如此巨大

7、的项目没有很好的维护性是无法发展下去的。为此,Windows2000使用了分层的思想,这也是一种操作系统体系结构模型。其中,系统服务调用将系统的内核模式代码和用户模式代码隔离开来,子系统使用系统服务调用为用户提供应用程序编程接口(API),而系统服务调用向下调用执行体实现各项功能。  就像在上文我们提到的操作系统存在的两种模式,这是建立在处理器的基础之上的。按理说,一般处理器可以提供从Ring0到Ring3的四种处理器模式,但是它们必须提供至少两种,那就是Ring0和Ring3。而一些特殊处理器指

8、令只能在内核模式执行,而一些地址空间必须在内核模式才可以被访问。Windows2000就利用了这个特点,将操作系统和其他关键组件保护起来,只有在内核模式才可以访问执行,而一般的用户程序就只能在用户态执行咯,这样就可以避免一些用户程序对操作系统代码的破坏,也就是大家看到的Windows2000明显比Windows9x稳定得多的主要原因。下面我们给出了Windows2000的体系结构简图:  系统支持进程,服务进程,应用程序,环境子系统  应用程序编程接口  基于NTDLL.dll的本

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。