Windows2000啟動時載入的系統支援程式 (轉)

worldblog發表於2007-12-12
Windows2000啟動時載入的系統支援程式 (轉)[@more@]

 2000啟動時載入的支援程式
 

 該文章講了一個.exe的啟動過程,文中提到windows explorer.exe是一
切應用的建立者。那麼讀者會想到是誰建立了explorer.exe呢?下面我就就window
s2000平臺來說一說。(我用的是Windows2000Server).
 Windows2000Server啟動時載入程式(Ntldr.dll)將核心載入到中,然後開始
核心,建立系統核心程式和執行緒來完成作業系統內部的初始化。接下來建立的程式就和
我們息息相關了,Windows2000Server提供了一個察看程式之間關係的工具tlist/t命令。下
面我們就看一看這個工具能為我們作什麼。 
C:>tlist/t
 系統過程(0)
 系統(2) 
  smss.exe(20) 
  csrss.exe(30) 
  WINLOGON.exe(34) 
SERVICES.exe(40)
//Userinit.exe 
explorer.exe(87) 
CMD.exe(156) 
TLIST.exe(174) 
看到了吧,系統啟動時建立的大多數支援程式都在這了,下面我就一個一個解釋一下他們的
功用。
(1)System Process(0):其實是系統建立的一個idle程式,它的程式id總為0。該程式和下面
的System程式不是真正執行在使用者態,所以他的名稱因不同的觀察程式而不 同,用tlist/t
得到的名稱 是System Process,該程式是系統的idle執行緒的宿主。
(2)System(2):該程式是核心定義的系統執行緒的宿主,所謂系統執行緒是具有一般使用者執行緒所
有屬性和描述表 (context)的但卻只能執行在核心態的一種特殊執行緒,它不佔用使用者程式
地址空間,必須從系統的記憶體堆中分配動態區。
(3)smss.exe(session manager,會話管理器)其實是系統建立的第一個使用者程式,它由執行在
核心態的核心繫統執行緒ExInitializeSystem建立,它負責執行一些系統的初始化操作,這裡
不詳述,對我們來說他的最大功勞在於它啟動了子系統程式csrss.exe和登入程式WINLOGON.
exe;之後該程式的主執行緒將無限期等待csrss.exe和
WINLOGON.exe兩程式的控制程式碼,如果這兩個程式意外終止,smss.exe將使系統崩潰。
(4)csrss.exe(子系統程式)將負責管理windows2000的主子系統---子系統。
(5)WINLOGON.exe(系統登入程式):負責處理使用者登入和登出的內部活動。其次它負責啟動S
ERVICES.exe---系統程式和LS.exe---本地身份驗證服務程式 ,你可以回顧一
下系統的啟動過程,當登入介面出現後,使用者輸入使用者名稱和密碼,按"確定"後,通知系統登入
程式,要求登入。WINLOGON.exe截獲使用者名稱和密碼,將它們傳送到本地安全身份驗證服務進
程進行驗證,如果確認合法,則建立一個Userinit.exe ----使用者環境初始化程式,它先執行
使用者環境的初始化,然後察看登錄檔中的的值,然後執行該值下的程式(預設為:expl
orer.exe),然後,該程式退出系統,這也是我在上面的Userinit.exe前面加上//的原因,因
為用tlist/t是不能顯示出該程式的。WINLOGON.exe平時是掛起狀態的,但當從鍵盤擷取到c
trl+alt+del時,它將被啟用。
(6)SERVICES.exe:負責啟動/停止windows2000服務(即與服務控制器互動)。
(7)LSASS.exe:接收來自WINLOGON.exe的驗證請求並予以驗證,若成功,將生成一個包含使用者
安全檔案的訪問令牌,WINLOGON.exe隨後將用這個令牌去初始外殼物件(explorer.
exe)建立.然後由該外殼建立的程式都將會默默的繼承該令牌。
(8)explorer.exe程式和其子程式是所有應用程式的建立者。
以上是Windows2000啟動時載入的系統支援程式,這裡也只是簡單介紹一下,希望對讀者們有
幫助。
 bigwhite 
 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991974/,如需轉載,請註明出處,否則將追究法律責任。

相關文章