当前位置:文档之家› 2017201212李博浩第一讲 实验环境的使用

2017201212李博浩第一讲 实验环境的使用

操作系统
实验报告
哈尔滨工程大学
第一讲实验环境的使用
一、实验概述
1. 实验名称
实验环境的使用
2. 实验目的
熟悉操作系统集成实验环境OS Lab 的基本使用方法。

练习编译、调试EOS 操作系统内核以及EOS 应用程序。

3. 实验类型
验证
4. 实验内容
启动OS Lab ,学习OS Lab 的基本使用方法,新建Windows 控制台应用程序项目,生成项目,执行项目,调试项目,使用断点中断执行,单步调试,查看变量的值,调用堆栈,EOS 内核项目的生成和调试,新建EOS 内核项目,生成项目,查看EOS SDK(Software Development Kit)文件夹,EOS 应用程序项目的生成和调试,新建EOS 应用程序项目,生成项目,调试项目,修改EOS 应用程序项目名称,退出OS Lab,保存EOS 内核项目。

二、实验环境
Windows xp操作系统,tevation os lab,c(c++)语言
三、实验过程
1.启动OS Lab ,学习OS Lab 的基本使用方法,新建Windows 控制台应用程序项目,生成项目,执行项目,调试项目
新建一个EOS 应用程序项目的步骤如下:
1. 在“文件”菜单中选择“新建”,然后单击“项目”。

2. 在“新建项目”对话框中,选择项目模板“EOS 应用程序”。

3. 在“名称”中输入新项目使用的文件夹名称“eosapp”。

4. 在“位置”中输入新项目保存在磁盘上的位置“C:\”。

5.
点击“确定”按钮。

此项目就是一个EOS 应用程序项目。

使用Windows 资源管理器将之前生成的C:\eos\sdk 文件夹拷贝覆盖到C:\eosapp\sdk 位置。

这样EOS
应用程序就可以使用最新版本的EOS SDK 文件夹了。

使用断点中断执行,单步调试,查看变量的值,调用堆栈
EOS 内核项目的生成和调试,新建 EOS 内核项目,生成项目 ,查看 EOS SDK (Software Development Kit )文件夹
使用 FloppyImageEditor 工具打开该项目中的 Floppy.img 文件,查看软盘镜像中的文件。

loader.bin
和 kernel.dll 是从 C:\eosapp\sdk\bin\debug 文件夹写入的,C:\eosapp\sdk\bin\debug\boot.bin 被写
入了软盘镜像文件的引导扇区中。

eosapp.exe 就是本项目生成的 EOS 应用程序。

EOS 操作系统启动后会根
据autorun.txt 文本文件中的内容启动执行eosapp.exe 程序,双击autorun.txt 文件查看其内容。

结合本书第 1 章中关于EOS 应用程序从源代码到可在虚拟机中运行过程的介绍,仔细体会EOS 应用程
序项目生成、调试的过程,以及EOS 应用程序是如何使用EOS SDK 文件夹的。

EOS 应用程序项目的生成和调试,新建EOS 应用程序项目,生成项目,调试项目,修改EOS 应用程序项目名称,退出OS Lab,保存EOS 内核项目。

EOS 应用程序项目所生成的可执行文件的名称默认是由项目名称决定的。

由于当前EOS 应用程序项目
的名称是EOSApp,所以该项目所生成的可执行文件的名称默认为EOSApp.exe。

按照下面的步骤修改EOS
应用程序项目的名称,进而修改可执行文件的名称:
1. 在“项目管理器”窗口中,右键点击项目节点(根节点)。

2. 在弹出的快捷菜单中选择“重命名”,然后可以输入一个新的项目名称,例如“MyApp”,然后按
回车键使修改生效。

3. 按F7 生成项目。

4. 选择“调试”菜单中的“删除所有断点”。

5. 按F5 启动调试。

OS Lab 会弹出一个调试异常对话框,选择“否”忽略异常,EOS 应用程序会自
动执行。

6. 激活虚拟机窗口,可以看到自动执行的可执行文件的名称为MyApp.exe,如图9-9 所示。

也可以
打开C:\eosapp\debug 文件夹,确认生成了可执行文件MyApp.exe。

三、思考题
1. “逐过程”调试与“逐语句”调试
“逐语句”调试与“逐过程”调试的区别主要在调用函数时,逐语句调试可
以进入到函数内部,逐过程则是用在程序执行过程中,当我们不需要查看程序具体实现方法时,把函数调用当成一条语句去执行。

2.思考生成EOS SDK 文件夹的目的和作用。

查看EOS SDK 文件夹中的内容,明白文件夹的组织结构和各个文件的来源和作用。

查看EOS 应用程序包含了SDK 文件夹中的哪些头文件,是如何包含的?
EOS SDK文件夹是提供给开发人员进行应用程序开发的,这样程序员就可以快速建立应用软件,省去了编写硬件代码和基础代码框架的过程。

当我们在IDE环境中将EOS操作系统内核包含的源代码文件生成二进制文件时,会将boot.asm文件生成boot.bin文件,将loader.asm文件生成loader.bin文件,将其他源代码文件生成kernel.dll文件和libkernel.a文件。

EOS SDK文件夹主要包括INC 头文件、LIB文件夹、导入库文件夹和BIN文件夹动态链接库,可执行程序,二进制文件。

eos.h负责导出API函数声明;eosdef.h负责导出函数类型的定义;error.h负责导出错误码,这三个头文件被复制到INC文件夹中,而将生成的四个二进制文件都复制到BIN文件夹中。

EOS应用程序在项目的头文件中只包含了eos.h文件,eos.h文件里又包含了eosdef.h文件和error.h文件。

问题及解决过程:未遇到问题。

实验中产生的错误及原因分析:实验过程未遇到错误。

四、实验体会
通过这次操作系统实验,我学习了很多基础操作,熟悉操作系统集成实验环境OS Lab 的基本使用方法。

练习编译、调试EOS 操作系统内核以及EOS 应用程序。

相关主题