好好好 L35 2020-05-19 09:54:12 熟悉实验环境
800 0

“clone from 操作系统实验”实验报告

熟悉实验环境

南通大学信息科学技术学院

实验名称: 熟悉实验环境

实验日期: 2020 年 5 月 18 日

班级:物联网184姓名:王积玉学号:1813061118

一、实验预习报告

1、实验相关知识的简述:
(1)Bochs 是一个免费且开放源代码的 IA-32(x86)架构 PC 机模拟器。在它模拟出的环境中可以运行 Linux、DOS 和各种版本的 Windows 等多种操作系统。而 Bochs 本身具有很高的移植性,可以运行在多种软硬件平台之上。
(2)GCC 是和 Linux 一起成长起来的编译器。Linux 最初的版本就是由 GCC 编译的。现在 GCC 也是在自由软件领域应用最广泛的编译器。
(3)GDB 调试器是 GCC 编译器的兄弟。做为自由软件领域几乎是唯一的调试器,它秉承了 Unix 类操作系统的一贯风格,采用纯命令行操作,有点儿类似 dos 下的 debug。
(4)Ubuntu 也许不是目前最好用的 Linux 桌面发行版,但它一定是最流行的。主要特点是易用,非常的易用。
2、 实验原理的预习情况:
1.对实验环境有了一定的了解
2.对实验相关知识有了了解
3、实验注意事项:
C语言调试的时候,启动的顺序不能交换,否则 gdb 无法连接。开始设置文件交换之前,务必关闭所有的 Bochs 进程。不要在 0.11 内核运行的时候 mount 镜像文件,否则可能会损坏文件系统。同理,也不要在已经 mount 的时候运行 0.11 内核。在关闭 Bochs 之前,需要先在 0.11 的命令行运行 “sync”,确保所有缓存数据都存盘后,再关闭 Bochs。

二、实验报告

1、实验目的与要求: 使学生全面地理解、掌握操作系统各部分的基本原理和实现技术;能深层次地使用和改造操作系统;具备设计和实现操作系统等大型系统软件的能力。课程注重和实际操作系统(Linux)结合,引导学生参与真实操作系统的相关实践和开发。 实验的基本流程是根据实验要求编写应用程序、修改 Linux 0.11 的源代码,用 gcc 编译后,在 Bochs 的虚拟环境中运行、调试目标代码。
2.实验仪器或材料:
本操作系统实验的硬件环境是 IA-32(x86) 架构的 PC 机(在实验楼的环境中就是右侧的窗口),主要软件环境是 Bochs + gcc + 你最喜欢的编辑器 / IDE + 你最喜欢的操作系统 + Linux 0.11 源代码。
3、实验原理:
实验的基本流程是根据实验要求编写应用程序、修改 Linux 0.11 的源代码,用 gcc 编译后,在 Bochs 的虚拟环境中运行、调试目标代码。
4、实验过程及数据记录:
(1)准备环境 hit-oslab 实验环境简称 oslab,是一个压缩文件(hit-oslab-linux-20110823.tar.gz)。这个文件已经下载到了 /home/teacher 目录和 /home/shiyanlou/oslab。可以使用下面的命令解压展开压缩包即可工作。

图片描述图片描述 (2)使用方法 开始使用之前的准备活动:把当前目录切换到 oslab 下,用 pwd 命令确认,用 ls -l 列目录内容。本实验的所有内容都在本目录或其下级目录内完成。

图片描述 (3)编译内核 首先要进入 linux-0.11 目录,然后执行 make 命令: 图片描述 在多处理器的系统上,可以用 -j 参数进行并行编译,加快速度。例如双 CPU 的系统可以: 图片描述 最后生成的目标文件是一个软盘镜像文件—— linux-0.11/Image 图片描述 (4)运行 在 Bochs 中运行最新编译好的内核很简单,在 oslab 目录下执行: 图片描述 如果出现 Bochs 的窗口,里面显示 linux 的引导过程,最后停止在 [/usr/root/]#,表示运行成功,如下图所示。 图片描述 (5)调试

  1. 汇编级调试 汇编级调试需要执行命令: 图片描述 汇编级调试的启动之后 Bochs 是黑屏,这是正常的。可以用命令 help 来查看调试系统用的基本命令。 图片描述 图片描述
  2. C 语言级调试 C 语言级调试稍微复杂一些。首先执行如下命令:
    $ cd ~/oslab
    $ ./dbg-c
    
    copy
    然后再打开一个终端窗口,执行:
    $ cd ~/oslab
    $ ./rungdb
    
    copy
    注意:启动的顺序不能交换,否则 gdb 无法连接。 出现下图所示的提示,才说明连接成功: 图片描述!图片描述 (6)文件交换 开始设置文件交换之前,务必关闭所有的 Bochs 进程。 oslab 下的 hdc-0.11-new.img 是 0.11 内核启动后的根文件系统镜像文件,相当于在 bochs 虚拟机里装载的硬盘。在 Ubuntu 上访问其内容的方法是: 图片描述 读写完毕,不要忘了卸载这个文件系统: 图片描述 经过 sudo ./mount-hdc 这样处理以后,我们可以在 Ubuntu 的 hdc 目录下创建一个 xxx.c 文件,然后利用 Ubuntu 上的编辑工具(如 gedit 等)实现对 xxx.c 文件的编辑工作,在编辑保存以后。 执行 sudo umount hdc 后,再进入 Linux 0.11(即 run 启动 bochs 以后)就会看到这个 xxx.c(即如下图所示),这样就避免了在 Linux 0.11 上进行编辑 xxx.c 的麻烦,因为 Linux 0.11 作为一个很小的操作系统,其上的编辑工具只有 vi,使用起来非常不便。 图片描述图片描述
    5、实验结果分析:
    实验结果正确,熟悉了实验环境。

    三、实验总结

    这次实验,我对平台和x86 模拟器 Bochs、 GCC 编译器、GDB 调试器、Ubuntu (GNU/Linux)都进行了熟悉;让我了解了实验环境的工作模式,使用方法,编译内核,运行,调试,文件交换的方法。
最新评论
暂无评论~