GNU software

The Free Software Foundation puts together a complete, integrated software system named “GNU” that will be upwardly compatible with UNIX. Most parts of this system are already in place and the FSF distributes them freely.

GNU helps us (SEP) to distribute our reproducible research. To communicate our research in computational aspects of seismic data processing, we write reproducible research documents. Such a reproducible research document enables a reader to remove and recompute the document's results on her own UNIX workstation.

A reproducible document relies on a set of computer tools and utilities. Many of them are available on standard UNIX workstation. But if a tool is missing, or if we need a special version of a tool, we use the corresponding GNU program to fill the gap. In other words, GNU enables us to freely distribute a miniature copy of the SEP research laboratory, the SEP environment.

The SEP environment requires all GNU programs listed in the section ”Essential at SEP.” If you want to install the SEP environment on your system, but your workstation lacks any of these GNU tools, you need to download and install them.

In general, should you encounter installation problems with SEP software on your system, you may be able to work around it by installing the GNU version of whatever is giving you a problem. Since SEP software is suppose to install in a GNU environment, you should be able to complete your installation.

Currently, we distribute the SEP research and environment on CD-ROMs, but in the future we hope that we can use the Web.


Downloading

We usually ftp the GNU packages we need from one of GNU's main FTP hosts:


Description

Below I describe most of the GNU software available at SEP. To be able to install the SEP environment you need the GNU tools listed in the first category, Essential at SEP. The second category contains a list of tools that we find important. A third category states programs we consider helpful. A final category lists a few programs that we find interesting enough to play around with them.

For each program I characterize each package (based on the GNU bulletin of June 1995) and briefly state how it relates to the SEP environment.


Essential at SEP


Important at SEP


Helpful at SEP


Maybe at SEP


GNU documentation

GNU's documentation is TeX based and can be printed out or viewed online. The hyper-linked online version is accessible through emacs or the stand-alone executables “info” or “xinfo”. (I wish GNU would create web pages as documentation.) Additionally, most (all?) GNU programs print a short self documentation when invoked with a ”–help” flag. Only a few GNU programs come additionally with standard UNIX man pages.


Portability

Since GNU software is by definition platform independent, it adheres to POSIX and ANSI standards (GNU programs often, however, offer a wide range of enhancements beyond the basic standards and the user needs to set flags such as ”-ansi -Wall” to force the GNU tools such as gcc to strict adherence of these standards). Compiling or interpreting software using GNU tools (such as gcc, g77, gawk, etc) can help to discover potential portability problems.

A freely distributed and very portable UNIX environment, such as GNU, could tremendously improve software portability and hardware compatibility. Future programmers concerned about portability could test their software for a GNU system that can run on many platforms. Hardware manufacturers could ensure that the GNU system is ported to their platform and could thereby gain a rich set of applications that run on their machine. You can gain a glimpse into such a world by taking a peek into the Linux world for PCs. The GNU community is working hard on the release of Hurd, its collection of server processes that run on top of a Mach kernel. It will be interesting to see if GNU's Hurd system is going to be usable before powerful Linux PCs successfully compete in all parts of the UNIX world. On the other hand, maybe Java will solve the entire portability problem. Exciting times …

Future SEP programmers may want to read GNU's document on programming standards for projects submitted to GNU. The standards outline a set of rules to ensure consistent, well documented, robust and portable code.


Installation

The sophistication and ease of GNU's software distribution is admirable. Anyone distributing software that requires installation should consider GNU's configure (autoconfig) technique. (I wish all of SEPlib had such an installation mechanism.) The official installation document is in a package's README file. You can, however, expect to install most GNU software packages with a few basic steps:


Bibliography

Trent's GNU page: a wealth of information.
Delorie offers another unofficial GNU page. It includes online documentation for the various packages.





SEP
Stanford
Exploration Project
GP
Department of
Geophysics
SES
School of
Earth Sciences
Stanford
Stanford
University

Page Maintainer: webmaster@sep.stanford.edu
Copyright © 2009 SEP.