The Greater Good Simulator Mac OS
  1. The Greater Good Simulator Mac Os X
  2. Os Simulator Sites

I would vote for X-Plane 11, just in full release. It has the most realistic flight model, and the new features in scenery (autogen based on osm maps) and textures are a big improvement over X-Plane 10. It has an improved UI, a sore point in previ. Mac OS X Sweet16 is the most capable Apple IIgs emulator for computers running Mac OS X. Based on the BeOS version of Sweet16, which was in turn based on the outlandishly popular Bernie The Rescue, its code is mature and positioned to have more and better features added over time.

Swarm Simulator: Evolution on PC and Mac. DOWNLOAD NOW To have it yourself on your computer Mac or PC, you just have to follow the steps below. Click here = Download Bluestacks Download Nox for PCDownload Nox Simulator: Evolution” from the store. MacOS Big Sur elevates the most advanced desktop operating system in the world to a new level of power and beauty. Experience Mac to the fullest with a refined new design. Enjoy the biggest Safari update ever. Discover new features for Maps and Messages. And get even more transparency around your privacy.

Providing you have a computer and an internet connection there’s not much you can’t do from the comfort of your own living room in the modern and increasingly futuristic age. That includes a flight or two around the world, albeit virtually, through the array of simulation packages just waiting to connect you to highly detailed and ultra-authentic destinations around the planet.

Whether you’re a grizzled veteran with multiple online flying hours to your handle or a newcomer who is one click away from entering the virtual hangar for the first time, there is a plethora of options and packages available. And, as technology continues to improve at a seemingly accelerated pace, so do the intricacies of the world’s waiting to be explored from the skies of the superhighway.

So, click away the wheel chocks and start up your digital engines as we look at some of the best flight simulation packages out there. And we will start with one of the most popular.

This article is quite lengthy so you can jump to individual simulators using the jump links below;

Steam Edition Breathes New Life Into Microsoft Flight Simulator X!

The Microsoft Flight Simulation series has its roots in the SubLOGIC flight simulators of the late 1970s. After releases of simulators on such systems as Apple, Atari, Amiga, and Macintosh, the Microsoft company developed the first flight simulator compatible for home PCs and IBM in 1982. It has released several installments since, culminating in the Microsoft Flight Simulator X (FSX) in 2006, widely regarded to be one of the finest flight simulator packages available.


Air Transat A310 in flight in Microsoft Flight Simulator X: Steam Edition.

In December 2014 the package was released by Dovetail Games on Steam – “the” streaming site for gamers – meaning that it was widely available to a real-time audience and instant updates and add-ons were also available. As much as the Microsoft flight packages had been invaluable in training young pilots, they were often labeled as “boring” by critics who would site the combat simulations as being more interesting. However, with the Steam edition come many more options that look to make for an overall exciting, varied, and realistic experience.

The graphics and absolute attention to details – including the textures of the surroundings – are hugely realistic. Perhaps the main gripe you might have, however, is the, at times, repetitive nature of the surroundings. This overall attention to detail, though, is replicated in the cockpit giving you, the pilot, control over every action as much as you would if you were sat in your plane for real. Furthermore, the choice of planes is ample, with details for each individual aircraft authentic, accurate, and unique.

Should you feel the need to make a tweak here or there, however, the huge editing suite allows you to just that, even allowing you to create and build your own aircraft. And once you’ve done that, you can choose from one of the 24,000 airports from which to fly from.

Accommodating but Unforgiving!

There are also 50 unique missions to carry out, with each mission taking you on an equally unique adventure regardless of how many times you choose it. And of course, as it is streaming in real-time, you can find other users and compete against them, which in itself opens up a whole other realm of possible scenarios you and your virtual pilots might find yourselves in.

The Steam Edition’s overall ease of use makes it appealing for longtime fans and newcomers alike, right down to the simple “Download-Install-Run” of obtaining the program from Steam in the first place.


Emirates A380 in FSX.

As accommodating as it is to use it is just as equally unforgiving when it comes to pushing the user in terms of the actual flying and maneuvers required to complete the various missions, which just further adds another helping of reality that makes this package all the more appealing.

The overall strength of the Microsoft Steam package is in the actual flight simulation and the unique experience it presents to the user with each different aircraft. If you choose to fly a small one-engine plane, then the cockpit will look and act in sympathy with your choice. Likewise, for a huge commercial plane or a small helicopter and so on. If it is realistic flight conditions that test your skills as a pilot you are looking for then the sometimes lack intricately detailed landscapes outside of the cockpit will likely be of little concern to you.

Microsoft Flight Simulator runs on all versions of Windows - from Windows XP to Windows 10. Also, you can get it running on a Mac too with a little tweaking which you can read about here.

Runs on: Windows (all versions) and Mac (with Bootcamp).

