0 0 Windows啟動過程概述

2021-09-25 20:04:30 字數 1504 閱讀 1458

1.x86和x64引導過程中所涉及的元件

1--mbr:     讀入和載入分割槽的引導扇區;

2--引導扇區:   讀入根目錄,以載入ntldr;

3--ntldr:    讀入boot.ini,提示引導選單,載入ntoskrnl.exe,bootvid.dll,hall.dll和引導啟動的

裝置驅動程式.如果引導的是乙個32位系統,則切換到32位保護模式;

4--ntdetecct:  為ntldr執行硬體檢測;

5--ntbootdd.sys:對於不使用bios的scsi和ata系統,使用該元件作為磁碟i/o的裝置驅動程式;

6--ntoskrnl.exe: 初始化執行體子系統,並且初始化引導-啟動的和系統-啟動的裝置驅動程式,為系統執行

7--hal.dll:    核心模式dll,作為ntoskrnl和驅動程式與硬體的介面;

8--smss.exe:  載入windows子系統,包括win32k.sys和csrss.exe,並且啟動winlogon程序;

9--winlogon.exe:啟動服務控制管理(scm),啟動本地安全子系統(lsass),並且顯示互動式登入對話方塊;

10--scm:    載入並初始化那些自啟動的裝置驅動程式和windows服務;

2.核心載入的實現過程

mbr包含**和資料,其中**稱為引導**,在系統引導時首先獲得控制;

mbr中的資料是一張分割槽表,指定了每個分割槽在磁碟上的位置和大小,以及分割槽的型別.

當mbr中的引導**被執行時候,它檢查分割槽表中的每乙個分割槽,若找到乙個已被標記為可引導的分割槽(稱為引導分割槽),

則將該分割槽的第乙個扇區(稱為引導扇區)讀到記憶體中.

然後mbr將**的控制權交給引導扇區中的**;

引導扇區,給windows提供有關該硬碟上捲的結構和格式方面的資訊,並且讀入和載入ntldr.

然後將控制權交給ntldr.

值得注意的是,單個扇區(512b)的**和資料往往不足以完成其功能.為此,windows讓引導扇區中的**

讀入其他上去的資料,然後跳轉到下乙個扇區的**.這樣的做法相當於蔣第乙個引導扇區當做乙個loader,

而真正完成引導扇區功能的扇區隨後載入進來並執行.

ntldr檔案實際是由兩部分組成的:

第一部分是實模式**,即首先獲得控制的**區;這部分**為切換到保護模式做好準備.然後切換之.

第二部分是乙個標準的pe檔案,在ntldr中,這部分被稱為os loader; osloader是windows真正的32位入口程式.

具體如下:

1.造記憶體描述符陣列

2.對映頁面,設定頁目錄暫存器,開啟記憶體頁面對映機制

3.處理boot.in

4.執行ntdetect.com

5.載入核心模組ntoskrnl.exe,hal.dll和system hive檔案

6.載入引導驅動程式和必要的檔案系統驅動程式

7.構造loader_parameter_block引數塊

8.將控制權交給ntoskrnl.exe的入口函式

APK啟動過程概述

apk啟動過程概述 其流程如下 二.當apk的各種初始化好後,ams會發生乙個啟動預設activity的訊息給activitythread,接著activitythread就開始建立activity,因為activity的作用是於使用者互動,所以每個activity都有乙個對應的window,這裡w...

Windows開機啟動過程

zz from ms webcast 參與啟動過程的軟硬體 按先後順序 1 rom read only memory 中post power on self test 固化在主機板晶元中 2 bios basic input output system,起始位址位於0x7fffffff efi ex...

linux系統啟動過程概述

注 以下是對centos6中執行 man boot 的大致描述 翻譯水平有限,多多包涵 其它分支或許稍有不同。linux系統啟動過程大致可分以下五個步驟 1 硬體啟動。2 系統引導。3 啟動核心。4 執行init程序。5 呼叫啟動指令碼。現在就讓咱們一起來追尋一下這個過程吧!一 硬體啟動 注 沒討論...