Windows操作系統作為優(yōu)秀的操作系統,由開發(fā)操作系統的微軟公司控制接口和設計,公開標準,因此,有大量商業(yè)公司在該操作系統上開發(fā)商業(yè)軟件。 我想細心的電腦用戶應該會在電腦的Windows任務管理器中發(fā)現有svchost.exe進程在運行,而且通常情況下svchost.exe進程并非同絕大多數程序那樣只顯示一個,有時候我們能發(fā)現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是從動態(tài)連結程式庫(DLL) 執(zhí)行之服務的一般性主處理程序名稱。 當電腦啟動時,SVCHOST.EXE會檢查登錄中的服務部分,以建立一份它需要載入的服務清單。 多個svchost.exe可以同時執(zhí)行,且每一個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文件的作用就是讓特定的某個功能使用一個dll文件以便重用。例如,在Windows操作系統中,Comdlg32 DLL 執(zhí)行與對話框有關的常見函數,因此每個程序都可以使用該DLL中包含的功能(服務)來實現“打開”對話框,這有助于促進代碼重用和內存的有效使用。而如果我們的電腦安裝的軟件很多,需要開啟很多的功能,那么理所當然的我們就需要更多的DLL文件(因為功能就在這里面),而我們也知道DLL文件是無法直接使用的,它需要svchost.exe進程來幫助。所以,功能多的時候svchost.exe進程就會越多。 上面的這一解釋也能解答大家關于,為什么Windows XP會比Windows 7系統少很多svchost.exe進程的原因,因為毫無疑問Windows 7系統的功能要比Windows XP強大,所以就會出現這種情況。 ?好啦,我想介紹到這里應該能夠讓大家比較清楚的了解到svchost.exe是什么進程以及這個進程的作用及來歷啦。當然,如果您對本文的解答有些疑惑不解或者有些好的建議歡迎您留言一起交流。 Windows操作系統對硬件支持良好。 |
溫馨提示:喜歡本站的話,請收藏一下本站!