无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ó)家法律
文水县| 太白县| 玉环县| 鱼台县| 洞口县| 虎林市| 晋州市| 灵宝市| 铜陵市| 普兰店市| 萝北县| 德惠市| 古浪县| 扶风县| 桐城市| 马鞍山市| 沈阳市| 辉县市| 奈曼旗| 图们市| 揭东县| 南平市| 福建省| 丘北县| 安徽省| 海盐县| 盖州市| 专栏| 民丰县| 苍南县| 科技| 长丰县| 武夷山市| 民权县| 林甸县| 泽州县| 卢氏县| 区。| 桑日县| 抚远县| 兴安县|