You can download a demo version of the Microsoft Flight Simulator X here. We also have over 23,000 freeware add-ons and mods for FSX which you can view in the file library here. The short video below features a demonstration of the Steam version with an Airbus add-on pack.

X-Plane 11 Is Professionally Slick

If it is realistic “out-of-the-cockpit” scenery you are looking for then the X-Plane 11 package certainly offers some of the most realistic simulations of well-known parts of the planet. As you fly to new destinations, that scenery changes accordingly. And if 24,000 airports just don’t quite cut it with you, X-Plane 11 offers in excess of 33,000 destinations or starting points. Or, should you feel the need, you can even start your flight mission from the middle of the ocean onboard an aircraft carrier.

The movement of the waves and their effect on the ship has all been taken into account. You can even opt for a more “out of this world” experience with the space mode, allowing you to depart from the mother-ship in Space Ship One on a re-entry mission to Earth.

X-Plane is powerful and comprehensive, with extensive features and realistic flight modeling. Because it was not originally designed as a game but as an engineering tool to examine flight dynamics, it has very realistic flight handling characteristics.


Cessna 172 in X-Plane 11.

There are even random weather conditions that will challenge your skills on your flights. These use genuine weather data and are as accurate and realistic as the graphical features mentioned above. As are the “system failures” that might strike you at any moment prompting you to utilize all your wits to take charge of the emergency situation.

That’s not to say the flight simulation itself isn’t up to scratch. Graphically, their 3D cockpit offers a decidedly authentic feel, while their use of the blade element theory in calculating the simulation features of each individual aircraft makes it one of the most realistic in the market. This feature, incidentally, is employed when users design their own aircraft. Furthermore, many major aircraft companies actually utilize Laminar Research’s X-Plane technology in their design process. Indeed, such links to the aviation industry seep into the overall professional feel and layout of the package.

X-Plane is based on blade-element theory, which determines aircraft behavior by analyzing the forces on individual components. One of the side benefits of this approach is that complex designs can be modeled for a bewildering array of aircraft including:

  • Zeppelin Hindenburg. Based on length and size, the Hindenburg’s were the biggest aircraft ever to take flight.
  • V-22 Osprey VTOL. This vertical take-off and landing tilt-rotor aircraft were born from the ashes of the failed 1980 hostage rescue mission in Iran.
  • Harrier Jump Jet. Another VTOL craft, the Jump Jet can take-off from very tight areas like the roof of a car park or a small open area in a forest.
  • SpaceShipOne. This is a space plane that achieved the first manned spaceflight by a private entity in 2004. It also won the famed X-Prize for $10 million.

X-Plane has everything that blasts off from the ground or flies in the air: rockets and gliders to helicopters and jets. It uses predictive modeling, which anticipates how the aircraft will act in flight, giving the most realistic flying experience on the market.

More X-Plane 11 Add-Ons And Extras Still To Come

Perhaps one of the best things about the X-Plane 11 package is it is, relatively speaking, still new having only been released in 2017. Conventional wisdom should say then that an already slick, professional package can only get better with the inevitable updates and add-ons that will follow. And a package that is already detailed in the extreme is likely to become even more so.


Cessna 172 cockpit and panel in XP11.

The Development Kit will likely head in much the same direction, allowing users to build their own aircraft to ever more precise specifications, with ever more realistically reflective performance measures.

In short, a package that has consistently received high ratings and only looks to improve would be of great interest to flight simulator pilots of all experiences. It is the overall attention to detail – inside and outside of the cockpit – that makes this package stand out.

Runs on: Windows (all versions), Linux and MacOS (all versions).

You can download a demo of X-Plane 11 here. We are also expanding our add-on and mods section to cover X-Plane 11 in greater detail - you can view the freeware X-Plane 11 add-on section here. The video below features a demonstration of what is on offer.

Lockheed Martin’s “Prepar3D” Is Definite Realism

Perhaps another simulation package with distinct links to the professional aviators would be Lockheed Martin’s Prepar3D (which is pronounced “Prepared”). And what’s more, as Lockheed Martin worked out a deal with Microsoft to develop the program, all Microsoft Flight Simulator users can use their add-ons in the Prepar3D program, automatically giving it a huge potential audience. So, if you are one of those users, this simulator package might be of interest to you - but be warned, P3Dv4 switches to total 64-bit which makes some of the older freeware add-ons incompatible (mainly gauges).

Maybe what is also an enticing feature of Prepar3D is the fact it also offers a range of land and sea vehicles as well as several aircraft, including the Lockheed P-38 Lightning, the Lockheed Constellation, and the Beechcraft King Air 350. The package even goes a stage further, offering users the chance to ride deep under the oceans of the planet in a Neptune Submarine.


Screenshot showing aircraft in P3Dv4. Credit: DocScott from the official P3D forums.

