操作系統(tǒng)的啟動實驗報告_第1頁
操作系統(tǒng)的啟動實驗報告_第2頁
操作系統(tǒng)的啟動實驗報告_第3頁
操作系統(tǒng)的啟動實驗報告_第4頁
操作系統(tǒng)的啟動實驗報告_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、操作系統(tǒng)課程名稱操作系統(tǒng)實驗實驗項目名稱操作系統(tǒng)的啟動學號班級20100612姓名專業(yè)計算機科學與技術學生所在學院計算機科學與技術學院指導教師實驗室名稱地點計算機基礎第七實驗室 21B475哈爾濱工程大學計算機科學與技術學院、實驗概述1. 實驗名稱操作系統(tǒng)的啟動2. 實驗目的®跟蹤調(diào)試EOS在PC機上從加電復位到成功啟動的全過程,了解操作系 統(tǒng)的啟動過程。查看EOS啟動后的狀態(tài)和行為,理解操作系統(tǒng)啟動后的工作方式。3. 實驗類型驗證性實驗4. 實驗內(nèi)容調(diào)試EOS操作系統(tǒng)的啟動過程包括:(1).使用Bochs做為遠程目標機;(2). 調(diào)試BIOS程序;(3).調(diào)試軟盤引導扇區(qū)程序;(4

2、).調(diào)試加載程序;(5).調(diào)試 內(nèi)核;(6).查看EOS啟動后的狀態(tài)和行為二、實驗環(huán)境EOS操作系統(tǒng)和配套的IDE集成開發(fā)環(huán)境。三、實驗過程1. 設計思路和流程圖CPU從默認位置執(zhí)行 BIOS的開機自檢和初始化程序, 之后BIOS將軟盤引導扇區(qū)加載到 0x7C00并執(zhí)行。軟盤引導扇區(qū)中的 Boot程序開始執(zhí)行,將軟盤根目錄中的Loader程序文件Loader.bin加載到0x1000并執(zhí)行Loader程序開始執(zhí)行,先加載 Kernel.dll,然后啟動保 護模式和分頁機制,最后跳到Kernel.dll的入口點執(zhí)行5Kernel.dll開始執(zhí)行,初始化 EOS內(nèi)核,EOS啟動完畢圖2-1.EOS

3、操作系統(tǒng)的啟動過程流程圖2. 算法實現(xiàn):驗證性試驗,無算法。3. 需要解決的問題及解答(試驗指導)(1) .為什么EOS操作系統(tǒng)從軟盤啟動時要使用boot.bin和loader.bin兩個程 序?使用一個可以嗎?它們各自的主要功能是什么?如果將 loader.bin 的功能 移動到boot.bin文件中,則boot.bin文件的大小是否仍然能保持小于512字節(jié)?答:boot文件夾包含了兩個匯編文件boot.asm和loader.asm。這兩個文件生 成的二進制文件boot.bin和loader.bin會被寫入軟盤鏡像文件。操作系統(tǒng)啟動時 boot.bin和loader.bin引導軟盤加載程序,

4、二者缺一不可。使用Boot.bin的主要 功能是引導軟盤; loader.bin 的主要功能是加載程序。 如果把 loader.bin 功能移 動到boot.bin程序中,必然導致程序規(guī)模擴大,可能使其大于 512字節(jié)。(2) . 軟盤引導扇區(qū)加載完畢后內(nèi)存中有兩個用戶可用的區(qū)域,為什么軟盤 引導扇區(qū)程序選擇將loader.bin加載到第一個可用區(qū)域的0x1000處呢?這樣做 有什么好處?這樣做會對 loader.bin 文件的大小有哪些限制。答:首先用戶只用兩個可用區(qū)域,加載位置非此即彼。第一個可用用戶區(qū)是 低地址區(qū),且空間大小比較小, 適合容納小文件, 所以我們選擇將占用空間小的 lode

