操作系统的启动实验报告_第1页
操作系统的启动实验报告_第2页
操作系统的启动实验报告_第3页
操作系统的启动实验报告_第4页
操作系统的启动实验报告_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统实验报告课程名称操作系统课程编号0906553实验项目名称操作系统的启动学号年级专业计算机科学与技术学生所在院计算机科学与技术学院指导老师实验室名称工程大学计算机科学与技术学院一.实验概述.实验名称:操作系统的启动.实验目的:1)跟踪调试EOS在PC机上从加电复位到成功后启动的全过程,了解操作系统的启动过程;2)查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。.实验类型:验证,设计.实验容:1)准备实验,启动OSLab,新建一个EOSKernel项目;2)调试EOSB作系统的启动过程①使用Bochs作为远程目标机②调试BIOS程序③调试软盘引导扇区程序④调试加载程序⑤调试核⑥查看EOS启动后的状态和行为二.实验环境操作系统:windowsXP编译器:TevalatonOSLab语言:C++三.实验过程.设计思路和流程图:CPU从默认位置执行BIOS的开机自检和初始化程序之后,BIOS将软盘引导扇区加载到 0x7C00并执行软盘引导扇区中的Boot程序开始执行,将软盘根目录中的Loader程序文件Loader.bin加载到0x1000并执行Kernel.dll开始执行,初始化EOS内核,EOS启动完毕Loader程序开始执行,先加载Kernel.dll,然后启动保

护模式和分页机制,最后调到Kernel.dll的入口点执行.实验过程:1)在Console窗口中输入调试指令 sreg,查看当前CPU中各个段寄存器的值,其中CS寄存器信息行中的«s=0xf000”表示CS寄存器的值为0xf000。月foeVindvTS-ConsoleKnrhskWhEnnlAtni*2.4.1

B4ildfronCUScn^pErhotonJ晌n*7,2609for0£Lm>>Jrcvidin^fconri$fur4tionfrowC'\DocuncntaandCcttings^/ldninlatraturMlvDvcmnicntiii^O£irLuel bitirissMkrclia^>SLabrC.Lxr*1C<\DucuiwntsandSvtClnHS^<iiiLnLstt-atcr^lvJlrtiirilllAcbiriRK\F(irlis\OSLahPC.心工『七;算:ata#一痔aittitmlruhCHSmrisr^rrionRrtAhlpflDucmwents^LabitBttnR/R/AkdulduldubuueutL»30SS6QO8Oi[4cx±ntt-0<0>国x打门ffE日1(buelis:1y*luu000.依:节=曲¥曲gon.ss:s=WxMlinH^9&;£=UxUUUH^Ffi£b-Oh0O00^JiS3-6x0000^Jine H±n32nodulaasthe CUI]lininglayFilebochsout.txtfBBSifffflqunit.ctKt>=jnpfarfB09:c35bilh-0xffO093ff.dh=O>eMft93fla-dh=titxUBMUVJBU,dh=MtH»UUU9JMH>dh&H66009938,dUiTx的的必面.dl-0x60BOffff,d工鹏x0前由Hf『.illMdxMWMnffdl=UxUUUMFfdl-GxGG00r£ff,dl-Gx0000ffrf,ualld-7uh11。=?uali<l=7ualid=Vuali<i=7ualld-7ldlr:^-0AOO09RdU»-ex0O009200,dl-0xO000rfffvalid-1Lr:s-e>0O0o.Jh-«xeeeo6bd0,1u-g入眄眄ffff,vaii«i=iqrdtr;l)a£e=8x0^000600.Unit=0xffifLinit^iMffifChnclii::2>2)输入调试命令r,显示当前CPU中各个通用寄存器的值,"rip:0x00000000:0000fff0”表示IP寄存器的值为0xfff0。<bochsre^sooeoaa:39090606电时口丽丽比piMm洞口0X0购阔甘H宝同阔陶(海口Qx0QOO0O39:99@9(^^0>08000003:990906666x00000099:09090Q6Q0x00000000:09000008e^sooeoaa:39090606电时口丽丽比piMm洞口0X0购阔甘H宝同阔陶(海口Qx0QOO0O39:99@9(^^0>08000003:990906666x00000099:09090Q6Q0x00000000:09000008必^^的州修二HkMkMVWafdfUtFsfzfafufcfAir-APAHnnAHi«bp;i*is0x09039606^6000009MH.,i£:0x09900606=06600069r?:rJO:0x09900606JOBQO0009rli;卜12:0x09309800:06000000r13:r14:修k(H的曲刖W•rib:tip:0K09009606:eQ80fff0e£la$f±Bk903Q0SQ2iduindFacurnrfnt[OPL事3)输入调试命令xp/1024b0x0000,查看开始的1024个字节的物理存。在Console中输出的这1K物理存的值都为0,说明BIOS中断向量表还没有被加载到此处。4)输入调试命令xp/512b0x7c00 ,查看软盘引导扇区应该被加载到的存位置。输出的存值都为0,说明软盘引导扇区还没有被加载到此处。可以验证BIOS第一条指令所在逻辑地址中的段地址 CS寄存器值是一致的,偏移地址和IP寄存器的值是一致的。由于存还没有被使用,所以其中的值都为 0。输入调试命令vb0x0000:0x7c00,这样就在逻辑地址0x0000:0x7c00(相当于物理地址0x7c00)处添加了一个断点。 输入调试命令c继续执行,在0x7c00处的断点中断。中断后会在Console窗口中输出下一个要 执行的指令,即软盘引导扇区程序的第一条指令。<bochs:6>cC0)比电akpoirt43172?8,in0030:7c3S(axSOO0?cOO)Itextatt423»nfi?[gKg©B37cga]06日017,倒funk, jnp.*@M3Bgd〔gxg9@G>e&f);用b&d输入调试命令sreg验证CS寄存器(0x0000)的值。

