系統的啟動過程

2021-08-26 11:23:49 字數 2421 閱讀 7211

系統的啟動過程

1、當你按下開機鍵時,最早是由主機板bios蕊片中的bios程式來執行硬體檢測任務的,如果檢查過程中發現關鍵硬體的故障,就會發出特定的響聲通知使用者,並停止啟動。而bios程式是**來的呢?這是在主機板出廠時固化在晶元中的一段程式。

2、當硬體沒有問題時,bios程式就會讀入硬碟的主引導記錄,將下面的任務交給主引導記錄**去完成。而主引導記錄又是**來的呢?這是在安裝作業系統時對磁碟進行分割槽格式化操作時,寫到硬碟中的。如果找不到主引導記錄,會出錯停止,告訴你這是非法的系統啟動盤。

3、主引導記錄**的工作是讀入磁碟主分割槽的根目錄,在裡面讀出ntldr檔案,並裝入記憶體,然後將控制權交給它。注意看一下,你的硬碟根目錄下是不是有個ntldr檔案?這個檔案的屬性是隱藏、系統,所以檢視時要選擇檢視所有,且不隱藏被保護的系統檔案才可看到。這個檔案是**來的?呵,當然是安裝作業系統時拷貝到硬碟上的,下面提到的檔案都是在安裝作業系統時拷上去的。如果沒能找到ntldr檔案,則會停止啟動,顯示ntldr沒找到的錯誤資訊。

4、ntldr又做了些什麼呢?它會將系統由原來的16位實模式切換到32位保護模式或64位長模式。它的工作是讀取根目錄下的boot.ini檔案,顯然引導選單,在多作業系統的計算機中,可以看到這個選單。接著它會清屏,並在win2000下顯示乙個黑白的進度條,在xp下顯示xp的標誌圖同時顯示下面不斷滾動的藍色進度條,提示你它正在載入一些重要的檔案。它在載入什麼呢?它首先會載入ntoskrnl.exe、hal.dll,如果這兩個檔案找不到會出錯停機,並顯示找不到相應檔案的資訊。接著它讀入登錄檔的system鍵檔案,從中找出自動啟動的各類驅動程式,這是很關鍵的,因為有些核心級的木馬就是在這時啟動的。每載入乙個螢幕上的進度條就滾動一下子。中間如果某個驅動出問題,也可能會導至系統藍屏崩潰。

5、接下來的工作由ntoskrnl.exe(或ntkrnlpa.exe)來進行,這是核心程式,它做的工作實在是太多了,這裡就不再細說了。它的最後一步工作就是建立會話管理子系統,也就是我們上面說過的,由system程序建立的smss.exe程序。

6、smss.exe程序負責建立使用者模式環境,由使用者模式環境向windows提供可視的視窗介面。

它會執行bootexecute中定義的程式,正常情況下是autochk,乙個檢查磁碟的程式。但有些防毒軟體會把自己的程式加到這裡,來實現引導時防毒,如果您的系統安裝了江民類的防毒軟體,那麼此時就會執行它的引導期防毒程式,就是進入系統前出現的藍底藍字的病毒掃瞄視窗。

smss.exe還會執行sessionmanager中的檔案刪除、移動操作,也就是呼叫api:movefileex並選擇重啟後移除檔案的,就是在這個環節執行了。當前有很多號稱可以刪除一切檔案的安全工具都使用了movefileex來實現檔案的刪除,但是現在我們可以知道了,它的檔案刪除是在這個階段執行的,而這時驅動程式已經載入了,所以用它們來清除驅動級的木馬顯然是不勝任的。

建立附加的頁面檔案。

再然後呢,就是啟動我們上面說過的那兩個程序了。就是csrss.exe與winlogon.exe程序。

啟動完這兩個程序後,smss.exe就進入了無限的等待,它在等什麼呢?它在等它建立的csrss.exe與winlogon.exe,等著看這兩個程序什麼時候死掉,一旦他們中有死掉的,smss.exe馬上,讓系統徹底崩潰。(在xp以後csrss的死亡是由核心使系統崩潰的,而不是smss.exe),所以千萬不要結束系統程序。

csrss.exe是做什麼的呢?它負責的工作是建立或刪除程序、執行緒,控制台與虛擬dos機的支援等。它到此就開始工作了,不再參於後面的啟動過程。但是winlogon.exe還有很多任務作要做呢,我們接下來看看後面的啟動過程。

7、winlogon.exe是做什麼的呢?看它的名字應該看出個大概了吧。是的,它是與登入相關的,但現在還不到顯示登入視窗的時候,它還要先啟動services.exe及lsass.exe程序,然後讀取登錄檔ginadll中標明的dll,由這個dll來顯示乙個登入對話話,也就是我們在進入系統時輸入使用者名稱與口令的視窗。

為什麼要先啟動lsass.exe呢?因為,這是本地安全認證子系統,負責的就是本機系統的安全,使用者名稱與口令的驗證工作是由它來進行的。

還有乙個我們上面提到過的程序也是這個時候由winlogon.exe來啟動的,是哪乙個呢?就是那個userinit.exe,這是在使用者登入進系統後,winlogon.exe啟動此程序來進行使用者初始化。你也可以自己加乙個程式與userinit.exe放在一起,那麼,在這個時候winlogon.exe會將那一位置的所有程式都啟動起來。

當然了,相信你也想到了,這個還有那個ginadll也就成了木馬啟動的乙個可選位置。

8、最後,由winlogon.exe啟動的services.exe開始載入標明為自啟動的各個服務,及標明為手動的卻是有必要載入的服務(它所做的工作我們在後面細講)。

9、而userinit.exe呢,它在完成使用者初始化後,就啟動了explorer.exe,並功成身退。

10、最後,explorer.exe就成了我們的服務員,等待在那裡靜候我們的指令,聽從我們的吩咐,進行相關程式的啟動與功能的處理。

系統啟動 過程

系統啟動 1 系統加電 2 bios 自檢 本地裝置列舉和初始化 3 post 從記憶體中清除,但執行時服務 runtime service 仍然留在記憶體。4 bios 從 cmos 的設定中找出第1 2 3 啟動裝置 可能有第4個 然後逐個嘗試,並在第乙個 active 狀態的硬碟上讀入其 mb...

系統啟動過程

linux 啟動過程 linux 啟動過程有以下的步驟 bios boot sequence mbr master boot record 1 sector,512 bytes bootloader kernel init etc inittab etc rc.local login。以下我將對以上...

Linux系統的啟動過程

linux的啟動過程 這裡先給乙個簡單的概述,後面再是詳述 a.位於rom的bios首先加電自檢,然後裝載mbr內容到ram,將控制權交給ram中的bootloader 比如grub b.bootloader進行自身的多階段引導,裝載一些檔案系統的驅動等,最後將核心裝載入ram c.核心首先執行,然...