5、r.bin 加載到第一用戶區(qū)。優(yōu)點:由低地址開始,便于檢索查找。小文件占用小空間,節(jié)約資源。限制: loader.bin 文件必須小于 1c00k.(3) .練習使用Bochs單步調(diào)試BIOS程序、軟盤引導扇區(qū)程序和loader程序, 加深對操作系統(tǒng)啟動過程的理解。(4) . 仔細比較實驗指導 10-5圖和圖10-6,嘗試說明哪個是應用程序的進程, 它和系統(tǒng)進程有什么區(qū)別, 哪個是應用程序的主線程, 它和系統(tǒng)線程有什么區(qū)別。答:圖10-6是應用程序的進程,在進程列表中只有一個 ID為1的系統(tǒng)進程, 其優(yōu)先級為24,包含有10個線程,其中的ID為2的線程是該進程的主線程,系統(tǒng) 進程沒有映像名稱。

6、在線程列表中有 10個線程,它們都是系統(tǒng)線程。區(qū)別:主線程的優(yōu)先級別高。 存放在物理內(nèi)存的低端。4. 主要數(shù)據(jù)結構、實現(xiàn)代碼及其說明:驗證性實驗,無此項目。5. 源程序并附上注釋:驗證性實驗,無此項目。6. 程序運行時的初值和運行結果 ,實驗過程1. 調(diào)試BIOS程序(1) .在Con sole窗口中輸入調(diào)試命令sreg后按回車,顯示當前CP中各個 段寄存器的值,如圖2-1。其中CS寄存器信息行中的s=0xf000 ”表示CS寄存器的 值為 0xf000.(2) .輸入調(diào)試命令r后按回車,顯示當前CP中各個通用寄存器的值,如圖 10-3。其中 rip: 0x00000000:0000fff0”

7、表示 ip 寄存器的值為 0xfff0。16(3) .輸入調(diào)試命令xp /1024b 0x0000,查看開始的1024個字節(jié)的物理內(nèi)存。 在Con sole中輸出的這1K物理內(nèi)存的值都為0,說明BIOS斷向量表還沒有被加載 到此處。<l)Ouht :!:> 疋斷zib BhRHSMI hoc; hu 11 Am嚥頑OK痺姻碩吹pl<CxUaDmOO OxtWxMostMernnHseumns vhoyus* AxMiHkAEflKftfinownmmRQ rwi » 電 “ * Mx0«Hx«»0K(WHx«MHn>MN

8、MWtW tWttl V 如n甘 HxUHHxlltlOkUMMKtag < hnyiu * lb加moo弧脯出嗣園ItMtH晦Eb <JbvuA» BxfdBHxflBHhOraiHKfWeinflIMI019 <hauufr M>fW5fIxOi)fTxWfxie«AmAOHeeacte < bD<ua«numncO00xHa0頑ttjdieH3(«Ou>;2>=33 >:ie>=«>:HxMlBxBaexHaHkMUQm«BHMM»xQeaicRRQi!

9、 HR0>dMClu«N0kB書9K«eHicinahflHnseSIB«xflaB*UHOkMaxeeBxea查看軟盤引導扇區(qū)應該被加載到的內(nèi)(4). 輸入調(diào)試命令xp /512b 0x7c00,存位置。輸出的內(nèi)存值都為0,說明軟盤引導扇區(qū)還沒有被加載到此處。!-j°Pj 號 jit世*Jfiad'- tfiwrl.書Cbacliu 1;0訥0eee»軸esea?&刪訂 bxtiBBhUuK«MnilKWemMOVcIiW <bogus* telKflBIhHBHviHi)x«0UxeeHhB0

10、R«iMijei»nmufl?cla cbogus*IxflHEPKtnBkHn HH»tafiwinjmH7e ra toxeefl冊skbsBkH 砂OxvaBxMn RflwiaiwmMiovt ao <be.|i<=* mvRn>nRRvRC!»KflmEmfleneea7c3e <iwgva*t£>:2<>i32 >:«Q> :>rHJHxWte«AsSjiiMa>e»flMBflhfmRvmexBttHbcMIa-ae日hHUUhUUHk

11、HRuxueEUHflUvUUEUHRHtfKWB-fl02.調(diào)試軟盤引導扇區(qū)程序a. 輸入調(diào)試命令vb 0x0000:0x7c00,物理地址0x7c00)處添加了一個斷點。b. 輸入調(diào)試命令C繼續(xù)執(zhí)行,在0x7c00處的斷點中斷。中斷后會在Console窗口中輸出下一個要執(zhí)行的指令,即軟盤引導扇區(qū)程序的第一條指令,如下(0)0x00007c00 0000:7c00 (u nk. ctxt): jmp .+0x006d (0x00007c6f) ; eb6dc. 為了方便后面的使用,先在紙上分別記錄下此條指令的字節(jié)碼( eb6d)和此 條指令要跳轉執(zhí)行的下一條指令的地址(括號中的這樣就在邏輯地

12、址0x0000:0x7c00 (相當于0x00007c6f)。d.e.輸入調(diào)試命令sreg驗證CS寄存器(0x0000)的值。輸入調(diào)試命令r驗證IP寄存器(0x7c00)的值。由于BIOSl序此時已經(jīng)執(zhí)行完畢,輸入調(diào)試命令 xp /1024b 0x0000驗證此時 BIOS中斷向量表已經(jīng)被載入。f.kboch£:,> 町護inz軸 Hkomvirbacha1:HjiffSi HeSvfHa>:亦3ameeoHxrva心”詢MIH頑HIM)刪OM fbagtis +B»IMRxrfla>:BxS3BMffH«UO0kFOl»xS3NMnf

