合工大操作系統(tǒng)實(shí)驗(yàn)?zāi)0錩第1頁
合工大操作系統(tǒng)實(shí)驗(yàn)?zāi)0錩第2頁
合工大操作系統(tǒng)實(shí)驗(yàn)?zāi)0錩第3頁
合工大操作系統(tǒng)實(shí)驗(yàn)?zāi)0錩第4頁
合工大操作系統(tǒng)實(shí)驗(yàn)?zāi)0錩第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)1實(shí)驗(yàn)環(huán)境的使用實(shí)驗(yàn)?zāi)康氖煜げ僮飨到y(tǒng)集成實(shí)驗(yàn)環(huán)境OSLab的基本使用方法。練習(xí)編譯、調(diào)試EOS操作系統(tǒng)內(nèi)核以及EOS應(yīng)用程序。二.實(shí)驗(yàn)內(nèi)容啟動(dòng)OSLab學(xué)習(xí)OSLab的基本使用方法2.1新建Windows控制臺(tái)應(yīng)用程序項(xiàng)目2.2生成項(xiàng)目2.3執(zhí)行項(xiàng)目2.4調(diào)試項(xiàng)目2.4.1使用斷點(diǎn)中斷執(zhí)行2.4.2單步調(diào)試2.4.3查看變量的值2.4.4調(diào)用堆棧EOS內(nèi)核項(xiàng)目的生成和調(diào)試3.1新建EOS內(nèi)核項(xiàng)目3.2生成項(xiàng)目3.3調(diào)試項(xiàng)目3.4查看軟盤鏡像文件中的內(nèi)容3.5查看EOSSDK(SoftwareDevelopmentKit)文件夾EOS應(yīng)用程序項(xiàng)目的生成和調(diào)試4.1新建EOS應(yīng)用程序項(xiàng)目4.2

2、生成項(xiàng)目4.3調(diào)試項(xiàng)目4.4查看軟盤鏡像文件中的內(nèi)容4.5修改EOS應(yīng)用程序項(xiàng)目名稱5退出OSLab6保存EOS內(nèi)核項(xiàng)目三實(shí)驗(yàn)結(jié)果本實(shí)驗(yàn)主要是熟悉EOS操作系統(tǒng)的基本操作,練習(xí)了:新Windows控制臺(tái)應(yīng)用程序項(xiàng),“文件”菜單中選擇“新建”然后單擊“項(xiàng)目”。在“新建項(xiàng)目”對(duì)話框中,選擇項(xiàng)目模板“控制臺(tái)應(yīng)用程序(c)”。在“名稱”中輸入新項(xiàng)目使用的文件夾名稱“oslab”。在“位置”中輸入新項(xiàng)目保存在磁盤上的位置“C:test”。新建完畢后,OSLab會(huì)自動(dòng)打開這個(gè)新建的項(xiàng)目。在“生成”菜單中選擇“生成項(xiàng)目”。結(jié)果如圖輔出生成-414丄三袁己啟動(dòng)生感:項(xiàng)目;goelso1e3配置:Debug正在

3、編譯.console.c正在鏈接.console-統(tǒng)計(jì)到0個(gè)錯(cuò)誤,0個(gè)警告=卑產(chǎn):成動(dòng)=執(zhí)行項(xiàng)目選擇“調(diào)試”菜單中的“開始執(zhí)行”調(diào)試項(xiàng)目:右鍵點(diǎn)擊“項(xiàng)目管理器”窗口中的“源文件”文件夾節(jié)點(diǎn),在彈出的快捷菜單中選擇“添加”中的“添加新文件”。在彈出的“添加新文件”對(duì)話框中選擇“C源文件”模板。在“名稱”中輸入文件名稱“func”。點(diǎn)擊“添加”按鈕,添加并自動(dòng)打開文件func.c,此時(shí)的“項(xiàng)目管理器”窗口會(huì)如圖:在func.c文件中添加函數(shù):intFunc(intn)n=n+在func.c文件中添加函數(shù):intFunc(intn)n=n+1;returnn;點(diǎn)擊源代碼編輯器上方的項(xiàng)目管理器甲X-卜

