日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

我們每天都在和windows打交道,很多人可能每天都要面對多次Windows的啟動過程,可是您知道在Windows的啟動過程背后,隱藏著什么秘密嗎?在這一系列過程中都用到了哪些重要的系統(tǒng)文件?系統(tǒng)的啟動分為幾個步驟?在這些步驟中計算機中發(fā)生了什么事情?這些就是本文試圖告訴您的。

隨著技術(shù)的發(fā)展,我們能夠見到的計算機硬件種類越來越多。以計算機上最重要的組件CPU來說,目前就有很多選擇。當(dāng)然,這里的選擇并不是說AMD或者Intel這種產(chǎn)品品牌,而是指其內(nèi)部的體系結(jié)構(gòu)。目前常見的CPU體系結(jié)構(gòu)主要基于復(fù)雜指令集(Complex Instruction Set Computing,CISC)或者精簡指令集(Reduced Instruction Set Computing,RISC),我們常用的Intel的Pentium、Celeron系列以及AMD的Athlon、Sempron系列都是基于復(fù)雜指令集的,而這些基于復(fù)雜指令集的CPU還有32位和64位的寄存器數(shù)據(jù)帶寬區(qū)別。關(guān)于這些指令集以及寄存器數(shù)據(jù)帶寬之間的區(qū)別等內(nèi)容比較繁雜,而且不是本文的重點,感興趣的朋友可以自己在網(wǎng)上搜索相關(guān)內(nèi)容。因為CPU種類的不同,在不同CPU的系統(tǒng)中運行的Windows的啟動過程也有一些小的不同。

基本上,操作系統(tǒng)的引導(dǎo)過程是從計算機通電自檢完成之后開始進行的,而這一過程又可以細分為預(yù)引導(dǎo)、引導(dǎo)、載入內(nèi)核、初始化內(nèi)核,以及登錄這五個階段。

系統(tǒng)引導(dǎo)的不同階段所引用的文件如下:


預(yù)引導(dǎo):
       這個過程就是當(dāng)用戶按下電源開關(guān)進行冷啟動所要完成的各種初始化工作,在這文檔中,并不打算很祥細的講解硬件方面的初始化,如果讀者有興趣的話,可以查閱相關(guān)資料,我覺得 《電腦及操作系統(tǒng)的啟動過程》這個還是不錯的。

MBR(MAIn BootRecord):
       好了,我們跳過加電自檢,繼續(xù),當(dāng)計算機完成了加電自檢之后,系統(tǒng)BIOS根據(jù)用戶配置的指定順序從相關(guān)的介質(zhì)啟動,當(dāng)然,我們這里分析的是硬盤的。計算機就會檢查磁盤的第0磁道0磁頭1扇區(qū),如果發(fā)現(xiàn)它以0xAA55結(jié)尾,則BIOS認為它是一個引導(dǎo)扇區(qū)(所以主引導(dǎo)扇區(qū)位于整個硬盤的0磁道0磁頭1扇區(qū)),然后將這512B的內(nèi)容加載到內(nèi)存0000:7c00處執(zhí)行。
       Windows操作系統(tǒng)獲得控制權(quán)應(yīng)該就是從這里開始的吧,一般MBR是在WindowsSetup程序在安裝Windows時填充的。
       其實主引導(dǎo)記錄的作用就是檢查分區(qū)表是否正確以及判別哪個分區(qū)為可引導(dǎo)分區(qū),并在程序結(jié)束時把該分區(qū)的啟動程序(也就是操作系統(tǒng)引導(dǎo)扇區(qū))調(diào)入內(nèi)存加以執(zhí)行。
       在真正開始看MBR的代碼時,我們先來了解一下MBR的結(jié)構(gòu)。

如圖:

  上面提到了Windows磁盤簽名,這里講解一下,Windows磁盤簽名是Windows系統(tǒng)在對硬盤做初始化時寫入的一個標簽,它是MBR扇區(qū)不可或缺的一個組成部分。Windows系統(tǒng)依靠這個簽名來識別硬盤,如果硬盤的簽名丟失,Windows系統(tǒng)就會認為該硬盤沒有初始化。
  因為MBR代碼部分會對DPT(分區(qū)表)進行解析,所以這里再講一下DPT的結(jié)構(gòu):

       看到上面這表,可能讀者會問,為啥用了10位來記錄柱面號呢?
       其實這是歷史問題了,早期的硬盤是通過磁頭、柱面、扇區(qū)對硬盤進行訪問的,磁頭數(shù)表示硬盤總共有幾個磁頭,也就是有幾張盤,最大為255(剛好一個字節(jié)可以存下,8位),柱面數(shù)表示硬盤每一面盤片上有幾條柱面,最大為1023(10位了),扇區(qū)數(shù)表示每一條磁道上有幾個扇區(qū),最大為63(6位)。

MBR代碼分析:

       這一段代碼實現(xiàn)了將內(nèi)存中的MBR搬到安全的內(nèi)存地址處,并通過push以及retf指令實現(xiàn)跳轉(zhuǎn),將執(zhí)行權(quán)交給MBR繼續(xù)執(zhí)行。不過這里做了一個小小的優(yōu)化,沒有將當(dāng)前正在執(zhí)行、且以后用不到的這個入口函數(shù)給優(yōu)化掉了,在拷備的過程中沒有進行拷備。

       這段代碼對分區(qū)表進行檢測,檢測到某分區(qū)表項引導(dǎo)標識符小于0。小于0的話跳去CheckAnother,大于0的話跳去CannotBoot。因為前面的表格已經(jīng)說明了,引導(dǎo)標識符只能為00H或80H,在這里80H其實是負數(shù),所以如果標識符為80H的話,走的是上面CheckAnother分支。如果四個分區(qū)項的標識符都為0的話,就調(diào)用int 18H,跳入ROM BASIC。


DBR:
引導(dǎo)扇區(qū)中的代碼隨硬盤文件系統(tǒng)格式的不同而有所不同,其職責(zé)是,給windows提供有關(guān)該硬盤上卷結(jié)構(gòu)和格式方面的信息,并且從該卷的根目錄中讀入windows的加載程序,即ntldr文件;然后將控制權(quán)交給ntldr的入口函數(shù)。為了能夠從根目錄中讀入加載程序,引導(dǎo)扇區(qū)包含了能理解文件系統(tǒng)結(jié)構(gòu)和讀取文件的代碼,這通常只是文件系統(tǒng)極其簡單的一部分功能,而并非完整的實現(xiàn)。

分享到:
標簽:Windows
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定