博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ubuntu安装pintos
阅读量:6364 次
发布时间:2019-06-23

本文共 2749 字,大约阅读时间需要 9 分钟。

  这个学期在学习操作系统课程,实践课要求要用pintos。老师给的环境是openSUSE,因为之前用过ubuntu觉得很好用,于是便自己找教程在Ubuntu下面装pintos。

  

  一:准备工作

    首先准备环境和文件,我用的环境是Ubuntu 14.04,在虚拟机中安装的,bochs用的是目前最新版本bochs2.6.7。

           

    1. 下载 选择 tar.gz 格式;
    2. 下载;
    3. 将下载完成的两个文件(bochs-2.6.7.tar.gz, pintos.tar.gz)移动到指定的文件夹(我用的是 ~/ 目录,方便后续操作);
    4. 使用tar命令分别解压缩两个文件
      $ tar zxvf bochs-2.6.7.tar.gz$ tar zcvf pintos.tar.gz

       

    到这里我们所需要的文件都已经准备就绪了。

 

  二:Ubuntu环境配置

    为了避免出现一些不必要的麻烦,建议下面几个操作都做一下。

    在命令行输入以下代码:

$ sudo apt-get install buid-essential$ sudo apt-get install xorg-dev$ sudo apt-get install bison$ sudo apt-get install libgtk2.0-dev$ 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

 

 

    输入命令后会提示输入密码,这里的密码是不显示位数的。

    然后会提示Y/N,输入y;

    全部安装完成之后:

 

  三:安装bochs 和 pintos

    在第一步的操作中我们已经解压缩了两个文件,为了方便默认使用的是~/文件夹,现在开始安装:

    在命令行输入:

    1、安装bochs:

# 安装bochs$ cd bochs-2.6.7$ ./configure --enable-gdb-stub$ make$ sudo make install

 

 

  常见错误:

    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

     

    2、安装和运行pintos

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

    3、复制utils

# Copy utils$ cd  ̃/pintos/src/utils$ sudo cp backtrace /usr/bin/$ sudo cp pintos /usr/bin/$ sudo cp pintos-gdb /usr/bin/$ sudo cp pintos-mkdisk /usr/bin/ $ sudo cp Pintos.pm /usr/bin/

 

 

    4、安装pintos-gdb

# Install pintos-gdb$ cd  ̃/pintos/src/misc$ sudo cp gdb-macros /usr/bin/$ sudo vim /usr/bin/pintos-gdb# Modify the 4th line: GDBMACROS=/usr/bin/gdb-macros $ cd /usr/bin/ $ sudo chmod a+rx backtrace $ sudo chmod a+rx pintos* $ sudo chmod a+rx gdb-macros $ sudo chmod a+rx Pintos.pm $ test pintos-gdb

 修改pintos-gdb

 

    5、编译utils

# Compile utils$ cd ~/pintos/src/utils$ make$ sudo cp squish-pty /usr/bin$ sudo chmod a+rx /usr/bin/squish-pty

 

     在这一步我make的时候出错了,去知乎上提问了一下,得到答案:

$ cd pintos/src/utils/$ vim Makefile # Modify the 5th line:  LDFLAGS -> LDLIBS

 

    中间有个小插曲,在我提问下面回答的那位朋友告诉了我如果修改,结果在我安装完了之后他表示他还没成功。。。

 

    5、用gdb来调试pintos

$ cd /pintos/src/threads/build$ ../../utils/pintos --gdb -s -- run alarm-multiple (我们已经配置好了环境可以直接用pintos命令)

 

  这个时候终端显示等待连接,打开另一个终端,输入:

$ cd pintos/src/threads/build/$ gdb kernel.o

 

  注意:这里是小写的字母o,而不是数字0。

 

  成功进入gdb,在(gdb)中输入:

(gdb) target remote localhost: 1234(gdb) continue

 

  注意: 这里的localhost的冒号后面有一个空格。 

  OK,连接完成,这个时候应该能看到等待的终端上有显示了。(图片中因为我没开另一个所以会出现time out)

 

如果有什么问题欢迎大家一起讨论,有出现错误的也可以评论告诉我,我会尽力找到原因并解答。

2015年4月19日

转载于:https://www.cnblogs.com/crayygy/p/ubuntu-pintos.html

你可能感兴趣的文章
如何使用 GroupBy 计数-Count()
查看>>
有了这个课件制作工具,还怕备课有难题?
查看>>
SharpGL学习笔记(十三) 光源例子:环绕二次曲面球体的光源
查看>>
jquery之clone()方法详解
查看>>
Delphi 用文件流读取文本文件字符串的方法
查看>>
修改input框默认黄色背景
查看>>
php中怎么导入自己写的类
查看>>
C# 委托
查看>>
Using Information Fragments to Answer the Questions Developers Ask
查看>>
JVM学习(4)——全面总结Java的GC算法和回收机制---转载自http://www.cnblogs.com/kubixuesheng/p/5208647.html...
查看>>
nodejs简介
查看>>
getParameter和getAttribute的区别
查看>>
自动工作负载库理论与操作(Automatic Workload Repository,AWR)
查看>>
Redis两种方式实现限流
查看>>
mvn test
查看>>
Webservice超时问题
查看>>
CentOS 7 中使用NTP进行时间同步
查看>>
在MongoDB数据库中查询数据(上)
查看>>
Python import其他文件夹的文件
查看>>
Jvm(22),回收策略-----标记清除算法
查看>>