4、屮頭文件-hlconscle.h白源文件curLEijlt!.rconsolec標(biāo)簽,切換到consolec文件。將main函數(shù)修改為:intmain(intargc,char*argv)intFunc(intn);/聲明Func函數(shù)intn二0;n二Func(10);printf(HelloWorld!n);return0;代碼修改完畢后按F7實(shí)驗(yàn)結(jié)果為輸出:HelloWorld!在main函數(shù)中定義變量n的代碼行intn=0;上點(diǎn)擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“插入/intFunc(intn);/聲明Func函數(shù)intn=0;n=Func(10);printf(HelloWorldln

5、/y);在機(jī)房完成在機(jī)房完成刪除斷點(diǎn)”,會(huì)在此行左側(cè)的空白處顯示一個(gè)紅色圓點(diǎn),表示已經(jīng)成功在此行代碼添加了一個(gè)斷點(diǎn)練習(xí)使用“逐過程”,“逐語句”,“跳出”功能(8)在源代碼編輯器中變量n的名稱上點(diǎn)擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“快速監(jiān)視”,進(jìn)行單步測試,觀察n結(jié)果依次為0,11(9)調(diào)用堆棧,選擇“調(diào)試”菜單“窗口”中的“調(diào)用堆?!保せ睢罢{(diào)用堆棧”窗口??梢钥吹疆?dāng)前“調(diào)用堆?!贝翱谥兄挥幸粋€(gè)main函數(shù)(顯示的內(nèi)容還包括了參數(shù)值和函數(shù)地址)。按F11(“逐語句”功能的快捷鍵)調(diào)試,直到進(jìn)AFunc函數(shù),其中當(dāng)前正在調(diào)試的Func函數(shù)在棧頂位置,main函數(shù)在棧底位置。說明是在main函數(shù)

