




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Harbin Institute of Technology at Weihai操作系統(tǒng)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 自己動(dòng)手寫操作系統(tǒng) 院 系: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 班 級(jí): 0504101 學(xué) 號(hào): 050410126 設(shè) 計(jì) 者: 安文龍 哈爾濱工業(yè)大學(xué)(威海)二零零八年七月1II哈爾濱工業(yè)大學(xué)(威海)課程設(shè)計(jì)報(bào)告(論文)1設(shè)計(jì)目標(biāo):1.在PC機(jī)上安裝虛擬機(jī),在虛擬機(jī)上在安裝Red Hat Linux軟件。2.制作一個(gè)小型操作系統(tǒng)2參考書目:自己動(dòng)手寫操作系統(tǒng)作者:于淵出版社:電子工業(yè)出版社。下文中所提到的書除特別說明,都為這本自己動(dòng)手寫操作系統(tǒng)。3.設(shè)計(jì)過程3.1.1 搭建虛擬機(jī) 首先,創(chuàng)
2、建虛擬機(jī): 自定義(Custom)繼承(Legacy,這樣生成的虛擬機(jī)可以使用低版本的VM打開),Linux(操作系統(tǒng)種類,選Other Linux 2.6.x kernel),指定虛擬機(jī)名稱以及在硬盤上存放的路徑,指定虛擬機(jī)內(nèi)存大小,虛擬機(jī)使用的網(wǎng)絡(luò)類型(NAT,裝完后直接獲得IP),IO控制器(默認(rèn)即可),創(chuàng)建虛擬磁盤,選擇虛擬磁盤類型IDE,虛擬磁盤容量給出虛擬磁盤文件名,點(diǎn)擊完成開始創(chuàng)建虛擬磁盤并分配空間,這個(gè)過程需要幾分鐘的時(shí)間,結(jié)束后完成創(chuàng)建新的虛擬機(jī)的過程其次,對(duì)虛擬機(jī)的磁盤進(jìn)行分區(qū)3.1.2 安裝Red Hat Linux 下載Red Hat 9.0,在虛擬機(jī)中安裝。如圖示:安
3、裝過程中注意選擇系統(tǒng)語言,時(shí)區(qū)以及所需安裝的軟件包等內(nèi)容。3.2.1環(huán)境搭建萬事開頭難,回想一個(gè)月前我剛剛學(xué)習(xí)LINUX內(nèi)核知識(shí),每一步都是那么的難走。首先是開發(fā)環(huán)境。按書中所說,在硬件方面,一臺(tái)計(jì)算機(jī)(有軟驅(qū)),空白軟盤?,F(xiàn)在(2006-10-12)看看自己周圍,想找一個(gè)有軟驅(qū)的電腦還真是不容易,不過即然有虛擬光驅(qū)的存在,想找找虛擬軟驅(qū)也不會(huì)有什么難的。vFloppyV1.5這就是一款虛擬軟驅(qū)的軟件。軟件,匯編編譯器選擇NASM,可在/中搜索并下載到。其它工具在書附光盤中有提供,以后使用中再一點(diǎn)點(diǎn)學(xué)。3.2.2“10分鐘完成的操作系統(tǒng)”-org07c
4、00h;告訴編譯器程序加載到7c00處movax,csmovds,axmoves,axcallDispStr;調(diào)用顯示字符串例程jmp$;無限循環(huán)DispStr:movax,BootMessagemovbp,ax;ES:BP=串地址movcx,16;CX=串長度movax,01301h;AH=13,AL=01hmovbx,000ch;頁號(hào)為0(BH=0)黑底紅字(BL=0Ch,高亮)movdl,0int10h;10h號(hào)中斷retBootMessage:dbHello,OSworld!times510-($-$)db0;填充剩余空間,使生成的二進(jìn)制代碼恰好為512字節(jié)dw0xaa55;結(jié)束標(biāo)志-
5、也許自信心就是這么建立起來的:我用書中提供的一個(gè)名為FloppyWriter的工具把這段代碼編譯并拷貝到軟盤(鏡像)中,并通過虛擬軟驅(qū)啟動(dòng)電腦。計(jì)算機(jī)沒有像以往一樣提示我插入系統(tǒng)啟動(dòng)盤,而是顯示了紅色的“Hello,OSworld!”。我興奮不已,于是重新回到了Windows下面,將這段代碼改了一下:BootMessage:dbSoloisthebest!哈哈,第一步走的很順利,一個(gè)有我自己屬名的計(jì)算機(jī)引導(dǎo)盤。雖然,它看上去還什么都做不了。這一小段代碼怎么可能是會(huì)是一個(gè)“操作系統(tǒng)”。我對(duì)引導(dǎo)扇區(qū)這個(gè)名詞早有耳聞,可是它的內(nèi)部究竟是怎樣的。有了在實(shí)踐中找出的問題,我對(duì)理論知識(shí)產(chǎn)生了興趣。3.2.
6、3計(jì)算機(jī)的啟動(dòng)過程“計(jì)算機(jī)電源被打開時(shí),它會(huì)先進(jìn)行加電自檢(post),然后尋找啟動(dòng)盤(或許就是我剛剛寫的那個(gè)東西?),如果是從軟盤啟動(dòng),計(jì)算機(jī)就會(huì)檢查軟盤的0面0磁道1扇區(qū),如果發(fā)現(xiàn)它以0xAA55結(jié)束,則BIOS認(rèn)為這是一個(gè)引導(dǎo)扇區(qū),也就是我們說的BootSector。好了,一旦BIOS發(fā)現(xiàn)了BootSector,就會(huì)將這扇區(qū)的內(nèi)容裝載到內(nèi)存的0000:7c00處,然后跳轉(zhuǎn)到0000:7c00處將控制權(quán)徹底交給這段引導(dǎo)代碼。由此開始,計(jì)算機(jī)就受我們所寫的操作系統(tǒng)來控制了?!眲倓傔\(yùn)行代碼時(shí),我不明不白了改了一個(gè)字符串,不過現(xiàn)在回過頭來對(duì)比看看代碼,和上面這段文字,仿佛有很多地方都開使變得明朗
7、起來,我已經(jīng)迫不急代的想知道那段代碼究竟做了什么。3.2.4代碼解釋現(xiàn)在,我不得不承認(rèn)我匯編沒有好好學(xué)了,上面這段代碼,我是弄了好久才看懂的。程序的主體是從第行到第行,通過三個(gè)mov指令初始化ds和es兩個(gè)段寄存呂指向與cs相同的段,然后調(diào)用了DispStr子函數(shù)來顯示一個(gè)字符串,最后通過jmp$進(jìn)入無限循環(huán)。$:表示當(dāng)前語句所在的地址$:表示當(dāng)前語句所在的段地址最后還想說說這兩句代碼:times510-($-$)db0dw0xaa55“填充剩余空間,使生成的二進(jìn)制代碼恰好為512字節(jié)”為什么是512呢?因?yàn)锽IOS加載的BootSector的大小固定為512字節(jié),并且以511和512兩字節(jié)內(nèi)
8、容是否為AA55來判斷引導(dǎo)扇區(qū),所以,通過times510-($-$)db0填充值,并設(shè)置511和512兩個(gè)字節(jié)的值為AA55。這樣,便構(gòu)造了一個(gè)引導(dǎo)扇區(qū)。3.2.5搭建虛擬環(huán)境如果每次寫完一段代碼都要重啟電腦,那開發(fā)操作系統(tǒng)的時(shí)間可大多浪費(fèi)在重啟電腦上了。選擇一個(gè)虛擬機(jī)還是很有必要的。常用的虛擬機(jī)有VMware、VirtualPC.我用的是VMware。512字節(jié)畢竟還是太小了很明顯,一個(gè)引導(dǎo)扇區(qū)只有512字節(jié),不管怎樣的操作系統(tǒng)都不可能在這么小的空間內(nèi)做什么大的文章。所以,在如何引導(dǎo)了計(jì)算機(jī)這一問題解決了之后,我們應(yīng)該想想,怎樣能夠突破512字節(jié)的限制。4學(xué)習(xí)總結(jié)對(duì)操作系統(tǒng)的興趣由來已久,只是一直未能找到入門之徑。操作系統(tǒng)教材是個(gè)令人生畏的東西,它可以告訴人有什么,卻不能告訴人為什么,從那里了解的操作系統(tǒng)有如盲人摸到的象,得到各個(gè)部分,卻不能擁有整體,加之缺乏實(shí)踐的支持,理論顯得蒼白空洞。如Linux般的開源操作系統(tǒng),雖然可以讓人坐擁全部源碼,但一來規(guī)模龐大,讓人不知從何入手,二來源碼背后更多的是業(yè)務(wù)操作系統(tǒng)和硬件知識(shí),不了解業(yè)務(wù)的人很難憑一己之力破解源碼的奧秘??陀^如此,更重要的還是主觀的不努力。自己動(dòng)手寫操作系統(tǒng)則為我打開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 瀘州醫(yī)院考試試題及答案
- 寄小讀者試題題及答案
- 提升數(shù)學(xué)興趣的幼兒園試題及答案
- 小學(xué)教師教育教學(xué)改進(jìn)的實(shí)踐試題及答案
- 農(nóng)業(yè)季節(jié)性銷售策略試題及答案
- 土木工程施工安全知識(shí)試題及答案
- 數(shù)量感知與發(fā)展試題及答案2025
- 力與運(yùn)動(dòng)的深入觀察與思考題試題及答案
- 未來電動(dòng)車監(jiān)管政策與市場發(fā)展的互動(dòng)研究試題及答案
- 安全風(fēng)險(xiǎn)控制機(jī)制試題及答案
- 鐵路市場營銷教學(xué)大綱
- 人教版(部編版)初中語文七年級(jí)下冊(cè) 愛蓮說-“江南聯(lián)賽”一等獎(jiǎng)
- 護(hù)理綜述論文撰寫的方法的講義課件
- 政府信息公開申請(qǐng)表(樣表)
- 可填充顏色的地圖(世界、中國、各省份)
- 爆破設(shè)計(jì)薩道夫斯基公式計(jì)算表
- 2023建筑防水工程質(zhì)量鑒定技術(shù)標(biāo)準(zhǔn)
- 化學(xué)化工原理干燥課件
- 我國經(jīng)皮冠狀動(dòng)脈介入治療指南
- GB/T 13745-1992學(xué)科分類與代碼
- CRH380B型動(dòng)車組概述
評(píng)論
0/150
提交評(píng)論