• 两个实验操作系统-ubuntu在安装配置pintos


    安前两次莫名其妙, 蛋疼的实验操作系统..

    首先下错了总结第一次。

    使用最后gdb调试pintos什么时候, 这个错误将被报告:

    bochsrc.txt:8: Bochs is not compiled with gdbstub support

    百度了好久没找到解决的方法。

    后来通过设置 ubuntu 64位 兼容32位 , 攻克了问题。

    具体解决的方法例如以下: (依次执行例如以下三条指令就可以)

    (要先执行这三条指令, 再安装配置pintos)


    $ sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
    $ sudo apt-get install libncurses5:i386
    $ sudo apt-get install g++-multilib

    之后就是pintos的安装了。

    安装过程

    一.安装bochs

    总的步骤:

    Install bochs
    • $ tar zxvf bochs-2.4.5.tar.gz
    • $ cd bochs-2.4.5
    • $./configure --enable-gdb-stub • $ make
    • $ sudo make install


    具体解释:

    Bochs和pintos下载到ubuntu系统下的home/qing(变成你的username)

    打开终端(应用程序---附件---终端)。输入命令:sudo passwd root,系统提示你输入root用户的新password,输入两次后成功激活root用户。以后你就能够用root用户登陆了。

    通过终端进入bochs所在的位置:cd /home/qing(最前面加/,表示绝对路径)

    解压bochs:tar zxvf bochs-2.4.5.tar.gz

    解压后,从位置--计算机----file system---home----qing,能够看到文件已经被解压成为文件夹

    接下来依照例如以下操作:

    进入bochs解压后的文件夹:cd bochs-2.4.5

    配置bochs:./configure –enable-gdb-stub(注意最前面的点)

    常见错误:

    1.configure: error: C++ preprocessor "/lib/cpp"fails sanity check

    解决方法:联网状态下在终断输入sudo aptitude install build-essential

    2.X windows gui was selected, but Xwindows libraries were not found.",

    解决方法:联网状态下在终端输入sudo apt-get install libx11-dev

    sudo apt-get install xserver-xorg-dev

    sudo apt-get install xorg-dev(分条执行)

    编译:make(注意编译后有没有error信息,假设有依据提示安装某些包后,又一次编译)

    安装:sudo makeinstall

    Bochs安装完了。

    二.以下我们安装和执行pintos

    总的步骤:

    • Install and run Pintos
    • $ tar zxvf pintos2011.tar.gz
    • $ cd pintos/src/threads
    • $ make
    • $cd build
    • $ ../../utils/pintos -- run alarm-multiple


    具体解释:

    首先和bochs一样,进入所在的位置,解压

    解压后进入pintos/src/threads,编译

    编译后。进入build文件夹,执行測试用例alarm-multiple


    三.用gdb来调试pintos

    总的步骤:

    • $ cd /pintos/src/threads/build
    • $ ../../utils/pintos --gdb -s -- run alarm-multiple 

    • bochs stops and waits gdb connection


    具体解释:

    输入例如以下命令:../../utils/pintos --gdb -s -- run alarm-multiple(注意run和前面的横杠之间有空格)(配置好环境变量后可直接用pintos命令)

    终端中显示等待连接。

    这时候,我们打开还有一个终端,进入pintos的build文件夹。输入命令:gdb kernel.o(注意是英文字母o,不是数字0)

    这样我们就进入了gdb

    输入命令:targetremote localhost:1234,连接刚刚开启的程序(注意冒号后有空格)

    然后输入:continue

    你将看到等待的程序继续执行了。

    可是gdb命令还有非常多,这个留给你们来探索它们的用途。比如:l, b, c, r,p, n, s, bt


    最后结果:


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    python 的 类属性 与 实例属性
    python 的 append 和 extend
    机器学习的最佳入门学习资源
    各种排序算法探讨与实现
    C++基础:C++中vector使用简介
    C++基础:C++中的explicit关键字
    差分约束(poj 1201
    codeforeces 547C
    2015 7月 做题记录
    set&map
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4620380.html
Copyright © 2020-2023  润新知