Although this package is ideal for individual users (who might wish to obtain the “Developer Network” version of Prepar3D), just to demonstrate the professionalism of the program it might be worth bearing in mind that universities and aviation schools use “Academic” versions of this program, while corporations, including military departments, use the “Professional” version to assist in the training of professional pilots. Regardless of which license you opt for, the experience will be as close to “the real thing” as possible. Gamedev: the beginning mac os.

There is also great support and additional downloads with extra aircraft and scenery choices, as well as an active forum with over 8000 members. Other products are available with Prepar3D such as Model Placer, for example, which allows users to place buildings and scenery into the program. Realism is most definitely at the center of Prepar3D.

Runs on: Windows (7, 8, 10) and Mac (with Bootcamp).

There is currently no demo for Prepar3D, however, you can buy it directly from the Lockheed Martin website here. Most FSX add-ons work in Prepar3D so it's a matter of trial and error when testing them.

You can view a demonstration of the latest version 4 program on the short video below.

AeroFly FS 2 Is An Exciting “Fun” Simulator

Perhaps what is most exciting about AeroFly FS, and in particular the FS 2 package, is it is very much still a work in progress. In truth, the company behind the flight simulator package, German company IKARUS originally developed the software to train remote controlled flights. As the program developed it eventually included a flight component, which then morphed into the AeroFly Flight Simulation program in 2012.

More recently, the second version, AeroFly FS 2 was released, and to largely good ratings. While there are limits in such things as sound effects and most notably a lack of background scenery, what AeroFly really does is focus in on the fun aspect of flight simulation. For example, once you have your settings configured to you, you can start a flight, from an aerial destination and go straight from there. In fact, it seems what most people like about this simulator seems to be the refreshing distance it puts between itself and other more “straight-laced” approaches to flight simulation.


KLM Boeing 747 in Aerofly FS 2.

The Greater Good Simulator Mac Os X

There is also a fairly large amount of aircraft to choose from, ranging from your normal one-engine Cessna planes to commercial jet airliners and military fighter jets. The control panels of each cockpit are ample in detail and unique to each aircraft also. The multiple camera angles further give the various aircraft an extremely unique feel to each one as well as a most definite sense of realism.

Incidentally, should you wish to give AeroFly FS 2 a try, it is worth mentioning that it is only available on Steam. As such you would need to sign up for a Steam account.

Runs on: Windows (7, 8, 10) and Mac (with Bootcamp).

Also, there are not many freeware mods for Aerofly FS2 yet - you will have to watch this space as we expect modders to create them in due course. You can view a demonstration flight over New York City in the video below.

FlightGear – Ideal For Beginners

If you are a newcomer to the world of flight simulation, or indeed just someone whose interest is more passing than intense, then FlightGear might be a flight simulation package you want to check out, not least because it is free. In fact, it is regarded as arguably the best free, open-source flight simulator available, and as such is highly recommended for anyone who wants to try their hand for the first time. Although don’t be put off thinking FlightGear is a poor version of flight simulation. The program is also used in universities, simulation exhibits, and conventions, and even in aerospace engineering firms.

FlightGear is exciting because any aviation fan that wants to can contribute to its development. It is an open-source project (licensed under the GNU General Public License) that allows any user to create add-ons and enhancements. It was created due to frustrations from a cadre of flight simulation fans who wanted to be able to make changes to the core software in commercial simulation packages.

One of its strengths is an extremely accurate time of day modeling which correctly places the sun, moon, and stars for the designated time and date. The software tracks the computer’s clock time to put constellations and planets in their proper orbit. The system also allows for seasonal changes such as 24-hour days north of the Arctic Circle in the summertime. It also locks in the exact moon phase, tied accurately to the current day and time.


Screenshot showing military aircraft in FlightGear v2.10.

While the scenery and background graphics are superbly improved from their original release version, they are arguably the program's weak spot by comparison to other paid-for packages. They still feature various weather conditions and night lighting for night flying, though, as well as 3D clouds and good atmosphere graphics, which all contribute to an authentic experience for the user. It should be noted, however, thanks to the growing FlightGear community, several airports, and the land scenery is available, and are highly accurate and detailed to boot. These include the city of Paris, several airports including Gatwick in London, as well as several island destinations.

Where FlightGear perhaps excels is in the absolute plethora of aircraft available to choose from. And these range from early aircraft, light aircraft and helicopters, to military jets and bombers, and commercial airliners. If you are a user of Microsoft Flight Simulator, you can also import your MFS aircraft using the FlightGear 3D converter program.

Runs on: Windows (7, 8, 10), macOS, and Linux.

You can download FlightGear here for Windows and Mac, and you can also visit their website here.

We hope you enjoyed the article and of course, we always love to hear your thoughts, opinions, and suggestions. What do you fly, what are your favorites? Please post them in the comments section below!

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

