8 |
8 |
9 There are several important resources of which any |ns3| user must be |
9 There are several important resources of which any |ns3| user must be |
10 aware. The main web site is located at http://www.nsnam.org and |
10 aware. The main web site is located at http://www.nsnam.org and |
11 provides access to basic information about the |ns3| system. Detailed |
11 provides access to basic information about the |ns3| system. Detailed |
12 documentation is available through the main web site at |
12 documentation is available through the main web site at |
13 http://www.nsnam.org/documents.html. You can also find documents |
13 http://www.nsnam.org/documentation/. You can also find documents |
14 relating to the system architecture from this page. |
14 relating to the system architecture from this page. |
15 |
15 |
16 There is a Wiki that complements the main |ns3| web site which you will |
16 There is a Wiki that complements the main |ns3| web site which you will |
17 find at http://www.nsnam.org/wiki/. You will find user and developer |
17 find at http://www.nsnam.org/wiki/. You will find user and developer |
18 FAQs there, as well as troubleshooting guides, third-party contributed code, |
18 FAQs there, as well as troubleshooting guides, third-party contributed code, |
59 alternatives have been developed. Recently these systems have been developed |
59 alternatives have been developed. Recently these systems have been developed |
60 using the Python language. |
60 using the Python language. |
61 |
61 |
62 The build system Waf is used on the |ns3| project. It is one |
62 The build system Waf is used on the |ns3| project. It is one |
63 of the new generation of Python-based build systems. You will not need to |
63 of the new generation of Python-based build systems. You will not need to |
64 understand any Python to build the existing |ns3| system, and will |
64 understand any Python to build the existing |ns3| system. |
65 only have to understand a tiny and intuitively obvious subset of Python in |
|
66 order to extend the system in most cases. |
|
67 |
65 |
68 For those interested in the gory details of Waf, the main web site can be |
66 For those interested in the gory details of Waf, the main web site can be |
69 found at http://code.google.com/p/waf/. |
67 found at http://code.google.com/p/waf/. |
70 |
68 |
71 Development Environment |
69 Development Environment |
72 *********************** |
70 *********************** |
73 |
71 |
74 As mentioned above, scripting in |ns3| is done in C++ or Python. |
72 As mentioned above, scripting in |ns3| is done in C++ or Python. |
75 As of ns-3.2, most of the |ns3| API is available in Python, but the |
73 Most of the |ns3| API is available in Python, but the |
76 models are written in C++ in either case. A working |
74 models are written in C++ in either case. A working |
77 knowledge of C++ and object-oriented concepts is assumed in this document. |
75 knowledge of C++ and object-oriented concepts is assumed in this document. |
78 We will take some time to review some of the more advanced concepts or |
76 We will take some time to review some of the more advanced concepts or |
79 possibly unfamiliar language features, idioms and design patterns as they |
77 possibly unfamiliar language features, idioms and design patterns as they |
80 appear. We don't want this tutorial to devolve into a C++ tutorial, though, |
78 appear. We don't want this tutorial to devolve into a C++ tutorial, though, |
96 neither make nor autotools. We use Waf for these functions. |
94 neither make nor autotools. We use Waf for these functions. |
97 |
95 |
98 Typically an |ns3| author will work in Linux or a Linux-like |
96 Typically an |ns3| author will work in Linux or a Linux-like |
99 environment. For those running under Windows, there do exist environments |
97 environment. For those running under Windows, there do exist environments |
100 which simulate the Linux environment to various degrees. The |ns3| |
98 which simulate the Linux environment to various degrees. The |ns3| |
101 project supports development in the Cygwin environment for |
99 project has in the past (but not presently) supported development in the Cygwin environment for |
102 these users. See http://www.cygwin.com/ |
100 these users. See http://www.cygwin.com/ |
103 for details on downloading (MinGW is presently not officially supported, |
101 for details on downloading, and visit the |ns3| wiki for more information |
104 although some of the project maintainers to work with it). Cygwin provides |
102 about Cygwin and |ns3|. MinGW is presently not officially supported. |
105 many of the popular Linux system commands. It can, however, sometimes be |
|
106 problematic due to the way it actually does its emulation, and sometimes |
|
107 interactions with other Windows software can cause problems. |
|
108 |
|
109 If you do use Cygwin or MinGW; and use Logitech products, we will save you |
|
110 quite a bit of heartburn right off the bat and encourage you to take a look |
|
111 at the `MinGW FAQ |
|
112 <http://oldwiki.mingw.org/index.php/FAQ>`_. |
|
113 |
|
114 Search for "Logitech" and read the FAQ entry, "why does make often |
|
115 crash creating a sh.exe.stackdump file when I try to compile my source code." |
|
116 Believe it or not, the ``Logitech Process Monitor`` insinuates itself into |
|
117 every DLL in the system when it is running. It can cause your Cygwin or |
|
118 MinGW DLLs to die in mysterious ways and often prevents debuggers from |
|
119 running. Beware of Logitech software when using Cygwin. |
|
120 |
|
121 Another alternative to Cygwin is to install a virtual machine environment |
103 Another alternative to Cygwin is to install a virtual machine environment |
122 such as VMware server and install a Linux virtual machine. |
104 such as VMware server and install a Linux virtual machine. |
123 |
105 |
124 Socket Programming |
106 Socket Programming |
125 ****************** |
107 ****************** |