一、前言
今天起開(kāi)始分享關(guān)于操作系統(tǒng)的相關(guān)知識(shí),本人也是菜鳥(niǎo)一個(gè),正處于學(xué)習(xí)階段,這整個(gè)操作系統(tǒng)篇也是我邊學(xué)習(xí)邊總結(jié)的一些結(jié)果,希望能給正在學(xué)習(xí)或者有意向?qū)W習(xí)操作系統(tǒng)的童鞋帶來(lái)幫助。
二、有關(guān)知識(shí)
在進(jìn)入代碼之前,先給大家普及一些硬件知識(shí),如果你已經(jīng)具備了這方面的知識(shí),可以直接略過(guò)這部份。
1.計(jì)算機(jī)怎么啟動(dòng)操作系統(tǒng)的?
首先,我們思考一個(gè)問(wèn)題,為什么一個(gè)硬盤(pán)安裝系統(tǒng)之后打開(kāi)計(jì)算機(jī)電源之后就能正常加載啟動(dòng)呢?這看起來(lái)似乎很智能,似乎計(jì)算機(jī)像活的一樣會(huì)自動(dòng)去硬盤(pán)中找系統(tǒng)代碼并自行加載。其實(shí)不然,在計(jì)算機(jī)的世界里一切也都是離不開(kāi)規(guī)則的。而基于這些硬件所定的規(guī)則或者協(xié)議,我們將啟動(dòng)代碼放到協(xié)議規(guī)定的地方,這時(shí)候啟動(dòng)就會(huì)加載這部分代碼。聽(tīng)起來(lái)好像有點(diǎn)亂,我們繼續(xù)看。
2.主引導(dǎo)扇區(qū)
很多安裝過(guò)系統(tǒng)的童鞋都應(yīng)該知道引導(dǎo)盤(pán)這個(gè)東西,就是在我們啟動(dòng)電腦的時(shí)候可以通過(guò)bios來(lái)設(shè)定是通過(guò)U盤(pán)啟動(dòng)還是通過(guò)硬盤(pán)啟動(dòng)。對(duì)于硬盤(pán)來(lái)說(shuō),硬盤(pán)的第一個(gè)扇區(qū)是 0 面 0 道 1 扇區(qū),或者說(shuō)是 0 頭 0 柱 1 扇區(qū),這個(gè)扇區(qū)稱為主引導(dǎo)扇區(qū)。如果計(jì)算機(jī)的設(shè)置是從硬盤(pán)啟動(dòng),那么, ROM-BIOS 將讀取硬盤(pán)主引導(dǎo)扇區(qū)的內(nèi)容,將它加載到內(nèi)存地址 0x0000:0x7c00 處(也就是物理地址 0x07C00),然后 jmp 跳到那里接著執(zhí)行: