Ubuntu安裝pintos


  這個學期在學習操作系統課程,實踐課要求要用pintos。老師給的環境是openSUSE,因為之前用過ubuntu覺得很好用,於是便自己找教程在Ubuntu下面裝pintos。

  

  一:准備工作

    首先准備環境和文件,我用的環境是Ubuntu 14.04,在虛擬機中安裝的,bochs用的是目前最新版本bochs2.6.7。

           pintos官網

    1. 下載bochs 選擇 tar.gz 格式;
    2. 下載pintos
    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日


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM