Windows操作系统启动介绍(二)
?這是第二篇,也是最后一篇。主要介紹Windows?Vista/2008/7/2008R2/8/2012的啟動過程,即NT6.X的啟動過程。我這具體用利用Vista為代表說明。
????????一樣的,文字很多時候啰嗦無力,我們還是搞點圖文并茂的,然后適當解說。
?
一般系統所在分區下會有如下的文件或文件夾,下面給予說明:
?Bootmgr:Windows?Nt6?系列的引導管理器,位于主激活分區內,屬于系統隱藏文件。
Boot.bak:boot.ini?的備份,雙系統的時候會存在。?
/boot/[??語言??]/bootmgr.exe.mui:???在主分區??boot??目錄下包括多個語言的??BOOTMGR.EXE.MUI??,用來和??bootmgr??組合形成啟動菜單???
/boot/bcd:相當于??xp??時代的??boot.ini??,不過??bcd??是基于數據庫的,不是基于文本的,也是為了安全性考慮吧。微軟專門提供了一個修改??bcd??的程序??bcdeit??來修改相應的參數???
/boot/bcd.log&bcd.log1&bcd.log2:log?文件。?
/boot/bootstat.dat:引導時候用來記錄引導狀態的數據文件?
/boot/memtest.exe:內存測試工具?
????????最后用文字來解釋一下NT6.X的啟動原理。(正常流程?,?因為還有很多非正常的情況啟動過程有些區別,就不再這里贅述了)??
????????首先加電之后是bios程序啟動,bios自檢完成之后,將mb?的代碼讀入內存,管理權交給mbr,?mbr再讀取dpt,從dpt找出硬盤的所有分區哪一個是激活的主分區。到這里為止,所以系統都是一樣的。下面就有區別了。Dpt?讀完找到主分區之后然后找到這個主分區的pbr?,pbr?位于激活主分區的第一個扇區。安裝不同操作系統的時候pbr是會被改變的,xp的pbr寫的代碼是去找ntldr。而vista及以后的pbr里寫進的就是去找bootmgr。?
????????這個時候顯示器上還沒有顯示引導管理器的界面。Bootmgr被找到之后管理權就交到了bootmgr?。Boot?Manager首先從BCD中讀取Boot?Manager菜單的語言版本信息,然后再調用BOOTMGR與相應語言的BOOTMGR.EXE.MUI組成相應語言的啟動菜單,之后才會在顯示器上顯示引導管理器,也就是選擇多操作系統的那個文字界面。最后,當你選擇了相應的操作系統,這里當然是vista(如果選擇?xp,?會轉入?xp?的啟動流程,找到xp的ntldr然后啟動),bootmgr?就去尋找系統分區(系統分區和主分區的概念不是一樣的哦)windows/system32?下的?winload.exe?加載操作系統內核。剩下的事就是啟動?windows系統了。
????????這里的部分細節可用下圖展示:?
補充知識:
EFI(可擴展固件接口)?
???????可擴展固件接口(英文名Extensible?Firmware?Interface?或EFI)是由英特爾,一個主導個人電腦技術研發的公司推出的一種在未來的類PC的電腦系統中替代BIOS的升級方案。BIOS技術的興起源于IBM?PC/AT機器的流行以及第一臺由康柏公司研制生產的“克隆”PC。在PC啟動的過程中,BIOS擔負著初始化硬件,檢測硬件功能,以及引導操作系統的責任,在早期,BIOS還提供一套運行時的服務程序給操作系統及應用程序使用。BIOS程序存放于一個掉電后內容不會丟失的只讀存儲器中,系統加電時處理器的第一條指令的地址會被定位到BIOS的存儲器中,便于使初始化程序得到執行。
???????UEFI是由EFI1.10為基礎發展起來的,它的所有者已不再是Intel,而是一個稱作Unified?EFI?Form(www.uefi.org)的國際組織,貢獻者有Intel,Microsoft,AMI,等幾個大廠,屬于open?source,目前版本為2.1。現在是它一個開放的技術,國內已經有不少公司為了申請郭嘉"核高基"經費開始研究這個東西。UEFI中圖形化的硬件設置界面是?Intel?為全新類型的?PC?固件的體系結構、接口和服務提出的建議標準。其主要目的是為了提供一組在?OS?加載之前(啟動前)在所有平臺上一致的、正確指定的啟動服務,被看做是有近20多年歷史的PC?BIOS的繼任者。?
?????????可以說,未來將是一個“沒有特定?BIOS”的電腦時代。與傳統BIOS?相比,UEFI最大的幾個特點如下:?
1.?編碼99%都是由C語言完成;?
2.?一改之前的中斷、硬件端口操作的方法,而采用了Driver/protocal的新方式;?
3.?將不支持X86模式,而直接采用Flat?mode(也就是不能用DOS了,現在有些?EFI?或?UEFI?能用是因為做了兼容,但實際上這部分不屬于UEFI的定義了);?
4.?輸出也不再是單純的二進制code,改為Removable?Binary?Drivers;?
5.?OS啟動不再是調用Int19,而是直接利用protocol/device?Path;?
6.?對于第三方的開發,前者基本上做不到,除非參與BIOS的設計,但是還要受到ROM的大小限制,而后者就便利多了。
?
?GPT(全局唯一標識分區表)
????????GPT(Globally?Unique?Identifier?Partition?Table)一種由基于?Itanium?計算機中的可擴展固件接口?(EFI)?使用的磁盤分區架構,GPT是EFI方案的一部分,但并不依賴于EFI主板,在BIOS主板的PC中也可使用GPT分區。與主啟動記錄?(MBR)?分區方法相比,GPT?具有更多的優點,因為它允許每個磁盤有多達?128?個分區,支持高達?18?千兆兆字節的卷大小,允許將主磁盤分區表和備份磁盤分區表用于冗余,還支持唯一的磁盤和分區?ID?(GUID)。
???????與支持最大卷為?2TB?并且與每個磁盤最多有?4?個主分區(或?3?個主分區,1?個擴展分區和無限制的邏輯驅動器)的主啟動記錄?(MBR)?磁盤分區的樣式相比,GUID?分區表?(GPT)?磁盤分區樣式支持最大卷為?18?EB?((1EB=1024PB=1,048,576TB,不過NTFS格式最大僅支持256TB。并且每磁盤最多有?128?個分區)。與?MBR?分區的磁盤不同,至關重要的平臺操作數據位于分區,而不是位于非分區或隱藏扇區。另外,GPT?分區磁盤有多余的主要及備份分區表來提高分區數據結構的完整性。也就是說,如果你有一個超過2TB的磁盤,要完全使用,必須是GPT
轉載于:https://blog.51cto.com/staronmytop/1169569
總結
以上是生活随笔為你收集整理的Windows操作系统启动介绍(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 中文件路径的操作
- 下一篇: 以 vim 的方式来使用 chrome