Nachos實驗環境搭建


寫於2019.06.10

本文Nachos實驗環境為:Linux-Mint 19.1(Tessa) 64位VM虛擬機

參考網站:Berkeley CS162 Fall 2010

1. Java開發環境

  • 在Oracle官網下載JDK 1.8 Linux安裝包 jdk-8u211-linux-x86.tar.gz並拷貝到/opt目錄下
  • 在/opt目錄下解壓文件
$tar -xzvf jdk-8u211-linux-x86.tar.gz
  • 配置全局變量:修改/etc/profile文件
    • 新建JAVA_HOME變量
    • 編輯PATH變量
    • 新建CLASS_PATH變量

在/etc/profile文件尾部添加

# jdk
export JAVA_HOME=/opt/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/jre/bin/lib.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
  • 使用update-alternatives切換java版本(Mint默認安裝openjdk)
$sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_211/bin/java 300
$sudo update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_211/bin/javac 300
update-alternatives: 使用 /opt/jdk1.8.0_211/bin/javac 來在自動模式中提供 /usr/bin/javac (javac)
$sudo update-alternatives --install /usr/bin/javaws javaws /opt/jdk1.8.0_211/bin/javaws 300
update-alternatives: 使用 /opt/jdk1.8.0_211/bin/javaws 來在自動模式中提供 /usr/bin/javaws (javaws)
$sudo update-alternatives --config java
有 2 個候選項可用於替換 java (提供 /usr/bin/java)。

  選擇       路徑                                       優先級  狀態
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1101      自動模式
  1            /opt/jdk1.8.0_211/bin/java                    300       手動模式
  2            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1101      手動模式

要維持當前值[*]請按<回車鍵>,或者鍵入選擇的編號:1
update-alternatives: 使用 /opt/jdk1.8.0_211/bin/java 來在手動模式中提供 /usr/bin/java (java)
$sudo update-alternatives --config javac
鏈接組 javac (提供 /usr/bin/javac)中只有一個候選項:/opt/jdk1.8.0_211/bin/javac
無需配置。
$sudo update-alternatives --config javaws
鏈接組 javaws (提供 /usr/bin/javaws)中只有一個候選項:/opt/jdk1.8.0_211/bin/javaws
無需配置。
  • 驗證是否配置成功
$ java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

$ javac -version
javac 1.8.0_211

2.配置MIPS交叉編譯器

  • 在CS162網站下載x86 linux平台下的MIPS編譯器This Page

  • 解壓mips-x86.linux-xgcc到/opt/目錄下

  • 配置全局變量(供所有用戶使用):

    • 新建ARCHDIR變量

    • 添加mips目錄到PATH

在/etc/profile文件尾部添加

# mips cross-compiler
export PATH=$PATH:/opt/mips-x86.linux-xgcc
export ARCHDIR=/opt/mips-x86.linux-xgcc

3.編譯Nachos Proj1

  • 添加nochos/bin目錄到PATH環境變量

在/etc/profile文件尾部添加

# nachos excutation
export PATH=$PATH:/home/zgd/docs/cs162/nachos/nachos/bin
  • 在nochos/proj1目錄下,執行
    • 編譯make
    • 運行nachos
$make
javac -classpath . -d . -sourcepath ../.. -g ../threads/ThreadedKernel.java
注: ../../nachos/machine/Lib.java使用了未經檢查或不安全的操作。
注: 有關詳細信息, 請使用 -Xlint:unchecked 重新編譯。
javac -classpath . -d . -sourcepath ../.. -g ../threads/Boat.java

$nachos
nachos 5.0j initializing... config interrupt timer user-check grader
*** thread 0 looped 0 times
*** thread 1 looped 0 times
*** thread 0 looped 1 times
*** thread 1 looped 1 times
*** thread 0 looped 2 times
*** thread 1 looped 2 times
*** thread 0 looped 3 times
*** thread 1 looped 3 times
*** thread 0 looped 4 times
*** thread 1 looped 4 times
Machine halting!

Ticks: total 2130, kernel 2130, user 0
Disk I/O: reads 0, writes 0
Console I/O: reads 0, writes 0
Paging: page faults 0, TLB misses 0
Network I/O: received 0, sent 0


免責聲明!

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



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