This is a detailed installation guide for ns-3. Basic installation instructions can be found in the ns-3 tutorial (see Getting Started chapter).

  • 1Supported platforms
    • 1.2Integrated development environment support
  • 2Prerequisites
    • 2.1Linux
  • 3Installation
    • 3.2Manual installation
  • 4Building ns-3 with build.py
  • 8Obsolete information

Supported platforms

ns-3 is primarily developed on GNU/Linux and macOS platforms, and the minimal requirements to run basic simulations are a C++ compiler; either g++ or clang++ compiler, and Python (version 3) interpreter. The below instructions are per-platform instructions for supplemental packages that enable optional features of ns-3 or companion tools.

Operating system and compiler support

ns-3 is supported and currently tested on the following primary platforms:

  1. Linux (x86 and x86_64): gcc/g++ versions 4.9 and above
    1. Note: If you are using RHEL or Centos, you will likely need to install a more up-to-date compiler than the default; search for how to enable 'software collections' or 'devtoolset' on these distributions. Other Linux distributions typically have a suitable default compiler (at least version 4.9).
  2. MacOS Apple LLVM: version 8.0.0 and above (version 7.0.0 may work)
  3. FreeBSD and Linux (x86_64): clang/LLVM version 3.9 and above (older versions down to 3.3 may work)

The minimum Python version supported is currently version 3.5 or greater (major version 3).

By supported, we mean that the project tries to support most or all of the build options on these platforms unless there is a good reason to exclude the option; and at least the debug build will compile. If you intend to do serious work using ns-3, and are forced by circumstances to use a Windows platform, consider virtualization of a popular Linux platform or using Windows Subsystem for Linux.

The following platforms are lightly supported:

  • Windows Visual Studio 2012 (presently being upgraded)

Some aspects of ns-3 depend on Unix (or specifically Linux) support, such as the emulation or TapBridge features, and those components are not enabled on the Windows or MacOS versions cited above.

Additional maintainers are invited to make more platforms, compilers and environments supported.

Integrated development environment support

Eclipse

The Eclipse IDE is not an officially supported platform, but some developers use it and have compiled a HOWTO.

NetBeans

NetBeans is not officially supported either, but there is a HOWTO as well.

QtCreator

Same rule applies to Qt Creator; it's not officially supported, but there are developers that use it and HOWTO is available.

Support for optional features

There are a few options that are not enabled by default and are not available on all platforms. At the end of the configuration process (explained below), the status of these options are shown as detected by a waf script:

Generally if the platform is missing some requirement for an option it is marked as 'not enabled.' Note that 'disabled by user request' will be shown when the user explicitly disables a feature (such as '--disable-python'); and if a feature defaults to disabled this will also be noted (e.g., option --enable-sudo not selected).

The table below is meant to help sort out the different features and on which platforms they are supported. This table reflects the status as of ns-3.15 and may have changed since then:

Option status
Option Linux FreeBSD Mac OS X
Optimized build Y Y Y
Python bindings Y Y Y
Threading Y Y Y
Real-time simulator Y Y N
Emulated Net Device Y N N
Tap Bridge Y N N
Network simulation cradle Y1 ? N
Static builds Y Y Y

Key:Y = supported; N = not supported; ? = unknown; dev = support in ns-3-dev (next release)

Notes:

  1. NSC works best with gcc-3.4 or gcc-4.2 or greater series. Try to avoid using gcc-4.0 and gcc-4.1 series; some build problems have been found with these versions of compilers.

Prerequisites

The core of ns-3 requires a gcc/g++ installation of 4.9 or greater (Linux), or a recent version of clang compiler (OS X, Linux, or BSD), and Python 3.5 or greater. As mentioned above, different options require additional support. This is a list of packages (for Debian/Ubuntu systems) that are needed to support different ns-3 options. Note that other distributions (e.g., Fedora, FreeBSD) may have different package names or capitalization (e.g. ImageMagik). Installation should be similar for Red Hat/Fedora based systems, with 'yum' replacing 'apt-get', but some differences exist, so below is a guide for both Ubuntu (should generally apply to Debian) and Fedora/RedHat-based systems:

Linux

CentOS

Note: CentOS version 6 series (currently 6.8) requires an upgrade of both gcc and Python to meet current ns-3 requirements. See these instructions if you need to upgrade: https://www.nsnam.org/bugzilla/show_bug.cgi?id=2667#c1

The below instructions are based on a CentOS 6.6 install in November 2014; other RedHat/Fedora-based installs are likely similar.

  • minimal requirements for C++ (release): This is the minimal set of packages needed to run ns-3 C++ programs from a released tarball.
  • minimal requirements for Python (release): Python development headers are necessary to enable the Python bindings (for writing ns-3 programs from Python):

