- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华北电力大学
实 验 报 告
|
|
实验名称 操作系统实验
课程名称 操作系统综合实验实验一
一.实验目的
(1)熟悉操作系统集成实验环境OS Lab的基本使用方法。
(2)练习编译、调试EOS操作系统内核以及EOS应用程序。
实验内容
(1)启动OS Lab;
(2)学习OS Lab的基本使用方法:练习使用OS Lab编写一个Windows控制台应用程序,熟悉OS Lab的基本使用方法(主要包括新建项目、生成项目、调试项目等);
(3)EOS内核项目的生成和调试 : 对EOS内核项目的各种操作(包括新建、生成和各种调试功能等)与对Windows控制台项目的操作是完全一致的;
(4)EOS应用程序项目的生成和调试;
(5)退出OS Lab 。
问题及解答
1) 练习使用单步调试功能(逐过程、逐语句),体会在哪些情况下应该使用“逐过程”调试,在哪些情况下应该使用“逐语句”调试。练习使用各种调试工具(包括“监视”窗口、“调用堆栈”窗口等)。
答:逐语句,就是每次执行一行语句,如果碰到函数调用,它就会进入到函数里面。 而逐过程,碰到函数时,不进入函数,把函数调用当成一条语句执行。 因此,在需要进入函数体时用逐语句调试,而不需要进入函数体时用逐过程调试。
2) 思考生成EOS SDK文件夹的目的和作用。查看EOS SDK文件夹中的内容,明白文件夹的组织结构和各个文件的来源和作用。查看EOS应用程序包含了SDK文件夹中的哪些头文件,是如何包含的?
答:EOS SDK是为应用程序调用系统API提供服务,可作为用户编程中可使用的工具包集合。
EOS SDK文件夹主要包括INC头文件、LIB文件夹 导入库文件和BIN文件夹 动态链接库,可执行程序,二进制文件。
EOS SDK包含的头文件有:eos.h负责导出API函数声明;eosdef.h负责导出函数类型的定义;error.h 负责导出错误码。
1.新建Windows控制台应用程序
生成项目:
执行项目:
调试项目:
使用断点终端执行:
查看EOS SDK(Software Development Kit)文件夹:
修改EOS应用程序项目名称 :
这次是验证性试验,具体步骤和操作方法都是与实验教程参考书上一致,实验很顺利,实验过程没有遇到困难。通过这次实验,我掌握了OS Lab启动和退出操作;练习使用OS Lab编写一个Windows控制台应用程序,熟悉OS Lab的基本使用方法新建项目、生成项目、调试项目等。 实验2 操作系统的启动
一.实验目的
1.跟踪调试EOS在PC机上从加电复位到成功启动的全过程,了解操作系统的启动过程。
2.查看EOS启动后的状态和行为,理解操作系统启动后的工作方式。
二.实验内容
1. 调试EOS操作系统的启动过程。
2.调试加载程序。Loader程序的主要任务是将操作系统内核(kernel.dll文件)加载到内存中,然后让CPU进入保护模式并且启用分页机制,最后进入操作系统内核开始执行(跳转到kernel.dll的入口点执行)。
3.调试内核EOS启动后的状态和行为。查看EOS的版本号:
1)在控制台中输入命令“ver”后按回车。
2)输出EOS版本后的控制台如下图所示。
5 查看有应用程序运行时进程和线程的信息:
1)待 EOS启动完毕,在EOS控制台中输入命令“hello”后按回车。此时Hello.exe应用程序就开始执行。
2)迅速按Ctrl+F2切换到控制台2,并输入命令“pt”后按回车。输出的进程和线程信息如下图所示
三.实验内容问题及解答1. 为什么EOS操作系统从软盘启动时要使用boot.bin和loader.bin两个程序?使用一个可以吗?它们各自的主要功能是什么?如果将loader.bin的功能移动到boot.bin文件中,则boot.bin文件的大小是否仍然能保持小于512字节?
在IDE环境启动执行EOS操作系统时,会将boot.bin、loader.bin和kernel.dll三个写入软盘镜像文件中,然后让虚拟机来执行软盘中的EOS操作系统。仅使用其中一个是不能运行的。
2. loader.bin加载到第一个可用区域的0x1000处呢?这样做有什么好处?这样做会对loader.bin文件的大小有哪些限制。
首先用户只用两个可用区域,加载位置非此即彼。第一个可用用户区是低地址区,且空间大小比较小,适合容纳小文件,所以我们选择将占用空loder.bi加载到第一用户区。
优点:由低地址开始,便于检索查找。小文件占用小空间,节约资
文档评论(0)