Next: , Previous: , Up: Introduction   [Contents][Index]

1.8 System Requirements

System requirements include operating system requirements, compiler requirements, POSIX threads API notes, a reference hardware environment, library dependencies, and a software environment for building the package documentation.

Operating System—GNU/Linux

QSMM version 1.17 supports building and using on a GNU/Linux system. The author has not tested building this package version in other environments (e.g. Cygwin).

C Compiler—GCC

The author was building the package by gcc version 8.3.

POSIX Threads API Notes

The simple packet exchange API (Side API—see Exchanging Data Packets in a Multithreaded Program, for more information on this API), tests/side1.c, and a few example programs use the POSIX threads API.

On disabling the use of POSIX Threads API, a built QSMM library does not include the Side API, and the command make does not build tests/side1.c and the example programs fw-simple, maze-mt, and predict-test.

Reference Hardware Environment

The author was building the package and running example programs in the following hardware environment:

At present, QSMM consumes memory inefficiently: QSMM can allocate large memory blocks that are never or rarely accessed. Eliminating this deficiency will lead to significantly less memory consumption by QSMM.

Library Dependencies

Optional but default library dependencies are the gsl (GNU Scientific Library) and ncurses (console display library). The author used the following versions of those libraries to build the package:

gsl (GNU Scientific Library)

The main default dependency is GNU Scientific Library. This library provides the package with a high-quality pseudo-random number generator. Additionally, a few tests use this library to solve systems of linear equations.

On disabling a dependency on gsl:

The function rand from the standard C library has the following drawbacks:

QSMM starting from version 1.15 can also utilize a user-supplied random number generator, for example, implemented by a developer by hand or which is a wrapper for a random number generator provided by another library.

ncurses (console display library)

A few example programs use ncurses, a console display library. On defining the macro VISUALIZE when building tests/disasm2.c or tests/lookup2.c, those tests also use this library.

On disabling a dependency on ncurses, the command make does not build the example programs pic-guess and maze-asm.

Building the Documentation

Building the QSMM documentation in various formats requires the presence of additional packages in the system. Below is their list along with versions used by the author:

Next: , Previous: , Up: Introduction   [Contents][Index]