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