svchost.exe是什么进程?为什么系统中有很多在运行?

我想细心的电脑用户应该会在电脑的Windows任务管理器中发现有svchost.exe进程在运行,而且通常情况下svchost.exe进程并非同绝大多数程序那样只显示一个,有时候我们能发现10多个svchost.exe正在运行。那么很多人就有了疑问了,svchost.exe是什么进程?为什么svchost.exe进程会有那么多?它会不会是病毒(因为太多了所以可疑)?既然这是个普遍的问题那么我想应该需要来解答一番了。

svchost.exe是什么进程?

首先我们来了解下svchost.exe进程是从哪里来的。我们可以通过Windows任务管理器对svchost.exe进程的描述来了解到这一信息,如下图所示:

svchost.exe进程的来头

从图中我们可以看到svchost.exe进程是Windows服务主进程,这意味着svchost.exe是Windows系统的一部分,它是安全的核心文件。当然,到目前为止没有理由证明我们可以完全相信Windows任务管理器所显示的信息。我再利用安全工具对系统的进程进行了扫描,安全工具显示svchost.exe进程是来自微软公司的Windows系统,请看下图:

使用安全工具检测svchost.exe的来历

重复检测的目前就是为了说明一个很重要的问题,那就是svchost.exe进程是Windows系统的一部分。我们可以确定了它的来历,这一点很重要,因为这样我们或许可以从官方网站找到一些相关介绍svchost.exe进程的技术文档。不出所料,微软的网站中的中文知识库编号为314056的文件就对svchost.exe进程做了介绍:

svchost.exe是从动态连结程式库(DLL) 执行之服务的一般性主处理程序名称。 当电脑启动时,SVCHOST.EXE会检查登录中的服务部分,以建立一份它需要载入的服务清单。 多个svchost.exe可以同时执行,且每一个svchost.exe工作阶段都可以包含一组服务。

上面所使用的安全工具也在描述栏里面简要介绍了svchost.exe进程,只是图片截图是没截取,我再截取一个看的清楚一些的:

svchost.exe进程的作用

为什么需要svchost.exe进程?

上面来自微软的314056文件对svchost.exe的解释里面提到了一个很核心的东西:DLL。关于DLL文件穆童在以前的那篇《DLL文件怎么打开?及DLL格式文件的作用》文章中也简要提到过。而svchost.exe程序与DLL文件之间的关系密切,为了让Windows的软件编程更为高效及提高运行效率,DLL文件就诞生了。但不能从Windows直接启动DLL文件,这个时候一个专门的svchost.exe进程就诞生了。现在我们能够明白微软314056文件所描述的“svchost.exe会检查登录中的服务部分,以建立一份它需要载入的服务清单”这句话了。我们可是使用第三方的任务管理器工具来查看到这一现象:

svchost.exe进程与DLL文件的关系

我们可以从上图看到,一个svchost.exe进程会加载很多的DLL文件。

为什么会有那么多svchost.exe进程?

我们通过上面推荐的那篇文章会知道,DLL文件的作用就是让特定的某个功能使用一个dll文件以便重用。例如,在Windows操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数,因此每个程序都可以使用该DLL中包含的功能(服务)来实现“打开”对话框,这有助于促进代码重用和内存的有效使用。而如果我们的电脑安装的软件很多,需要开启很多的功能,那么理所当然的我们就需要更多的DLL文件(因为功能就在这里面),而我们也知道DLL文件是无法直接使用的,它需要svchost.exe进程来帮助。所以,功能多的时候svchost.exe进程就会越多。

上面的这一解释也能解答大家关于,为什么Windows XP会比Windows 7系统少很多svchost.exe进程的原因,因为毫无疑问Windows 7系统的功能要比Windows XP强大,所以就会出现这种情况。

好啦,我想介绍到这里应该能够让大家比较清楚的了解到svchost.exe是什么进程以及这个进程的作用及来历啦。当然,如果您对本文的解答有些疑惑不解或者有些好的建议欢迎您留言一起交流。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>