oslab 操作系统 实验报告 第一讲 实验环境的使用

操作系统
实 验 报 告
课程名称 操作系统实验 课程编号 201406412
实验项目名称 实验环境的使用
学号 2017201212 班级 20172012
姓名 李博浩 专业 软件工程
学生所在学院 计算机科学与技术学院 指导教师 关键
实验室名称地点 21B476

哈尔滨工程大学

第一讲 实验环境的使用
一、实验概述

  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 应用程序项目的步骤如下:
  5. 在“文件”菜单中选择“新建”,然后单击“项目”。
  6. 在“新建项目”对话框中,选择项目模板“EOS 应用程序”。
  7. 在“名称”中输入新项目使用的文件夹名称“eosapp”。
  8. 在“位置”中输入新项目保存在磁盘上的位置“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
应用程序项目的名称,进而修改可执行文件的名称:

  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 应用程序。
发布了192 篇原创文章 · 获赞 71 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_43870649/article/details/90175923