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 呼叫啟動指令碼。現在就讓咱們一起來追尋一下這個過程吧!一 硬體啟動 注 沒討論...