<bochf:3>sregk:s=Ox0a^SFdh=以。爵肛dl心眄加fFff.掘Jid=l输入调试命令r验证IP寄存器(0x7c00)的值。rip:防。眦的QF0;的已97匕舵8)输入调试命令xp/512b0x0600 可验证第一个用户可用区域是空白的。9)设计两个查看存的调试命令,分别验证这两个用户可用区域的高地址端也是空白的。Buchsfair■ind.o■,芸—CoeisuIbH0E<bocM-ll>icpZSlZb8x36ffChncliK]:1.HhEUU修奠修修纯必 <bo<yuc*«><:必必。日x05Mbc过必Uy修旧HHHH图函MBTtf?工boqwiA■冏*口。 口亶附G W茂。flB>s性丽mw。曲MHxHdM闻绚gHHWPBTBECI»«ru4♦B一口口 0x30lfe>30>«gMBxW0M000侬BxVB,即HHH如?<bn9事•9mCI@ @xOI3 0^0024>=的耳封弊HwMH修出的“xldMHHKlHHklHIdHH^Lr(bus”手,9k06 »m00 Q>0032>:Id^MHHxHHaxtnM耳gHHH仲<Imi^iiErBwEie 0xbl4R>;AxHHRkH?RkRRRxRHiR冀5口H日即讨HR雨@flTCf<briigjiisi-0xUO tb<UU4BXRmQO0mFF金『h。宣RM0M。?日章讶q。靶周附占制曲口附7374bu电MM弄»K»1 UxHd U^OH乂》:RmB2口流嗣BmccDixflfli♦3 BxBB 班典fi4>SRmBISAkW『*anBxflflOx6g06S€i6e00@60747<bog/HmMM HyBB 的MM72>=0m6O0x0G6x66修K^@0eae00O0eeB74f<必豆皿等告Hxb& MxHf80>-0X00Qx3Q0M00BxM0次电电3^eeoeeeeoodee0^7 *OK0OOK200MOf0x660X001■]立、即口ckMfurVxndows--Coii^ule■□IXxpzl*OHxTnBKLJEkte>isJ£0X0^000oaeieo»@7c@0<bo^Lis*幡/1 Mw740>:0xob0x6d6x903x540x&5WUWVWMUW7^m”0x6f0x6trOm0@0xB21Bxffi FbcA1 回*力国1HChngnsrlEb>:HmMZHkcWOmHMUx444HkBIi9xfB 0^J@f 0x00AARWIAAM7&1flChn^iiA>之小0x12n^fw3mHRI0XS0Rg 『厚钢&kB60SQ09SO0SO7&2OChuqu心*32>«SxOSBxQQBk80SImOQBxSO◎MW mN? BxclMlkK4HIdldUHblMIIMMVcz<bu^us#4H”或Ee:HxU7Mm2a■m2,1md口风20 8m20 0x20MMMWiRttWIVfi:tftSkm学“?1■B«2ie MA* 6x41个”;出HE*W篁割RfigiimaxHx?ER0xB0@3€9d@G3S67c3SOfeoqnus*Hx^kl 必XMO 仍篁MklSB>:目第5寸@x310x323x200X20Um四UdUIIJ的M”的・凡加《huuus蔺置nob4>:IdxU^flWxidU。心HIdNkIJWxU»HKtlHfilMtlMtMHOWI?n4aOhi^hs・Bk44 8>45 Sx5Z曾):利HxlHHk4i7Hm4FHk41RKM0PI00ffi0Hm7c50<ho/L■工.00>;0x290X20Ox-120M4少0x4cRjc* HrLY MmGk01KB0。的。8spi0SB7u5S<liuhiuu*98>e0x650^260m4uSm6FOxSlan\左分卉广|a'b羽臣的十甫ZX攵讣曰物左分卉r-h6Aloader.bin文件加载到物理存10)主品5导用区任方H口王聚仕方用寸状猛中日口的0x1000处,然后跳转到loader程序的第一条指令(物理地址0x1000处的指令)继续执行loader程序。输入调试命令xp/8b0x1000查看存0x1000处的数据,验证此块存的前三个字节和loader.lst 文件中的第一条指令的字节码是相同的。[bochs1:0>:0xe90x18Qk910泌8的B阅加图81晚0>:0xe90x18Qk910>00 0>0011)根据之前记录的loader.bin 文件的大小,自己设计一个查看存的调试命令,查看存中loader程序结束位置的字节码,并与loader.lst 文件中最后指令的字节码比较,验证loader程序被完全加载到了正确的位置。[hochsl;的口郎时阉0却hHE<bngua+ 耳5?瞅"加仃 Mr90xc20x04 8xg日12)调试核,在项目管理器中打开 start.c文件,对其中的操作系统核入口点函数KiSystemStartup添加断点及监视,在监视窗口中可以看到此函数的地址,与在虚拟存x80001117处保存的函数入口地址相同, 说明的确是由loader程序进入了操作系统核。<l»chs:7>Th9M1S13<bochs:8>c(H)Breakpoint2,白xd皿9J曲ih779Nexldt1-112S82064® :0609000906001SIJ<nnk.ctxt>:callduotilptvda10x0009111?:fFl£17LL»0M<hnchs:^> 7[bochsl:3前随随翻《boguGOX 耿&0619心813)在控制台中输入命令“ver",可得EOS的的版本,在控制台中输入命令“pt”,课查看输出的进程和线程信息。在进程列表中只有一个ID为1的系统进程,其优先级为24,包含有10个线程,其中的ID为2的线程是该进程的主线程, 系统进程没有映像名称。在线程列表中有10个线程,它们都是系统线程。其中优先级为 0的是空闲线程,当没有优先级大于0的线程占用处理器时,空闲线程就会在处理器上运行并处于运行状态(Running),否则就处于就绪状态(Ready)。ID为20的线程是控制台派遣线程,用于将键盘事件派遣到活动的控制台线程, 所以在没有键盘事件发生的时间里, 该线程都处于阻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论