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是一个Build工具,同时也是一个依赖包管理工具。
$ ./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下载、安装、环境配置,感谢您的阅读~