Check out the new USENIX Web site.

Simulator Portability

FlightGear aims to be portable across many different processors and operating systems, as well as scale upwards from commodity computers. The source has to be clean with respect to address width and endianness, two issues which inconvenience most open source projects, in order to to run on Intel x86, AMD64, PowerPC and Sparc processors.

In addition to running the simulation of the aircraft in real time, the application must also use whatever peripherals are available to deliver an immersive cockpit environment to the aircraft pilot. Those peripherals, such as sound through speakers, are accessed through operating system services whose implementation may be equivalent, yet very different, under the various operating systems. FlightGear currently supports Windows, FreeBSD, Linux, Solaris, MacOS, Irix and OS-X.

For those services which are common across most video games, the independent project PLIB offers a simple API that acts as a Portable Library[2]. Compared to Windows, MacOS and the Unix's, the various distributions and releases of Linux-based operating systems are very similar. There are important differences, most of which cause problems when trying to build and test PLIB, so these rarely impact FlightGear directly. Once the facilities required by video games are available through the Portable Library, the remainder of the code acts as a conventional application.

Any Linux user can download the source, compile it and safely expect it to run. FlightGear, and other applications with extensive 3D visual effects as in figure 1, may use different libraries under the same Linux distribution so that the binary may not be portable between computers. Some hardware only has accelerated 3D under XFree86 version 3, other hardware requires version 4, and their GLX APIs differ. This is being addressed by the Linux OpenGL Application Binary Interface (ABI)[4] but continues to be a source of frustration for new would-be users.

Once the issues associated with running the simulation program on a specific computer are resolved, everything else is portable. The configuration information can be freely transferred across processors and operating systems. Each installation can benefit from the broad range of scenery, aircraft models, scenarios and other adaptations that have been made available by any user.