The following additional packages add functionality to the build or documentation.

  • The netanim animator requires Qt5 development packages:
  • Mercurial is needed to work with ns-3 development repositories.
  • Doxygen and related inline documentation:
  • The ns-3 manual and tutorial are written in reStructuredText for Sphinx (doc/tutorial, doc/manual, doc/models), and figures typically in dia:
  • MPI-based parallel, distributed simulation support requires openmpi:
  • To read pcap packet traces generated by ns-3
  • Database support for statistics
  • Xml-based version of the config store (requires libxml2 >= version 2.7)
  • Support for utils/check-style.py style check program
  • Support for openflowswitch requires libxml2, if not installed above
  • Support for ns-3-pyviz visualizer

This is a bit more involved due to lack of package support in the standard repositories.

Some additional packages are needed (goocanvas and pygoocanvas). It is suggested to enable the RPMForge repo as described here: http://wiki.centos.org/AdditionalResources/Repositories/RPMForge. Then, try this:

Then obtain the RPM for pygoocanvas and pygoocanvas-devel from here: http://li.nux.ro/download/nux/dextop/el6/x86_64/

Or, if you prefer, build pygoocanvas from source code found here: https://wiki.gnome.org/Projects/PyGoocanvas

Note, if you perform this install successfully on a CentOS server that does not have a desktop installed (i.e. a CentOS 'minimal install'), you will still not be able to see pyviz enabled; you will see the configuration report:

because the Python gtk module opens the display upon import.

  • Git is needed to fetch click modular routing and pygccxml
  • An optional but recommended package (for improving some wireless model fidelity) is GNU scientific library:
  • A GTK-based configuration system
  • Debugging:

Ubuntu/Debian/Mint

The following list of packages should be accurate for Ubuntu 19.04 release; other releases or other Debian-based systems may slightly vary. Ubuntu 16.04 LTS release is probably the oldest release that is known to work with recent ns-3 releases.

Note: As of ns-3.30 release (August 2019), ns-3 uses Python 3 by default, but earlier releases depend on Python 2 packages, and at least a Python 2 interpreter is recommended. If working with an earlier release, one may in general substitute 'python' for 'python3' in the below (e.g. install 'python-dev' instead of 'python3-dev').

  • minimal requirements for C++ users (release): This is the minimal set of packages needed to run ns-3 from a released tarball.
  • minimal requirements for Python API users (release 3.30, 3.31, and ns-3-dev): This is the minimal set of packages needed to work with Python bindings from a released tarball.
  • minimal requirements for Python (development): For use of ns-3-allinone repository (cloned from Git), additional packages are needed to fetch and successfully install pybindgen and netanim.
  • Netanim animator: qt5 development tools are needed for Netanim animator; qt4 will also work but we have migrated to qt5.
  • Support for ns-3-pyviz visualizer
    • For ns-3.28 and earlier releases, PyViz is based on GTK+ 2, GooCanvas, and GraphViz:
    • For Ubuntu 18.04, python-pygoocanvas is no longer provided. The ns-3.29 release and later upgrades the support to GTK+ version 3, and requires these packages:
  • Support for MPI-based distributed emulation
  • Support for bake build tool:
  • Debugging:
  • Support for utils/check-style.py code style check program
  • Doxygen and related inline documentation:
    • If you get an error such as 'convert .. not authorized source-temp/figures/lena-dual-stripe.eps', see this post about editing ImageMagick's security policy configuration: https://cromwell-intl.com/open-source/pdf-not-authorized.html. In brief, you will want to make this kind of change to ImageMagick security policy:


  • The ns-3 manual and tutorial are written in reStructuredText for Sphinx (doc/tutorial, doc/manual, doc/models), and figures typically in dia (also needs the texlive packages above):

Note: Sphinx version >= 1.12 required for ns-3.15. To check your version, type 'sphinx-build'. To fetch this package alone, outside of the Ubuntu package system, try 'sudo easy_install -U Sphinx'.

  • GNU Scientific Library (GSL) support for more accurate 802.11b WiFi error models (not needed for OFDM):

If the above doesn't work (doesn't detect GSL on the system), consult: https://coral.ise.lehigh.edu/jild13/2016/07/11/hello/. But don't worry if you are not using 802.11b models.

  • To read pcap packet traces
  • Database support for statistics framework
  • Xml-based version of the config store (requires libxml2 >= version 2.7)
  • Support for generating modified python bindings

and you will want to install castxml and pygccxml as per the instructions for python bindings (or through the bake build tool as described in the tutorial). The 'castxml' and 'pygccxml' packages provided by Ubuntu 18.04 and earlier are not recommended; a source build (coordinated via bake) is recommended. If you plan to work with bindings or rescan them for any ns-3 C++ changes you might make, please read the chapter in the manual on this topic.

