五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

操作系統(tǒng)開(kāi)發(fā)教程#02

2023-04-16 22:00 作者:DiannaoJun  | 我要投稿

在上一篇文章中,我們已經(jīng)基本了解了什么是操作系統(tǒng)以及操作系統(tǒng)需要擁有什么。那么今天就讓我們正式切入正題——操作系統(tǒng)的開(kāi)發(fā)。

大家有沒(méi)有想過(guò),被安裝在軟盤(pán)(為了教學(xué)方便,前期示例以軟盤(pán)為載體,這里也可以是其他什么介質(zhì))上的操作系統(tǒng)在電腦上電后是如何開(kāi)始運(yùn)行的呢?

大體步驟是這樣的:

1.??????? 電腦上電后開(kāi)始執(zhí)行ROM里的BIOS(Basic Input/Output System,基本輸入/輸出系統(tǒng))程序,對(duì)你的電腦進(jìn)行初始化。

2.??????? BIOS將裝有操作系統(tǒng)的磁盤(pán)的第一個(gè)扇區(qū)裝入0x7c00【1】的位置

3.??????? CPU跳轉(zhuǎn)到0x7c00的位置開(kāi)始執(zhí)行IPL【2】

4.??????? 然后你的操作系統(tǒng)就跑起來(lái)了

那么,我們現(xiàn)在知道我們需要做什么了——寫(xiě)一個(gè)IPL程序并放在磁盤(pán)鏡像的第一個(gè)扇區(qū)里:

樣例代碼如下【3】:





【1】:關(guān)于為什么是這個(gè)位置。我們知道0x8000-0x0400=0x7c00,即32KB-1KB的位置。由于最初的DOS設(shè)計(jì)內(nèi)存為32KB,而這里為高端未使用的1KB,故而就將這里的1KB分成兩個(gè)512B,一個(gè)(0x7c00的位置)用來(lái)存放引導(dǎo)扇區(qū)(這里一個(gè)扇區(qū)512B),另一個(gè)(0x7e00的位置)用來(lái)存放執(zhí)行IPL程序所產(chǎn)生的數(shù)據(jù)(變量等)。

【2】:Initial Program Loader的縮寫(xiě),即“初始程序裝入程序”。

【3】:本欄目匯編語(yǔ)言編譯器使用NASM version 2.15.05,C語(yǔ)言編譯器采用gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04),make使用GNU Make 4.3,ld使用GNU ld (GNU Binutils for Ubuntu) 2.38,編譯環(huán)境使用Ubuntu22.04LTS






操作系統(tǒng)開(kāi)發(fā)教程#02的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
留坝县| 布拖县| 磐石市| 庄河市| 四会市| 洞头县| 武汉市| 正安县| 泰兴市| 墨竹工卡县| 府谷县| 城口县| 永定县| 资兴市| 周口市| 垣曲县| 兰溪市| 灌云县| 昌邑市| 盐池县| 桦川县| 赤壁市| 翁牛特旗| 正宁县| 亳州市| 神木县| 黑山县| 买车| 嵩明县| 文成县| 驻马店市| 威远县| 横峰县| 关岭| 乐陵市| 云林县| 山东省| 阿克苏市| 青海省| 彰化市| 沙坪坝区|