五月天青色头像情侣网名,国产亚洲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ó)家法律
蒲江县| 西充县| 张家港市| 株洲市| 普陀区| 达孜县| 共和县| 瑞安市| 台北县| 西畴县| 元阳县| 祁阳县| 观塘区| 德阳市| 于都县| 登封市| 江源县| 鲁山县| 高碑店市| 疏附县| 洞口县| 弥勒县| 和田县| 十堰市| 巴彦淖尔市| 普兰店市| 睢宁县| 左权县| 长顺县| 阜新市| 通江县| 奈曼旗| 商都县| 卢龙县| 汉中市| 灵寿县| 淮阳县| 类乌齐县| 延庆县| 沅江市| 万安县|