NS3 Tutorial 中文版:第二章 资源
【聲明】允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。
http://yangfei1.blog.51cto.com/1471532/368585
轉載的文章中給的原文地址已經失效,我這里重新整理了原文地址,方便大家查看對照,如果也失效了,可以直接去官網找Tutorial
官網的英文原文地址:
ns-3 Tutorial https://www.nsnam.org/docs/tutorial/html/
原文目錄如下:
2 資源
翻譯: 伍迪 劉小洋 545139109@qq.com
校稿: Xiaochuan Shen xcs105@zepler.net
編輯: ProbibidoAmor banana.0420@yahoo.com.cn
2.1 網絡資源
NS-3用戶有必要知道幾個重要的網站:
主站點位于http://www.nsnam.org, 提供NS-3系統的基本信息。
詳細文檔位于主站點的http://www.nsnam.org/documents.html. 您也可以從這個網頁上得到系統架構的相關信息。
維基百科網頁http://www.nsnam.org/wiki可以作為NS-3主站點的補充。您可以在那里找到用戶和開發者的FAQs,以及相關問題的解決途徑,第三方的共享代碼、論文等等。
NS-3的源碼可以在http://code.nsnam.org 找到。讀者也可以在名為ns3-dev的源碼倉庫找到當前的NS-3開發樹。還有NS-3的之前發行版本和最新測試版本的代碼。
2.2 源碼管理系統Mercurial
復雜的軟件系統需要一種途徑,用于管理和組織對現有代碼和文檔的修改。有很多種方法可以實現這種管理,讀者可能已聽說過某些版本控制軟件,CVS(Concurrent Version System)或許是其中最常見的一個。
NS-3項目采用Mercurial系統作為它的源碼管理系統。盡管讀者在閱讀本教程時不需要知道太多的Mercurial相關知識,但我們建議讀者能夠熟悉Mercurial,并用于查看 NS-3源碼。
Mercurial的網址為http://www.selenic.com/mercurial/,
讀者可以從上面獲取到這個軟件配置管理系統(Software Configuration management, SCM)的二進制程序和源碼。
Mercurial的開發者Selenic提供了一個Mercurial教程,網址為http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial/,以及快速入門指南:http://www.selenic.com/mercurial/wiki/index.cgi/QuickStart/ .
在NS-3的主頁上,讀者也可以獲取到有關Mercurial和NS-3配合使用的最常用信息。
2.3 編譯系統Waf
讀者下載NS-3的源碼到本地系統之后,需要對源碼進行編譯來生成可執行程序。正如源碼管理方式多種多樣,編譯源碼也有多種工具。最常用的工具是make. Make最出名的一點:它可能是編譯大型和高可配置型系統最難的一種方法。因此,有很多替代工具被開發出來。最近,大型高可配置系統的編譯工具大多選擇用Python語言來開發。
NS-3的編譯系統采用了Waf。它是用Python開發的新一代編譯管理系統。讀者不必掌握python,即可編譯現有的NS-3項目。如果讀者想要擴展現有的NS-3系統,大多數情況只需了解Python知識的很少且非常直觀的一個子集。
對于想了解Waf細節的讀者,可以訪問http://code.google.com/p/waf/ .
2.4 開發環境
正如以上所述,NS-3的腳本由C++或者Python編寫。從NS-3.2開始,NS3的API提供了python語言接口,但是所有的模塊都是由C++編寫的。這里,我們假定讀者掌握C++知識和了解面向對象的相關概念。我們將在用到一些高級的概念或者讀者可能不熟悉的語言特性、習慣用語或設計模式時適當地花些時間復習它們。但是我們也不希望本教程變成C++教程,所以我們希望讀者能夠掌握基本的C++命令。在網站上和書籍中,你可以找到無數的關于C++知識的信息。
如果讀者是個C++新手,那么您在繼續閱讀本指南之前可能需要找一些C++教程或者網站,至少必須熟悉一下C++的基本語言特征。例如,Cplusplus教程。
NS-3系統開發過程中使用了許多的GNU 工具鏈(toolchain)組件。所謂軟件的工具鏈是指在給定環境中可用編程工具的集合。如果讀者想要快速地了解一下GNU 工具鏈所包含的內容,請瀏覽http://en.wikipedia.org/wiki/GNU_toolchain . NS-3使用gcc,GNU binutils,以及gdb. 但是,我們并不使用GNU編譯系統工具(build system tools),既不用make,也不用autotools,而是使用Waf來作為編譯管理工具。
通常,NS-3使用者的工作環境為Linux或者類Linux系統。對于Windows環境,有幾種可以不同程度模擬Linux環境的軟件,比如Cygwin。NS-3支持在Cygwin環境下的開發。Windows用戶可以瀏覽http://www.cygwin.com/ 獲取該軟件(雖然有許多工程維護者使用MinGW,但是MinGW現在還沒有得到官方支持)。Cygwin可以提供許多流行的Linux系統命令。但是,某些情況下它也會出現問題,因為它畢竟只是Linux系統的模擬。Cygwin和Windows中其他程序的交互也有可能會導致程序出現問題。
如果讀者正在使用Cygwin或者MinGW;并使用著Logitech的某些軟件產品,我們或許可以讓您少點麻煩:建議您去看一看MinGW FAQ。
搜索Logitech并閱讀FAQ條目:“為什么當我編譯源碼時,make經常崩潰,留下一個sh.exe.stackdump文件”。無論您相信與否,當運行Logitech時,Logitech 進程監視器潛入了每個正在系統中運行的動態連接庫(DLL)當中。它可能導致您的Cygwin或者MinGw的動態連接庫奇怪地中止,常常也會阻止調試器的運行。所以當運行Cygwin的時候,一定要小心您的Logitech軟件。
替代Cygwin的一種選擇是安裝虛擬機,比如在VMware上安裝Linux虛擬機。
2.5 套接字編程
我們假定讀者對本教程所舉例子中的Berkeley套接字API基本熟悉。如果您不了解套接字,我們建議您學習一下這些API和一些常見的使用例程。TCP/IP Sockets in C這本書可以幫助您很好地理解TCP/IP套接字。
網站http://cs.baylor.edu/~donahoo/practical/CSockets/ 包含了Socket in C書中所舉例子的源碼。
如果讀者理解了該書中的前四章(如果讀者沒有這本書的話,可以看上面網站中的源代碼),您會更好的理解本教程的內容。這里還有一本關于多播套接字(Multicast Sockets)的書籍(Multicast Sockets, Makofske and Almeroth)。如果您想學習本書中有關多播的例子,該書里面有些資料您可能需要了解。
總結
以上是生活随笔為你收集整理的NS3 Tutorial 中文版:第二章 资源的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【嵌入式】上学期末整理的一些知识点
- 下一篇: AUTOSAR架构中的配置文件