我想细心的电脑用户应该会在电脑的Windows任务管理器中发现有svchost.exe进程在运行,而且通常情况下svchost.exe进程并非同绝大多数程序那样只显示一个,有时候我们能发现10多个svchost.exe正在运行。那么很多人就有了疑问了,svchost.exe是什么进程?为什么svchost.exe进程会有那么多?它会不会是病毒(因为太多了所以可疑)?既然这是个普遍的问题那么我想应该需要来解答一番了。
svchost.exe是什么进程?
首先我们来了解下svchost.exe进程是从哪里来的。我们可以通过Windows任务管理器对svchost.exe进程的描述来了解到这一信息,如下图所示:
从图中我们可以看到svchost.exe进程是Windows服务主进程,这意味着svchost.exe是Windows系统的一部分,它是安全的核心文件。当然,到目前为止没有理由证明我们可以完全相信Windows任务管理器所显示的信息。我再利用安全工具对系统的进程进行了扫描,安全工具显示svchost.exe进程是来自微软公司的Windows系统,请看下图:
重复检测的目前就是为了说明一个很重要的问题,那就是svchost.exe进程是Windows系统的一部分。我们可以确定了它的来历,这一点很重要,因为这样我们或许可以从官方网站找到一些相关介绍svchost.exe进程的技术文档。不出所料,微软的网站中的中文知识库编号为314056的文件就对svchost.exe进程做了介绍:
svchost.exe是从动态连结程式库(DLL) 执行之服务的一般性主处理程序名称。 当电脑启动时,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文件的作用就是让特定的某个功能使用一个dll文件以便重用。例如,在Windows操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数,因此每个程序都可以使用该DLL中包含的功能(服务)来实现“打开”对话框,这有助于促进代码重用和内存的有效使用。而如果我们的电脑安装的软件很多,需要开启很多的功能,那么理所当然的我们就需要更多的DLL文件(因为功能就在这里面),而我们也知道DLL文件是无法直接使用的,它需要svchost.exe进程来帮助。所以,功能多的时候svchost.exe进程就会越多。
上面的这一解释也能解答大家关于,为什么Windows XP会比Windows 7系统少很多svchost.exe进程的原因,因为毫无疑问Windows 电脑7系统的功能要比Windows XP强大,所以就会出现这种情况。
电脑