關于Win7開機的原理的介紹
關于Win7開機的原理的介紹
每個用電腦的人都知道如何開機~但是你們知道Win7開機的原理是什么么?那么現(xiàn)在就由學習啦小編給大家介紹一下Win7開機的原理:具體內容如下:
1、開啟電源
計算機系統(tǒng)將進行加電自檢(POST)。如果通過,之后BIOS會讀取主引導記錄(MBR)——被標記為啟動設備的硬盤的首扇區(qū),并傳送被 Windows 7建立的控制編碼給MBR。
這時,Windows接管啟動過程。接下來:MBR讀取引導扇區(qū)-活動分區(qū)的第一扇區(qū)。此扇區(qū)包含用以啟動Windows啟動管理器(Windows Boot Manager)程序Bootmgr exe的代碼。
2、啟動菜單生成
Windows啟動管理器讀取“啟動配置數(shù)據(jù)存儲(Boot Confi guration Data store)中的信息。此信息包含已被安裝在計算機上的所有操作系統(tǒng)的配置信息,并且用以生成啟動菜單。
3、當您在啟動菜單中選擇下列動作時
<1> 如果您選擇的是Windows 7(或Windows Vista),Windows 啟動管理器(Windows Boot Manager)運行%SystemRoot%\System32文件夾中的OS loader——Winload.exe。
<2> 如果您選擇的是自休眠狀態(tài)恢復Windows 7 或 Vista,那么啟動管理器將裝載Winresume.exe并恢復您先前的使用環(huán)境。
<3> 如果您在啟動菜單中選擇的是早期的Windows版本,啟動管理器將定位系統(tǒng)安裝所在的卷,并且加載Windows NT風格的早期OS loader(Ntldr.exe)——生成一個由boot.ini內容決定的啟動菜單。
4、核心文件加載及登錄
Windows7啟動時,加載其核心文件 Ntoskrnl.exe和hal.dll——從注冊表中讀取設置并加載驅動程序。接下來將運行Windows會話管理器(smss.exe)并且啟動 Windows啟動程序(Wininit exe),本地安全驗證(Lsass.exe)與服務(services.exe)進程,完成后,您就可以登錄您的系統(tǒng)了。
5、登陸后的開機加載項目
OK,我們進入了Win7系統(tǒng)的登陸畫面,地球人都知道,當然,還有很多用戶朋友們用Win7優(yōu)化大師中內置的美化大師把這兒改成了個性化的畫面。
當您輸入您的用戶名和密碼,登陸進入您的系統(tǒng)那一刻,硬盤吱嘎的叫聲(此處不涉及SSD型硬盤)和硬盤燈的再次閃亮提醒您:系統(tǒng)正在加載您這個賬戶的個人專用設置文件,正在加載當前電腦和當前用戶所指定的一些開機啟動項目內的軟件。這是眾多軟件(包括木馬病毒)最喜歡的地方,什么QQ、MSN、殺毒軟件的不說,連電驢和vagaa和一些播放器等等啥的也不放過這些地方,畢竟他們要靠這兒來常駐您的桌面右下角和內存之中,方便進行正當?shù)暮筒徽數(shù)囊恍┕ぷ?此處指的是某些流氓和惡意軟件)。當這些加載完畢,您才算真正進入了您的Windows桌面,日常娛樂和工作生活才得以開始。
如果你還是不懂開機原理,或者你用的不是Win7系統(tǒng)。不過沒關系,學習啦小編這里還有一個關于全部電腦開機原理的資料可以分享給你:
BootMgr(啟動管理器)是Boot Manager的縮寫。在微軟的Vista、Windows Server 2008和Windows 7操作系統(tǒng)中,啟動過程與從前的以NT為內核的windows版本略有不同。BootMgr就相當于NT/2000/XP時代的NTLDR。
電腦加電后首先啟動BIOS程序。BIOS自檢完畢后,找到硬盤上的主引導記錄MBR,MBR讀取DPT(分區(qū)表),從中找出活動的主分區(qū),然后讀取活動主分區(qū)的PBR(分區(qū)引導記錄,也叫DBR),PBR再搜尋分區(qū)內的啟動管理器文件BootMgr,并將控制權就交給它。BootMgr讀取\boot\bcd文件(BCD=Boot Configuration Data,也就是“啟動配置數(shù)據(jù)”,簡單地說,windwows7下的BCD文件就相當于xp下的boot.ini文件),如果存在多個操作系統(tǒng)并且選擇操作系統(tǒng)的等待時間不為0的話,這時就會在顯示器上顯示操作系統(tǒng)的選擇界面。在選擇啟動Windows 7后,BootMgr就會去啟動盤尋找Windows\system32\winload.exe,然后通過winload.exe加載windows 7內核,從而啟動系統(tǒng)??梢园堰@個過程簡單地概括為:BIOS-->MBR-->DPT-->PBR-->BootMgr-->BCD-->Winload.exe-->內核加載-->整個windows7系統(tǒng)。
可以說BootMgr就相當于NT/2000/XP的NTLDR。NTLDR是一個隱藏的、只讀的引導系統(tǒng)文件,位于系統(tǒng)盤的根目錄。它的主要職責是解析Boot.ini文件,用來裝載操作系統(tǒng)。一個值得注意的變化是,Windows 7啟動管理器是按空格鍵而不是按F8功能鍵調用。 F8鍵依然具有調取高級啟動選項菜單的功能。為了保持一個可擴展固件接口系統(tǒng),也為了使版本最高的啟動管理器負責管理所有的操作系統(tǒng),使啟動管理器具備向下兼容、而不是向上兼容,Windows啟動管理器對已安裝的所有操作系統(tǒng)統(tǒng)一列為一個可供選擇的菜單,在配置Windows Vista/Server 2008與Windows 2000/XP/Server 2003 的多系統(tǒng)共存時,BootMgr將全面負責計算機的啟動管理工作,NTLDR將淪為BootMgr的替補。舉個例子,假設配置了Windows Vista、Windows XP、Windows Server 2008、Windows Server 2003四個操作系統(tǒng)共存,BootMgr啟動菜單并不會把Windows XP與Windows Server 2003分別列在啟動菜單里,而是將它們統(tǒng)一顯示為“早期版本的Windows”。
啟動配置數(shù)據(jù)(BCD)是一種用于啟動時的配置數(shù)據(jù)固件獨立數(shù)據(jù)庫。它取代了NTLDR中的boot.ini,由微軟新的Windows啟動管理器使用。啟動配置數(shù)據(jù) (BCD) 存儲包含啟動配置參數(shù),并在Microsoft(R) Windows Vista® 和 Microsoft(R) Windows Server® 2008 操作系統(tǒng)中控制操作系統(tǒng)的啟動方式。這些參數(shù)以前位于Boot.ini 文件中(在基于 BIOS 的操作系統(tǒng)中)或穩(wěn)定 RAM (NVRAM) 項中(在基于可擴展固件接口的操作系統(tǒng)中)。通過在 BCD 存儲中添加、刪除、編輯和附加項,可以使用 Bcdedit.exe 命令行工具來影響在預操作系統(tǒng)環(huán)境中運行的 Windows(R) 代碼。Bcdedit.exe位于 Windows Vista 分區(qū)的 \Windows\System32 目錄中。創(chuàng)建 BCD 旨在為描述啟動配置數(shù)據(jù)提供一種改進的機制。隨著新固件模型 (例如,可擴展固件接口 (EFI))的發(fā)展,用戶需要一個可擴展且可互操作的接口以提取底層固件。這一全新的設計為Vista中的多種新功能(例如,啟動修復工具和多用戶安裝快捷方式)提供了支持。
微軟的新一代操作系統(tǒng)Windows 7,然而這個7并不是代表Windows 7的核心版本已經(jīng)從Windows Vista 的NT 6 升級至 NT 7,而只是代表Windows 7是微軟正式發(fā)行的桌面Windows第七代產(chǎn)品而已。Windows 7 真正的核心版本號僅僅是NT 6.1,Windows 7與 Vista 的關系好比是Windows XP(NT 5.1)與 Windows 2000(NT 5.0)。時隔多年,微軟又一次與我們玩起了文字游戲,以至于有人將Windows 7戲稱為“NT 6.1 = Windows 非常 6+1 = Windows 7”。 為了更為直觀地理解Windows 7 = NT 6+1,不妨從 Windows啟動管理器的層面看待這個問題。與容易混淆的Windows正式產(chǎn)品名稱相比,啟動管理器一直是嚴格按照Windows系統(tǒng)的核心版本加以區(qū)分的。這是由于在配置多操作系統(tǒng)共存時,必須由版本最高的啟動管理器負責管理所有的操作系統(tǒng),啟動管理器只具備向下兼容、不具備向上兼容性。因此,啟動管理器的版本必須嚴格按照高低先后的順序正確排列,而不能像Windows的正式名稱一樣胡亂設置,否則便有可能無法正確配置多操作系統(tǒng)共存。
例如,Windows 2000/XP/Server 2003之所以都叫做NT 5.X,是因為它們的啟動管理器全部都是NTLDR 與BOOT.INI。在配置 2000/XP/Server 2003彼此之間的多系統(tǒng)共存時,每一個操作系統(tǒng)都是由NTLDR與BOOT.INI統(tǒng)一管理的,大家是平起平坐的關系。而做為NT 6.X的Windows Vista/Server 2008則采用了BootMgr與BCD的新式啟動管理器,在配置Vista/Server 2008與2000/XP/Server 2003的多系統(tǒng)共存時,BootMgr將全面負責計算機的啟動管理工作,NTLDR淪為BootMgr的替補。舉個例子,假設配置了Vista、XP、Windows Server 2008、Windows Server 2003四個操作系統(tǒng)共存,BootMgr啟動菜單并不會把Windows XP與 Windows Server 2003 分別列在啟動菜單里,而是將它們統(tǒng)一顯示為“早期版本的 Windows”。只有做為 NT 6.X 的Vista與 Windows Server 2008 才有資格在BootMgr啟動菜單中以獨立選項的姿態(tài)出現(xiàn)。我們只有選擇了“早期版本的 Windows”選項,由BootMgr將啟動控制權移交給 NTLDR并自動切換為NTLDR 菜單,這時才可以繼續(xù)選擇需要啟動Windows XP還是Windows Server 2003。換言之,NTLDR啟動菜單就像是BootMgr啟動菜單的子菜單一樣。
現(xiàn)在再來看一下Windows 7,當在安裝有Vista/Server 2008的計算機中安裝了Windows 7后,Windows 7會將自己添加在BCD 里,與原有的Windows Vista/Server 2008實現(xiàn)共存,BootMgr啟動菜單將顯示W(wǎng)indows 7、Windows Vista/Server 2008 及早期版本的 Windows(如果有的話)三個選項。換言之,Windows 7采用的啟動管理器依然是BootMgr與BCD,它與Windows Vista/Server 2008 是一個平起平坐的關系。
假如Windows 7的核心版本叫做NT 7的話,那么它應該拿出一個比BootMgr與BCD更高版本的啟動管理器才對,由這個新的啟動管理器接管BootMgr與BCD的工作。當然,目前在現(xiàn)實中是不存在這樣一個啟動管理器的,不妨將其假設為Loader v7。那么,當安裝了Windows NT 7系統(tǒng)后,Loader v7將自動取代BootMgr與BCD負責計算機的啟動管理,到時候只有符合NT 7.X版本的Windows 系統(tǒng)才有資格以獨立選項出現(xiàn)在Loader v7菜單中,Windows Vista/Server 2008將被統(tǒng)一顯示為“早期版本的 Windows”、Windows XP/Server 2003則將被顯示為“更早期版本的 Windows”(當然,如果幾年以后真的有Loader v7,到時它究竟還能否向下兼容 Windows XP/Server 2003恐怕很難說了)。
現(xiàn)在,Windows 7雖然正式名稱叫做7,但是它并沒有拿出這樣一款更高級的啟動管理器,依然只能依靠BootMgr與BCD、同 Windows Vista/Server 2008 平起平坐,因此 Windows 7的核心版本號還沒有資格提升到NT 7的高度,最多只能叫做NT 6.1。可以預見在今后的三五年內,我們的計算機都將長期使用BootMgr與BCD。就像Windows 2000/XP/Server 2003可以并列在一起成為NT 5.X 系列一樣、Windows Vista/Server 2008(R2)/Windows 7也可以并列在一起組成一個相對完整的 NT 6.X 家族。
現(xiàn)有的BootMgr與BCD雖然已經(jīng)很好用,但有一個最大的缺陷就是它始終還是基于純字符界面的、不是一個支持鼠標操作的 GUI界面,叫做Windows未免有些名不副實。其它操作系統(tǒng)可是早就實現(xiàn)圖形方式的啟動管理器了,這不得不說是一個遺憾。試想如果開機自檢后可以出現(xiàn)一個圖形化的啟動界面,通過鼠標點擊按鈕選擇操作系統(tǒng)以及安全模式等選項該有多好,期待將來可以實現(xiàn)。目前只有使用ERD Commander等第三方啟動管理器軟件才可以實現(xiàn)這個目的。