實驗一: 配置HIT-oslab實驗環境

慕課網: http://www.feemic.cn/mooc/icourse163/1002692015#。
百度雲鏈接:https://pan.baidu.com/s/1h2aEk6A_DGpXkZvRtNmeUw 提取碼:qoll
配套實驗課:https://www.shiyanlou.com/courses/115

實驗樓自帶linux實驗環境,但因爲我曾經裝了vmware+ubuntu 18.04 (64位) ,爲了更好遊戲體驗,手動配置實驗環境,總結了一下踩過的坑。
可能是網絡問題,git無法clone,故直接下載壓縮包。
百度雲鏈接:https://pan.baidu.com/s/1_u_iGGST3HXdeN9KMgbmkQ 提取碼:nnv3
解壓後oslab下有如下文件:
在這裏插入圖片描述
總結了前人的經驗和自己踩的坑,更換軟件源爲清華:
https://mirrors.tuna.tsinghua.edu.cn/
sudo apt-get install安裝以下軟件包:

 gcc-3.4
 bin86
 libc6-dev-i386
 build-essential
 libsm6:i386
 libx11-6:i386
 libxpm4:i386
 libncurses5:i386
 libexpat1:i386

測試環境:

編譯內核:
hit-oslab-linux-20110823/oslab/中打開終端

cd ./linux-0.11
make

無error即可

linux-0.11 目錄下是全部的源代碼,很多實驗內容都是要靠修改這些代碼來完成。修改後需要重新編譯內核,還是執行命令:make all
make命令會自動跳過未被修改的文件,鏈接時直接使用上次編譯生成的目標文件,從而節約編譯時間。但如果重新編譯後,你的修改貌似沒有生效,可以試試先 make clean ,再 make all(或者一行命令:make clean && make allmake clean 是刪除上一次編譯生成的所有中間文件和目標文件,確保是在全新的狀態下編譯整個工程。
運行:

./run

應出現以下畫面:
在這裏插入圖片描述
運行彙編級調試:

./dbg-asm

應出現以下畫面:
在這裏插入圖片描述
運行C語言級調試:

  1. 執行以下命令
./dbg-c
  1. 再打開一終端窗口再執行以下命令
./rungdb

注意:不能更改啓動順序。
應出現以下畫面:
在這裏插入圖片描述
文件交換:

執行:

sudo ./mount-hdc

之後,hdc 目錄下就是和 0.11 內核一模一樣的文件系統了,可以讀寫任何文件(可能有些文件要用 sudo 才能訪問
在這裏插入圖片描述
在這裏插入圖片描述
讀寫完畢後卸載文件系統:

sudo umount hdc

注意 1:不要在 0.11 內核運行的時候 mount 鏡像文件,否則可能會損壞文件系統。同理,也不要在已經 mount 的時候運行 0.11 內核。

注意 2:在關閉 Bochs 之前,需要先在 0.11 的命令行運行 “sync”,確保所有緩存數據都存盤後,再關閉 Bochs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章