Note: Ubuntu versions (through 19.04) and systems based on it (e.g. Linux Mint 18) default to an old version of clang and llvm (3.8), when simply 'libclang-dev' and 'llvm-dev' are specified. The packaging on these 3.8 versions is broken. Users of Ubuntu will want to explicitly install a newer version by specifying 'libclang-6.0-dev' and 'llvm-6.0-dev'. Other versions newer than 6.0 may work (not tested).

  • A GTK-based configuration system
  • To experiment with virtual machines and ns-3
  • Support for openflow module (requires libxml2-dev if not installed above)

Fedora/RedHat

The following list of packages should be aligned with recent Fedora releases; other releases may slightly vary. Note that these distributions sometimes change the package structure over time.

Important: If you are using RedHat or CentOS, either versions 6 or 7, the default compilers are too old to build recent ns-3 releases. You must upgrade gcc and g++ to a more recent version. See below.

Fedora and virtual machines

The Waf build system can use several GB of space on /tmp when building ns-3. Fedora and RedHat have chosen to mount /tmp on tmpfs, sized at half of the RAM by default. On a virtual machine, where possibly as little as 4GB of RAM may be configured, this will lead to a 2GB /tmp partition and the ns-3 build will fail with a message such as:

One workaround is to increase your tmpfs size, such as (as root user):

This resizing must be done upon each reboot, and you should ensure that you have a swap partition also configured.

Release-specific issues

  • We do not support RHEL 6 or CentOS 6 anymore; nor do we support older versions of Fedora such as less than Fedora 30.
  • RHEL 7 (and CentOS 7) use an older version of gcc (4.8.5) that is no longer compatible with ns-3 releases. An upgrade of gcc is needed; see these instructions on installing a devtoolset (such as devtoolset-7) if you need to upgrade: http://blog.stevedoria.net/20180214/how-to-install-gcc-7-on-centos-7

Required and optional packages

  • minimal requirements for C++ (release): This is the minimal set of packages needed to run most of ns-3's C++ programs from a released tarball.
  • minimal requirements for Python (release): This is the minimal set of packages needed to use Python bindings from a released tarball.
  • Git is needed to work with ns-3 development repositories.
  • An optional but recommended package (for improving some wireless model fidelity) is GNU scientific library:
  • Support for netanim animator:
  • A GTK-based configuration system

Os Simulator Sites

Prior to ns-3.29, use GTK+ version 2:

Starting with ns-3.29, use GTK+ version 3:

  • Debugging:
  • Doxygen and related inline documentation:
  • The ns-3 manual and tutorial are written in reStructuredText for Sphinx (doc/tutorial, doc/manual, doc/models), and figures typically in dia:
  • To read pcap packet traces
  • Database support for statistics framework
  • Xml-based version of the config store (requires libxml2 >= version 2.7)
  • Support for utils/check-style.py style check program
  • Support for MPI distributed simulations

Steve Smith notes that the shell must be restarted after environment-modules package is installed, since environment-modules modifies the bash initialization scripts to enable the module command. Then, to find the programs mpic++ and mpiexec, one must do:

and then the commands should be found by the shell:

  • Support for openflowswitch requires libxml2, if not installed above
  • Support for ns-3-pyviz visualizer (ns-3.28 release and earlier)
  • Support for ns-3 pyviz visualizer (ns-3.29 release and later)
  • Support for generating modified python bindings

and you will want to install castxml and pygccxml as per the instructions for python bindings (or through the bake build tool as described in the tutorial). If you plan to work with bindings or rescan them for any ns-3 C++ changes you might make, please read the chapter in the manual on this topic.

  • Support for bake tool:

macOS

Simulator

macOS installation of ns-3 relies on the Xcode command line tools provided by Apple, and the clang/llvm compiler used therein. A third-party package manager such as Homebrew can be used for optional extensions to ns-3 such as libxml2.

The current version of macOS is 'Catalina' (10.15) and the version of Xcode is 11.2, as of this writing.

If you are having problems with ns-3.29 and macOS, please look at the Errata page for some hints, or consider to use the development version (ns-3-dev) of ns-3 which should work now. ns-3.30 is not know to have macOS issues.

The main steps to follow to prepare your macOS machine for a base ns-3 install (Xcode tools, and Python) are as follows:

  1. Download and install Xcode Command Line Tools (most recently tested version 11.2) from the App Store, or the full Xcode.
    1. If you installed full Xcode, you still need to type `xcode-select --install` to obtain the command line tools.
    2. You will also have to agree to Apple's license agreement to proceed; type 'sudo clang -v' in a terminal window to take this step.

At this point, you will likely be able to compile the main C++ libraries. The current macOS Catalina release ships with a basic Python 3 interpreter (version 3.7.3) which is enough to run the Waf build system but not much else. To use Python bindings or other Python features, a fuller install of Python is recommended. Visit https://www.python.org/downloads/mac-osx/ to download a Python 3 release (recommended), or else, if you prefer, use Homebrew or some other package manager to install a Python development environment.