6、中調(diào)用了Func函數(shù)。(10)查看軟盤鏡像文件中的內(nèi)容,在“項(xiàng)目管理器”窗口中雙擊軟盤鏡像文件Floppyimg四.實(shí)驗(yàn)總結(jié)今天第一次進(jìn)行操作系統(tǒng)這門課的實(shí)驗(yàn),學(xué)習(xí)了使用OSLab的這個(gè)實(shí)驗(yàn)環(huán)境,進(jìn)行了新建Windows控制臺(tái)應(yīng)用程序項(xiàng)目、生成項(xiàng)目、執(zhí)行項(xiàng)目、調(diào)試項(xiàng)目以及EOS應(yīng)用程序項(xiàng)目的生成和調(diào)試;設(shè)置間斷點(diǎn),并且在它的基礎(chǔ)上進(jìn)行了單步操作;詳細(xì)觀察了通過“快速監(jiān)視“標(biāo)記的數(shù)的值的變化過程等基本操作,這也為以后實(shí)驗(yàn)的順利進(jìn)行打下了良好的基礎(chǔ)。五:備注說明實(shí)驗(yàn)2操作系統(tǒng)的啟動(dòng)一.實(shí)驗(yàn)?zāi)康母櫿{(diào)試EOS在PC機(jī)上從加電復(fù)位到成功啟動(dòng)的全過程,了解操作系統(tǒng)的啟動(dòng)過程。查看EOS啟動(dòng)后的狀態(tài)和行為

7、,理解操作系統(tǒng)啟動(dòng)后的工作方式。二.實(shí)驗(yàn)內(nèi)容1準(zhǔn)備實(shí)驗(yàn)2調(diào)試EOS操作系統(tǒng)的啟動(dòng)過程2.1使用Bochs做為遠(yuǎn)程目標(biāo)機(jī)2.2調(diào)試BIOS程序2.3調(diào)試軟盤引導(dǎo)扇區(qū)程序2.4調(diào)試加載程序2.5調(diào)試內(nèi)核2.6EOS啟動(dòng)后的狀態(tài)和行為三實(shí)驗(yàn)結(jié)果新建一個(gè)EOSKernel項(xiàng)目。使用Bochs做為遠(yuǎn)程目標(biāo)機(jī)在“項(xiàng)目管理器”窗口中,右鍵點(diǎn)擊項(xiàng)目節(jié)點(diǎn),在彈出的快捷菜單中選擇“屬性”。(2)在彈出的“屬性頁”對(duì)話框右側(cè)的屬性列表中找到“遠(yuǎn)程目標(biāo)機(jī)”屬性,將此屬性值修改為,EochsDebug”(3)點(diǎn)擊“確定”按鈕關(guān)閉“屬性頁”對(duì)話框。接下來就可以使用Bochs模擬器調(diào)試BIOS程序和軟盤引導(dǎo)扇區(qū)程序了。按F

8、5啟動(dòng)調(diào)試,此時(shí)會(huì)彈出兩個(gè)Bochs窗口。標(biāo)題為“Bochsforwindows-Display”的窗口相當(dāng)于計(jì)算機(jī)的顯示器,顯示操作系統(tǒng)的輸出。標(biāo)題為“Bochsforwindows-Console”的窗口是Bochs的控制臺(tái),用來輸入調(diào)試命令,輸出各種調(diào)試信息。啟動(dòng)調(diào)試后,Bochs在CPU要執(zhí)行的第一條指令(即BIOS的第一條指令)處中斷。此時(shí),Display窗口沒有顯示任何內(nèi)容,Console窗口顯示要執(zhí)行的BIOS第一條指令的相關(guān)信息,并等待用戶輸入調(diào)試命令0 xff0J000:fff0:jmpfar;ea5be000f0.然后査看CPU在沒有執(zhí)行任何指令之前主要寄存器中的數(shù)據(jù),以及

9、內(nèi)存中的數(shù)據(jù)(1)在Console窗口中輸入調(diào)試命令sreg后按回車,顯示當(dāng)前CPU中各個(gè)段寄存器的值(2)輸入調(diào)試命令r后按回車,顯示當(dāng)前CPU中各個(gè)通用寄存器的值(3)輸入調(diào)試命令xp/1024b0 x0000,查看開始的1024個(gè)字節(jié)的物理內(nèi)存。在Console中輸出的這1K物理內(nèi)存的值都為0,說明BIOS中斷向量表還沒有被加載到此處。(4)輸入調(diào)試命令xp/512b0 x7c00,查看軟盤引導(dǎo)扇區(qū)應(yīng)該被加載到的內(nèi)存位置。輸出的內(nèi)存值都為0,說明軟盤引導(dǎo)扇區(qū)還沒有被加載到此處。E0S啟動(dòng)后的狀態(tài)和行為在控制臺(tái)中輸入命令“ver”后按回車。結(jié)果如圖查看EOS啟動(dòng)后的進(jìn)程和線程的信息:在控制

10、臺(tái)中輸入命令“pt”后按回車。|n|x|n|x|OSLabFC-licrosoftVirluolFC2007.CONSOLE-l(PressCtrl*Fl*Fatosuitchconsoleuindou.)UeleonetoEOSshelluerTeuationEDSVersionNumber10ptxxmexProcessList(1Process)mmkxxwIDSystem?PriorityJThreadCoiint1FrinaryThreadIDiImageNane1Y2迪10ZNAcaac屛1*ThreftdList(IOTbread)弭屛廉耳耳xkxID;System?IPrioritytStatetFarentFrocessIDtStartAddressZY0Ready1OxBOO1817C0Y24Halting10 x8001SE3A21YZ4Running10 x8GGlB26DZ2Z4Uniting10 x8001B26DZ324Uaiting10 x8001BZ6DYZ4Halting1OxBOQ1BZ6D匚耳V24Hal

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論