Linux:Ubuntu 20.04/虛擬機器:Virtual Box/Python下的網路模擬器NS-3下載、安裝、環境配置筆記之二:安裝NS-3並配置好NS-3的Python依賴
------------恢復內容開始------------
本文是網路模擬器NS-3下載、安裝、環境配置筆記的第二篇,上一篇的連結在此:網路模擬器NS-3下載、安裝、環境配置筆記的第一篇
本章內容:
1.在ubuntu作業系統中安裝並配置好NS-3執行環境。
2.呼叫NS-3的C++庫並執行Python程式來模擬通訊系統。
一、在ubuntu作業系統中安裝並配置好NS-3執行環境。
1.在Virtual Box(下文簡稱VB)啟動Ubuntu系統
在這個過程中,還是要注意右鍵點選“使用管理員身份”開啟VB。開啟Ubuntu之後進入終端(Terminal),開始我們的NS-3安裝之旅。值得注意的是,我們可以在Ubuntu桌面上右鍵點選“顯示設定”來改變螢幕解析度來讓自己看得舒服一些。
2.下載g++,python,git,pip
在命令列分別輸入下面三行命令並分別按下回車鍵。注意,是輸入一條命令後按回車鍵一次,重複三次,不是輸完三條按一次回車鍵。
sudo apt install g++ sudo apt install python3.8 sudo apt install git
sudo apt install pip
類似這樣在命令輸入命令後按回車鍵,重複三次。g++是c++的編譯器,python是python直譯器以及相關元件,而git是久負盛名的程式碼版本控制系統,我們將要使用git工具從gitlab上下載NS-3的程式碼庫。pip是用來下載python工具的,這些工具將被用於構建C++庫→Python庫等功能。
3.從gitlab下載NS-3的程式碼庫
輸入下列命令並按下回車鍵。該命令將使用git從gitlab克隆NS-3的程式碼庫到本資料夾中。本小節的內容參考了NS-3的官方教程:官方教程連結,請注意,$符號不用輸入。
$ git clone https://gitlab.com/nsnam/ns-3-dev.git
輸入下列命令並按下回車鍵。該命令將開啟新建立的“ns-3-dev”資料夾
$ cd ns-3-dev
將git的point指向3.35分支:
$ git checkout -b ns-3.35-branch ns-3.35
4.Build(構建)ns-3庫並進行測試
進入ns-3-dev資料夾,注意,以下幾個小節的操作都在ns-3-dev資料夾中進行。
$ ./waf configure --enable-examples --enable-tests
出現上面這句表示成功。
然後,在資料夾中,使用waf工具Build我們的NS-3程式碼庫。
./waf build
Build過程包含編譯(compile)和連結(link)過程,我們可以將其想象為有一個翻譯官(編譯器),將我們下載到的NS-3程式碼翻譯成機器能讀懂的0和1的語言(機器語言),並將不同的章節(程式碼段)按照它們之間的呼叫關係裝訂(link)成一本書(完整的機器語言程式)。第一次build會耗費相當長的時間,如果你有一臺linux實體機而不是虛擬機器的話,這個過程或許會快些。
執行一個test.py程式去檢查你是否成功build了NS-3程式碼庫。
$ ./test.py
當檢查的內容要不就是綠色的PASS
$ ./waf --run first
這個程式模擬的是兩個Node(節點)之間的通訊過程。
6.我們還可以看看幫助文件
$ ./waf --run 'first --PrintHelp'
二、配置Python依賴
在本節中,筆者參考了官方的python依賴安裝文件,官網文件連結。
1.用pip下載若干個工具包
執行以下命令。
pip install PyBindGen pip install pygccxml
以上兩個工具包將幫助我們將NS-3的C++程式轉換為Python的module。
2.開啟Python依賴許可
執行以下命令。
$ ./ns3 configure --enable-python-bindings
3.測試python程式。
執行以下命令,該命令將執行一個以NS-3的C++程式為Python庫的Python程式。
./waf --pyrun examples/tutorial/first.py
第一次進行NS-3 Python庫的準備要經過編譯環節,之後再運行同一個Python程式的話不會再經過這一曠日持久的過程了。
看到這個結果表示我們已經成功地用Python程式執行NS-3了!這個python程式,實際上就是之前執行過的first.cc的Python版本。
至此,我們完成了Linux:Ubuntu 20.04/虛擬機器:Virtual Box/Python下的網路模擬器NS-3下載、安裝、環境配置,感謝您的閱讀~