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

熟悉实验环境

一. 熟悉实验环境

  1. 准备环境

    1. 实验平台

      硬件环境是 IA-32(x86) 架构的 PC 机;

      软件环境是软件环境是 Bochs + gcc + IDE+Linux0.11;

      x86 模拟器 Bochs;

      GCC编译器;

      GDB调节器;

      Ubuntu (GNU/Linux);

    2. 准备环境

      hit-oslab 实验环境简称 oslab,是一个压缩文件(hit-oslab-linux-20110823.tar.gz),这个文件已经下载到了 /home/teacher 目录和 /home/shiyanlou/oslab(进入实验环境,就是点击左边的 terminal 打开终端以后,所在的目录就是 /home/shiyanlou,这是主目录)下,可以使用下面的命令解压展开压缩包即可工作。

         # 进入到 oslab 所在的文件夹
         $ cd /home/shiyanlou/oslab/
      
         # 解压,并指定解压到 /home/shiyanlou/
         # 这样的话,在 /home/shiyanlou/oslab/ 中就能找到解压后的所有文件
         $ tar -zxvf hit-oslab-linux-20110823.tar.gz \
           -C /home/shiyanlou/
      
         # 查看是否解压成功
         $ ls -al
         # 除了压缩包 hit-oslab-linux-20110823.tar.gz 之外,其他的就是压缩包中的内容
      
      copy
  2. 文件结构

    1. Image文件

    2. bochs目录

    3. run脚本

    4. hdc-0.11.img 文件

二. 使用方法

  1. 开始使用之前的准备活动:把当前目录切换到 oslab 下,用 pwd 命令确认,用 ls -l 列目录内容。

    # 切换目录
    $ cd /home/shiyanlou/oslab/
    # 确认路径
    $ pwd
    # 查看目录内容
    $ ls -l
    
    copy
  2. 编译内核

    首先要进入 linux-0.11 目录,然后执行 make 命令;

    $ cd ./linux-0.11/
    $ make all
    
    copy

    在多处理器的系统上,可以用 -j 参数进行并行编译,加快速度。

    $ make -j 2
    
    copy
  3. 在 Bochs 中运行最新编译好的内核很简单,在 oslab 目录下执行:

    # 注意是在上层目录
    # 刚刚编译是在 oslab/linux-0.11/ 文件夹下
    $ cd ~/oslab/
    
    # 执行 run 脚本
    $ ./run
    
    copy
  4. 内核调试分为两种模式:汇编级调试和 C 语言级调试。

    1. 汇编级调试

      汇编级调试需要执行命令:

      # 确认在 oslab 目录下
      $ cd ~/oslab/
      
      # 运行脚本前确定已经关闭刚刚运行的 Bochs
      $ ./dbg-asm
      
      copy
    2. C语言级调试

      C语言级调试需要执行命令:

      $ cd ~/oslab
      $ ./dbg-c
      
      copy

      打开另一个终端再执行以下命令:

      $ cd ~/oslab
      $ ./rungdb
      
      copy
  5. Ubuntu 和 Linux 0.11 之间的文件交换如何启动

    开始设置文件交换之前,务必关闭所有的 Bochs 进程。

    在 Ubuntu 上访问oslab 下的 hdc-0.11-new.img 内容的方法是:

       $ cd ~/oslab/
    
       # 启动挂载脚本
       $ sudo ./mount-hdc
    
    copy

    之后,hdc 目录下就是和 0.11 内核一模一样的文件系统了,可以读写任何文件(可能有些文件要用 sudo 才能访问)。

       # 进入挂载到 Ubuntu 上的目录
       $ cd ~/oslab/hdc
    
       # 查看内容
       $ ls -al
    
    copy

    读写完毕,卸载这个文件系统:

       $ cd ~/oslab/
    
       # 卸载
       $ sudo umount hdc
    
    copy
最新评论
暂无评论~