操作系统
实 验 报 告
课程名称 操作系统实验 课程编号 201406412
实验项目名称 实验环境的使用
学号 2017201212 班级 20172012
姓名 李博浩 专业 软件工程
学生所在学院 计算机科学与技术学院 指导教师 关键
实验室名称地点 21B476
哈尔滨工程大学
第一讲 实验环境的使用
一、实验概述
- 实验名称
实验环境的使用 - 实验目的
熟悉操作系统集成实验环境 OS Lab 的基本使用方法。
练习编译、调试 EOS 操作系统内核以及EOS 应用程序。 - 实验类型
验证 - 实验内容
启动 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 应用程序项目的步骤如下: - 在“文件”菜单中选择“新建”,然后单击“项目”。
- 在“新建项目”对话框中,选择项目模板“EOS 应用程序”。
- 在“名称”中输入新项目使用的文件夹名称“eosapp”。
- 在“位置”中输入新项目保存在磁盘上的位置“C:\”。
点击“确定”按钮。
此项目就是一个 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
应用程序项目的名称,进而修改可执行文件的名称:
- 在“项目管理器”窗口中,右键点击项目节点(根节点)。
- 在弹出的快捷菜单中选择“重命名”,然后可以输入一个新的项目名称,例如“MyApp”,然后按
回车键使修改生效。 - 按 F7 生成项目。
- 选择“调试”菜单中的“删除所有断点”。
- 按 F5 启动调试。OS Lab 会弹出一个调试异常对话框,选择“否”忽略异常,EOS 应用程序会自
动执行。 - 激活虚拟机窗口,可以看到自动执行的可执行文件的名称为 MyApp.exe,如图 9-9 所示。也可以
打开 C:\eosapp\debug 文件夹,确认生成了可执行文件 MyApp.exe。
三、思考题
- “逐过程”调试与“逐语句”调试
“逐语句”调试与“逐过程”调试的区别主要在调用函数时,逐语句调试可以进入到函数内部,逐过程则是用在程序执行过程中,当我们不需要查看程序具体实现方法时,把函数调用当成一条语句去执行。
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 应用程序。