At this point, you should be able to use ns-3 in C++ or Python programs. The following options are available to add some additional libraries for more ns-3 features. In general, a third-party installer like Homebrew or MacPorts is needed:

  1. Recommended for Mojave users (for better Homebrew compatibility), install the legacy headers package found at: /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg. We are not sure whether this is available for Catalina (10.15).
  2. If you wish to use the NetAnim animator, you must install Qt5 (although Qt4 version also works with current releases).
  3. If you wish to use mercurial, you must install it. Follow the instruction in the mercurial web site. MacPorts and Homebrew are possible package managers to accomplish this.
  4. If you wish to use the GTK-based ConfigStore GUI, we recommend homebrew: if you install Gtk+3 using homebrew, you must install gtk+3. You must install also 'adwaita-icon-theme' (not installed by default), or you'll miss elements in the Gtk views

.Note to Anaconda users: If you have installed Anaconda, you may encounter a build problem such as:

This can be worked around by configuring Waf to use the system Python instead of the Python version provided by Anaconda. At the Waf configuration stage, try:

When using build.py, the argument can be passed as follows:

See: issue 2778 in the ns-3 tracker for more information.

Windows

For Windows 10, there are two main options. https://softwareverse.mystrikingly.com/blog/grow-itch-willrhodes-mac-os. Both involve using a Linux environment from within Windows. ns-3 is not compatible with the Windows Visual Studio compiler and IDE (there have been a few efforts to add Visual Studio support, but they have been abandoned).

  1. . Install a Linux virtual machine (e.g. using Hyper-V, VMware, etc.).
  2. . Windows offers a Windows subsystem for Linux, providing an Ubuntu-like environment. From within this environment, one can follow the Ubuntu installation guide and obtain most ns-3 features.

Below is some other older (possibly out-of-date) information regarding Windows:

  • We provide HOWTO documents describing the process for installing Linux and getting ns-3 running using two popular virtualization products: VirtualBox (HOWTO use VirtualBox to run simulations on Windows machines) and VMware (HOWTO use VMware to set up virtual networks (Windows)).
  • There is an experimental project, Ns3 on Windows, using Visual Studio 2012.

Installation

Installation with Bake

Bake is a new tool for installing, building and finding out the missing requirements for ns-3 in your own environment.

To use Bake you need to have at least Python (2.7 or above) and Git in your machine (see the section Prerequisites above to see how to install these).

First you need to download Bake using Git, go to where you want Bake to be installed and call

It is advisable to add bake to your path.

After that you can use Bake to find the missing packages, download build and install ns-3 and its modules.

To find out what is missing in your system and may be needed for installing ns-3 you can call bake check:

You should have seen something like:

Before downloading and building ns-3 you need to configure bake to inform it which are the modules you want added to ns-3, the standard distribution for example.

Then to see the modules it has added, and the specific system requirements for this configuration, you can call bake show:



To download the modules, build and install you can call bake deploy


This will download the selected modules, all their dependencies and build ns-3 with all these independent modules. You can also perform this installation step by step, i.e. by calling download and build in different steps.


Manual installation

The ns-3 code is available in Mercurial repositories on the server http://code.nsnam.org (look for the latest release e.g., 'ns-3.26'). You can download a tarball of the latest release at http://www.nsnam.org/releases or you can work with our repositories using Mercurial. We recommend using Mercurial unless there's a good reason not to (See the end of this section for instructions on how to get a tarball release).

The simplest way to get started using Mercurial repositories is to use the ns-3-allinone environment. This is a set of scripts that manages the downloading and building of various subystems of ns-3 for you. We recommend that you begin your ns-3 adventures in this environment as it can really simplify your life at this point.

Downloading ns-3 Using Git

One practice is to create a directory called repos in one's home directory under which one can keep local Git repositories. If you adopt that approach, you can get a copy of ns-3-allinone by typing the following into your Linux shell (assuming you have installed Git):

As the git command executes, you should see something like the following displayed,

After the clone command completes, you should have a directory called ns-3-allinone under your ~/repos directory, the contents of which should look something like the following:

Notice that you really just downloaded some Python scripts and not yet the C++ code. The next step will be to use those scripts to download and build the ns-3 distribution of your choice.

If you go to the following link: https://gitlab.com/nsnam/ you will see a number of repositories. Many are the private repositories of the ns-3 development team. The repositories of interest to you will be prefixed with ns-3. Official releases of ns-3 will be numbered as ns-3.release.hotfix. For example, a second hotfix to a still hypothetical release nine of ns-3 would be numbered as ns-3.9.2 on this page.

The current development snapshot (unreleased) of ns-3 may be found at https://gitlab.com/nsnam/ns-3-dev/. The developers attempt to keep these repository in consistent, working states but they are in a development area with unreleased code present, so you may want to consider staying with an official release if you do not need newly-introduced features.

