网站大量收购独家精品文档,联系QQ:2885784924

第二讲-操作系统的启动.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 2 操作系统 实 验 报 告 课程名称 操作系统实验 课程编号 0906553 实验项目名称 操作系统的启动 学号 班级 姓名 专业 计算机科学与技术 学生所在学院 计算机科学与技术学院 指导教师 王红滨 实验室名称地点 21B 475 哈尔滨工程大学 计算机科学与技术学院 一、实验概述 1. 实验名称 操作系统的启动 2. 实验目的 跟踪调试 EOS 在 PC 机上从加电复位到成功启动的全过程,了解操作系统的启动过程。 查看 EOS 启动后的状态和行为,理解操作系统启动后的工作方式。 3. 实验类型 验证型实验 4. 实验内容 准备实验 生成EOS Kernel项目,查看boot.asm和loader.asm生成的boot.bin文件和loader.bin文件的大小。 调试 EOS操作系统的启动过程 1 使用Bochs做为远程目标机 2 调试BIOS程序 3 调试软盘引导扇区程序 4 调试加载程序 5 调试内核 6 EOS启动后的状态和行为 二、实验环境 操作系统:Windows操作系统 编译器:集成开发环境OS Lab 工具:Floppy Image Editor工具、Bochs模拟器 语言:C语言、NASM汇编 三、实验过程 1. 设计思路和流程图 EOS操作系统的启动过程流程如图1所示: 图1 操作系统的启动流程 EOS操作系统的启动过程的调试如图2所示: 图2 调试过程 2. 需要解决的问题及解答 为什么EOS操作系统从软盘启动时要使用boot.bin和loader.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将loader.bin的功能移动到boot.bin文件中,则boot.bin文件的大小是否仍然能保持小于512字节? 答:BIOS将软盘引导扇区加载到0x7c00并开始执行后,软盘引导扇区中的boot.bin开始执行,并将软盘根目录总的loader.bin加载到0x1000并执行;loader.bin的主要功能是加载程序,先加载 Kernel.dll,然后启动保护模式和分页机制,最后跳到 Kernel.dll 的入口点执行。如果将loader.bin功能移动到boot.bin文件中,会使程序规模扩大,可能使boot.bin文件的大小大于512字节。 软盘引导扇区加载完毕后内存中有两个用户可用的区域,为什么软盘引导扇区程序选择将loader.bin加载到第一个可用区域的0x1000处呢?这样做有什么好处?这样做会对文件的大小有哪些限制。 答:用户只用两个可用区域,第一个可用用户区是低地址区,地址范围为0x0600~0x7c00,空间大小比较小,可以容纳loader.bin,所以我们选择loder.bin加载到较小的第一用户区。这样做的好处是loader.bin占用小空间,节约资源。限制是loader.bin文件必须小于30208字节。 根据之前记录的 loader.bin 文件的大小,自己设计一个查看内存的调试命令,查看内存中 loader程序结束位置的字节码,并与 loader.lst 文件中最后指令的字节码比较,验证 loader 程序被完全加载到了正确的位置 答:loader.bin的文件大小为1566字节,转换为16进制则为0x61e字节,loader.bin被加载到0x1000处执行,则loader的结束位置应该为0x1000+0x61e,即为0x161e处,如果查看最后8字节的话,应该在结尾位置向上偏移8字节,即0x1616,命令为xp /8b 0x1616。 仔细比较实验指导10-5图和图10-6,尝试说明哪个是应用程序的进程,它和系统进程有什么区别,哪个是应用程序的主线程,它和系统线程有什么区别。 答:图10-6中ID为31的进程是应用程序的进程,ID为1的进程为系统进程, ID为33的线程为应用程序的主线程,ID为2的线程是系统进程的主线程,系统线程的优先级别高,存放在物理内存的低端。 3. 程序运行时的初值和运行结果 调试 BIOS 在 Console 窗口中输入调试命令 sreg 后按回车,显示当前 CPU 中各个段寄存器的值,输入调试命令 r 后按回车,显示当前 CPU 中各个通用寄存器的值,输入调试命令xp /1024b 0x0000,查看开始的 1024 个字节的物理内存。在 Console

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档