13、wwiHwimKnni a 血帥肢*u>:a如HmIFHkRAHxFHft廟mpKfr91BKHifH«> WMUMfeWttUtWUtSaBl« CtKua* bxf fMHOflHmIH丁 4>rBx “UxffUKleWM4k5 3HmnfwmcifWf»M)mw?a(血!)則生*32>:nxuSBxfenxHO(UFD»油7ki-p?a卿aEfubxUlMIIMUIW U(IU«UM2« Cb« 沖 14U>iIIjcLJHMfUkUUUkIUHHffHxMaHideHa nnnRARf

14、MHHHnfMaig Chagus*W-ff駆0恥4a:BkS3iiHf rHhHBriKfanxS5阪diwn圈 m 測uewijti £ bo和壽*MxffOk UM» xfMbt>!UxHUUx£Bb«rAPkHRQugH淞cBxVlHmBOBKte»皿HM»WeUHtWWUeNn48 Cbag?2>:0X410xrsHxHflHkFBi»xr«HIkhJ駆"皿;疔忌g.輸入調(diào)試命令xp /512b 0x7c00顯示軟盤引導扇區(qū)程序的所有字節(jié)碼。觀察此 塊內(nèi)存最開始的兩個字節(jié)分別為0xe

15、b和0x6d,這和引導程序第一條指令的字節(jié)碼pMEHxfB< hiDirbs U0> Kip/lZIi 辦7(=* I bocDhw IahumomBdoir7cfs» m76HxblHxll0HtMmffK1«mir7cfW <liwyHa B湎iAkAlAxBflHxO00«WMU0Mr?E 14# <*RxiBHeOHLxli«BIMHMMeBeff7c 11 < tteyug « BifOR筍K腑Q罠個H x6SnfMB0009O 07c IS < Wijiii» HxHHHk2?HielB

16、xfiBBiwmeaoBVcZfl “>甘iimHh2(l 佛£2灣 鬧刪«刪圈07匸W <ti«gut« Hk£U «k4& 0KtlHseewiiMMMQewa3S <丘日,» flxtMkARflMMmnm ir7c皿屮心b軸g晌 gk昶1&>E24>i32 >i4fl>tlS>i>&>64>;h.輸入調(diào)試命令xp /512b 0x0600Qjtab9MHkL36x00extctxza0HSUirMflxt?0x20flxliox

17、aeam«it2e0xia(VjMflxflO«»«aflxflOflx20«m20fl辺B«血exukHhIMe<0ae“»BkS»0-n»驗證圖3-2中第一個用戶可用區(qū)域是空白的。(eb6d)是相同的。T錘"V* - C&wwlffBQUkSBtt話 51QIhocks : i i V1 Jfe Sk魅厲fl(bochs ):ft廳圏圏噠靦b«詡e>=o»fle«K«eBk«HKkK«HRxflDOEIWWenE

18、MlinB B8 < lia gn M t«>;aKoe«KmiBkAHmAH«»«BhABAhAHL沖轉xlW曾«滋90BntfUBmAH0m«HBKeBHtMCHWiHfM61 fl f bausi *2小axN0KfWOkVVOk0UOkUUHxnn斬Hti.tvaBK6mae0mBeae6£e <Jtagu&«32>i9xm0Kse0HBeBneeBhOBHxtiH甘胡Ud她BxfIEH9Hen0HHHaU628 fboquy*4fl>:0XMUwfW犧MUH

19、kAHClKflH”nxAHnxBnnKVimamweReoee se暫us*48 >-阿換0K(Waxee8K«nSK«eMxeettx«0Uxee*di- -| Ki.r u . _.1 1_-!_l.- -IlM*1 * Ifcl;n- J加dli«k. -tl tli.輸入調(diào)試命令xp /512b 0x7e00驗證圖3-2中第二個用戶可用區(qū)域是空白的。卜-SochX t<KE -ubx-uu養(yǎng)bBSkbaclit : 1 2恥 BxTeAC!Llclii :応囲iMMti曰姑'“豳 < bo<«>&

20、gt;*H>£4wrH廚0UkUUUkWS陽曲flB胡eBit mg甌HMBPeMbW西”看 OK <Im8ub*H> :II xMHkMSHhIMIUkHM»mCH)PhSBn通 0撕讒翹斷宓umrzclll <lng«iith>:flxiWBxBHuainoH虹EW恫陶imGMiMa礁臨朗皿 L逼flwgu"24>tflxMliix«nHxGlOU4PkbbftjinwBL.ne額別圏砂綺溯的呃 th叩煒-3Z>M0ea旳圏e氣即阿油auxuu取HU初)d1 圜曲姬nmlfSUOTp罰 <bo

21、gus*4H>;flximHxfiMl0諭UMUiettrxonbA:DH停 Koe40>:HxIMIBxHOa朝n*浙10腳陽曲H血eepKflIWWHHHWtfUffZv3S <l»gi5*HhHIHkVUUxUttUkUO(txWf柯” nnnuHibiKRWWtacwwnHnZr419 fin的*b4>:«x0flVvfWHhEHHxm陽詢呂酣eeaxePktUHUUUHUWJWtrZ*Ifl <l»gu«4HxHUUxUttUxtiUUmHO4UDhictinntnEiehE»aK;Rnnnm*MwnRH

22、7r5*齊牛s-La_a_ciiZh_£Ui3a_CUZh»0>:HxrfWRxiMIamon”A算閆 irCHj.自己設計兩個查看內(nèi)存的調(diào)試命令, 端也是空白的。分別驗證這兩個用戶可用區(qū)域的高地址卜細ich沙TSHwTf1 Ojot bi s判麗鬪尊團舫扇頸5*a”H:x刪Um豳US眼醐n甌氣>:fl%瞬Qh彌»皿Hh蘭0smt?MW0 UMW7<H f f tXi 期 WJ 4ib>:03(豳H鼻他甘曲aUltMtfxfW4 鮭Um 林HxIMgitvIMUeCMtMamiA 11 Lnn恤耐gafie24>:a:»3&

23、lt;»«Uh憫%斕HxM迪00國ggpeMal f <也皆uw*IKttUUxHlil»kMH32 >:fi-eee辭Sx關MkU 圜她 IM dial咖2? Cb0u5 IfTKflffnuEIBHhHR4U>:HxWUxKHauxim(txtWOxOHHvHHrUkUHHxW4B>£0x004殖民99neBxOeIumUMj«fWIWtfMW7a.J7 Utw耳u£ + 卜 xHHHfUBBirBHH席昭H湖iSUxWUkWBMWInKHfmiimmifiReaFMjr <bogus: t 樟MUx

24、翎歸&kWfe+>:BvseHiHflga 対flRxmexwiIdmU測Ift疊IMHBPU瞬?a>:HxUUUzx仙UxtaUx&MKf«S- CmsvSB軸電齬»MM/翩囲刪轉kF7 <b->ou AjifintftxflQAmFWi betii 114> wp/512hi Antf < t hffltJit J ILH>:OtM0)f»Q«H«e0x30oxoetBxseemmaeef fisf r < bogus te>:9x9SBd»0BxflH00Hk

25、MO”X解DnxiMn.iinntwwwimf r 腫電 hoyu + Hk«H«xU»«斶a>:&M(Vi0K»eflM«0M0ngHkHHUUIHHMWIIM* F« df thaHS* Bh«B«h3BMxfWi«>:filjtiM9xWA«kM»HxunUk»»nxAmWMHmWIt Tel7 <liugH!: tH湘e孤冊omiwZ4>:anRAHkMflxffinnHhIMMxHUKKHWItHdHU? r* 1

26、 f <J»9n» * HKfiB0x00mm32 >tUxWHxWUmWIHzKtiHUkUHRxflfMlWfliWmmt Fc27 hayuii * 卜weeee &n«4«>:axBaAkMflirtinBxflDHkRBHxUfilHHMiWUUmr reSr CJwgut* Bx«BHkUB«hrm4«>ietwHieM«弼flsdiUHxtt»beBeaMAaem/.37 <i»>護” 卜皿BAhARAh miS =OxHfljcMflx

27、flflBmGWBxMHKewwwimWT rear <±vmAx* Hk«H«xUH也刪6-t>i0A00AmM«潁H通AHaIMSachs Wia<rv¥ = Cennltk.輸入調(diào)試命令xp /512b OxaOOOO驗證圖3-2中上位內(nèi)存已經(jīng)被系統(tǒng)占用。I.自己設計一個查看內(nèi)存的調(diào)試命令,驗證上位內(nèi)存的高地址端已經(jīng)被系統(tǒng)占 用。kbachc;lb> K|il2h HxSffdfF tboe hS 1:rdf t thcviud*UMf fltfKue01(66苗曲UHUHUfF酣 <l»gu=4

28、annRflRvSHrce(M.IH(txSe卸irmstnn靦neaf rvl它 Cbo3ue + 0>iTfcEhffflpxee>nnafKu#K)4«Mipr< i f 燈呻«廣* MmIB脅胴PIV0H'”別訊她靜旳坍 < bo啊用+ %缸弧腮H«HH岡乂|«翊樹爾彌聊測f"斗aSA«th隔尺筒xac»xf>皿陽旳曲酥9彌館彌F,3f £1初U蚩+帥豐 EB>IWAt 時9>iBA:4a>i64?eHkMAHxfWRm胸VxWa mW)BmMBxcB

29、HxccHxccHxMHxFcHxccBxucnx6cUxccH«ietfKftUhSOttKcePKTflOxft查看boot.lst文件1) .在項目管理器”窗口中,2) .在彈出的快捷菜單中選擇 開文件boot.lst 。右鍵點擊boot”文件夾中的boot.asm文件。打開生成的列表文件”在源代碼編輯器中就會打3) .將boot.lst文件和boot.asm文件對比可以發(fā)現(xiàn),此文件包含了 boot.asm文件 中所有的匯編代碼,同時在代碼的左側又添加了更多的信息。4) .在boot.lst中查找到軟盤引導扇區(qū)程序第一條指令所在的行(第73行) 7300000000 EB6D

30、jmp short Start 此行包含的信息有:73是行號。0)。00000000是此條指令相對于程序開始位置的偏移(第一條指令應該為 EB6是此條指令的字節(jié)碼,和之前記錄下來的指令字節(jié)碼是一致的。軟盤引導扇區(qū)程序的主要任務就是將軟盤中的loader.bin文件加載到物理內(nèi)存 的0x1000處,然后跳轉到loader程序的第一條指令(物理地址0x1000處的指令) 繼續(xù)執(zhí)行l(wèi)oader程序。按照下面的步驟調(diào)試此過程:1).在boot.lst文件中查找到加載完畢loader.bin文件后要跳轉到loader程序 中執(zhí)行的指令(第 278行)278 00000181 EA00100000 jmp

31、 0:LOADER_ORG根據(jù) 此指令相對于程序開始(0x7C00的偏移(0x0181)可以得到此指令的邏輯地址 為 0x0000:7D81。2).輸入調(diào)試命令vb 0x0000:0x7d81添加一個斷點。3).輸入調(diào)試命令C繼續(xù)執(zhí)行,到斷點處中斷。在Con sole窗口中顯示(0)0x00007d81 0000:7d81 (unk. ctxt): jmp far 0000:1000 ; ea00100000此條指令會跳轉到物理內(nèi)存0x1000處(即Loader程序的第一條指令)繼續(xù)執(zhí)行。4).按照打開boot.lst文件的方法打開loader.lst文件,并在此文件中查找到 loader 程

32、序的第一條指令(第 33行)33 00000000 E91801 jmp Start5).輸入調(diào)試命令xp /8b 0x1000查看內(nèi)存0x1000處的數(shù)據(jù),驗證此塊內(nèi)存的前 三個字節(jié)和loader.lst文件中的第一條指令的字節(jié)碼是相同的。調(diào)試加載程序Loader程序的主要任務是將操作系統(tǒng)內(nèi)核(kernel.dll后讓CP進入保護模式并且啟用分頁機制,最后進入操作系統(tǒng)內(nèi)核開始執(zhí)行(跳 轉到kernel.dll的入口點執(zhí)行)。按照下面的步驟調(diào)試上述過程:1.在loader.lst文件中查找到準備進入E0操作系統(tǒng)內(nèi)核執(zhí)行的指令(第755行)755 0000014F FF1517010080 ca

33、ll dword va_lmageE ntry6).根據(jù)之前記錄的loader.bin文件的大小,自己設計一個查看內(nèi)存的調(diào)試命令, 查看內(nèi)存中l(wèi)oader程序結束位置的字節(jié)碼,并與loader.lst文件中最后指令的字節(jié) 碼比較,驗證loader程序被完全加載到了正確的位置。Mvuirnxnn聊比胴低”Rxea11x511flXE0Hh 円 fl靜i trr *HxfHHkSH< hmc;hs ! 17> vbi RH?r1S Ic5出0訕HuZfRnJBfOb43173弓inUkWHt7<IB1 WAt t-fcU71557rnK(ii0m7dti i<Hnk*

34、87;jnp f rtriRfWi R卄湘1靦胴關beclhit J!»K0BaiHmBeiae»omUxflRflxflnHxWI< bnclin :3!O "丹b Ox I 1 fl I ib<ichffi J1«>:0站?0x1 ax01Hh«QnKemaeeoBonHsi&ib«xcSBk04CHkM)ghikt:Sl>"93fluffUxffBmcT1文件)加載到內(nèi)存中,然2. 計算此條指令的物理地址要復雜一些:偏移地址實際上是相對于節(jié)(節(jié) SECTION! NAS匯編中的概念)開始

35、的。由于在boot.asm程序中只有一個節(jié),所 以之前計算的結果都是正確的,但是在loader.asm程序中有兩個節(jié),并且此條指 令是在第二個節(jié)中。下面引用的代碼是loader.lst中第一個節(jié)的最后一條指令(第593行)593 000003C1 C20600 ret 6 因為第一個節(jié)中最后一條指令的偏移 為0x03c1,并占用了 3個字節(jié)(字節(jié)碼為C20600,所以可以計算出進入內(nèi)核執(zhí) 行的指令所在的物理地址為 0x1513 (0x1000+0x03c1+0x3+0x14f)。3. 使用添加物理地址斷點的調(diào)試命令 pb 0x1513添加一個斷點。4. 輸入調(diào)試命令c繼續(xù)執(zhí)行,到斷點處中斷。在

36、Con sole窗口中顯示要執(zhí)行的下一條指令(注意,此時的邏輯地址都為虛擬地址):(0) 0x000015130008:0000000080001513 (unk. ctxt): call dword ptr ds:0x80001117 ; ff1517110080由于這里使用了函數(shù)指針的概念,所以,根據(jù)反匯編指令可以確 定內(nèi)核入口點函數(shù)的地址就保存在虛擬地址 0x8000117處的四個字節(jié)中。5. 使用查看虛擬內(nèi)存的調(diào)試命令x /1wx 0x80001117查看內(nèi)存中保存的32位函數(shù)入口地址,在Con sole窗口中會輸出類似下面的內(nèi)容:0x0000000080001117<bogus

37、+ 0>: 0x800*記錄下此塊內(nèi)存中保存的函數(shù)地址,后面的實驗會驗證內(nèi)核入口點函數(shù)的地址與此地址是一致的。Bochx for Vindovs - 5i玄m 1 aQg|丈IhuIimmL、j>L BkIE13C)Melis:2> cCU) fir«<ihirtiint 1. Hx(»>W»t9mSfWU1513 In ?7 7Mrxt at t-gt:M£07SId)百H為障胸H呂IMI BUUa: WE!mtl«e0BtteUlsi3 Cunk. ctRt): CAII duDHl ptF ds :fdM8H

38、«eiL17 ;fnsLZiiaestt<hHJcllE:S> XlWK dxB0dO1117Lboclid Jt0>£ axseuisiae0Keeeeeeae«eeai 117 <1»日18+Uh cliE w 4、調(diào)試內(nèi)核:1) .在OSLab的 項目管理器”窗口中打開ke文件夾中的start.c文件,此文件中 只定義了一個函數(shù),就是操作系統(tǒng)內(nèi)核的入口點函數(shù)KiSystemStartup。2) .在KiSystemStartup 函數(shù)中的代碼行(第 61 行)KiInitializePic();添加 一個斷點。3) .現(xiàn)在可

39、以在Con sole窗口中輸入調(diào)試命令c繼續(xù)調(diào)試,在剛剛添加的斷點處 中斷。4) .在start.c源代碼文件中的KiSystemStartup函數(shù)名上點擊鼠標右鍵,在彈 出的快捷菜單中選擇添加監(jiān)視” KiSystemStartup函數(shù)就被添加到了監(jiān)視”窗 口中。在 監(jiān)視”窗口中可以看到此函數(shù)地址為void (PVOID) 0x800* vKiSystemStartup> 與在虛擬內(nèi)存x80001117處保存的函數(shù)入口地址相同,說明 的確是由Loader程序進入了操作系統(tǒng)內(nèi)核。5) .按F5繼續(xù)執(zhí)行E0操作系統(tǒng)內(nèi)核,在Display窗口中顯示E0操作系統(tǒng)已經(jīng)啟 動,并且控制臺程序已經(jīng)開始運行了。EOSB動后的狀態(tài)和行為1) .在控制臺中輸入命令ver ”后按回車。2) .輸出E0版本后的控制臺

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論