doc/tutorial/source/resources.rst
changeset 7654 62ecccd96cad
parent 6754 7ff69b244b5b
equal deleted inserted replaced
7653:c78cc7e78b3f 7654:62ecccd96cad
     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 ******************