You can find the latest version of the code either by inspection of the repository list or by going to the Getting Started web page and looking for the latest release identifier.

To download the most recent release (assuming it is ns-3.30 in this case), type the following into your shell (remember you can substitute the name of your chosen release number, or omit specifying it to download the tip of ns-3-dev)

After download process completes, you should have several new directories under ~/repos/ns-3-allinone:


Go ahead and change into ns-3.30 under your ~/repos/ns-3-allinone directory. You should see something like the following there:

You are now ready to build the ns-3 distribution.

Downloading ns-3 Using a Tarball

The process for downloading ns-3 via tarball is simpler than the Mercurial process since all of the pieces are pre-packaged for you. You just have to pick a release, download it and decompress it.

As mentioned above, one practice is to create a directory called repos in one's home directory under which one can keep local Mercurial repositories. One could also keep a tarballs directory. If you adopt the tarballs directory approach, you can get a copy of a release by typing the following into your Linux shell (substitute the appropriate version numbers, of course):

If you change into the directory ns-allinone-3.30 you should see a number of files:

You are now ready to build the ns-3 distribution.

Building ns-3 with build.py

The first time you build the ns-3 project you should build using the allinone environment. This will get the project configured for youin the most commonly useful way.

Change into the directory you created in the download section above. If you downloaded using Mercurial you should have a directory called ns-3-allinone under your ~/repos directory. If you downloaded using a tarball you should have a directory called something like ns-allinone-3.13 under your ~/tarballs directory. Type the following:

You will see lots of typical compiler output messages displayed as the build script builds the various pieces you downloaded. Eventually you should see the following magic words:

Once the project has built you typically will not use ns-3-allinone scripts. You will now interact directly with Waf and we do it in the ns-3-dev directory and not in the ns-3-allinone directory.

Configuration with Waf

To see valid configure options, type ./waf --help. The most important option is -d <debug level>. Valid debug levels (which are listed in waf --help) are: 'debug' or 'optimized'. It is also possible to change the flags used for compilation with (e.g.):

or, alternately, the gcc compiler

Note: Unlike some other build tools, to change the build target, the option must be supplied during the configure stage rather than the build stage (i.e., './waf -d optimized' will not work; instead, do

The resulting binaries are placed in build/<debuglevel>/srcpath. For example, in a debug build you can find the executable for the first.cc example as build/examples/first. You can debug the executable directly by:

Of course, you can run gdb in emacs, or use your favorite debugger such as ddd or insight just as easily. In an optimized build you can find the executable for the first.cc example as build/examples/ns-<version>-first-optimized.

In order to forcibly disable python bindings, you can provide the following option:

In order to tell the build system to use the sudo program to set the suid bit if required, you can provide the following option:

To start over a configuration from scratch, type:

Or if you get stuck and all else fails:

followed by changing back into ns-3-allinone and doing:

will basically reset your build state.

To see all waf options:

Validating

ns-3 has unit tests that can be run to verify the installation:

which should produce output like:

Using Python

See this page.

Troubleshooting

See this page.

Obsolete information

Older versions of ns-3, prior to 3.15, supported using cygwin to run on Windows platform.

Windows

There are three basic options for Windows support:

  1. We provide HOWTO documents describing the process for installing Linux support and getting ns-3 running using two popular virtualization products: VirtualBox (HOWTO use VirtualBox to run simulations on Windows machines) and VMware (HOWTO use VMware to set up virtual networks (Windows)).
  2. There is an experimental project, Ns3 on Windows, using Visual Studio 2012. For support on Visual Studio 2010 see ns-3 on Visual Studio 2010
  3. Cygwin has been supported in the past: gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized). Note, however, that there are limitations with regard to Python bindings, and that Real-time simulator, Emulated Net Device, Tap Bridge and Network simulation cradle are not supported.

An alternative Windows platform is MinGW. There are maintainers who attempt to keep a subset of ns-3 running on MinGW, but it is not 'officially' suppported. This means that bugs filed against MinGW will be addressed as time permits.

Cygwin can sometimes be problematic due to the way it actually does its emulation, and sometimes interactions with other Windows software can cause problems. If you do use Cygwin or MinGW; and use Logitech products, we will save you quite a bit of heartburn right off the bat and encourage you to take a look at the MinGW FAQ.

Search for 'Logitech' and read the FAQ entry, 'why does make often crash creating a sh.exe.stackdump file when I try to compile my source code.' Believe it or not, the ``Logitech Process Monitor`` insinuates itself into every DLL in the system when it is running. It can cause your Cygwin or MinGW DLLs to die in mysterious ways and often prevents debuggers from running. Beware of Logitech software when using Cygwin.

Retrieved from 'https://www.nsnam.org/mediawiki/index.php?title=Installation&oldid=12265'