Differences

This shows you the differences between two versions of the page.

sep:software:gnu [2008/07/22 18:30]
altheyab
sep:software:gnu [2015/05/27 02:06] (current)
Line 1: Line 1:
-====== GNU ======+====== 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. 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.
Line 7: Line 7:
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. 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|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.+The SEP environment requires all GNU programs listed in the section "[[#Essential at SEP|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. 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.
Line 13: Line 13:
Currently, we distribute the SEP research and environment on CD-ROMs, but in the future we hope that we can use the Web. Currently, we distribute the SEP research and environment on CD-ROMs, but in the future we hope that we can use the Web.
 +\\
==== Downloading ==== ==== Downloading ====
Line 21: Line 22:
  * [[ftp://ftp.informatik.rwth-aachen.de/pub/gnu|Aachen (Germany)]].   * [[ftp://ftp.informatik.rwth-aachen.de/pub/gnu|Aachen (Germany)]].
 +\\
==== Description ==== ==== 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|Essential]] at SEP. The second category contains a list of tools that we find [[#important|important]]. A third category states programs we consider[[#helpful|helpful]]. A final category lists a few programs that we find [[#maybe|interesting]] enough to play around with them.+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|Essential]] at SEP. The second category contains a list of tools that we find [[#Important at SEP|important]]. A third category states programs we consider [[#Helpful at SEP|helpful]]. A final category lists a few programs that we find [[#Maybe at SEP|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. 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: ===+\\ 
 +=== Essential at SEP ===
-  * **GNU make**\\  Our SEPlib installation and the reproducible document rules expect GNU make. Currently, SEP distributes an enhanced [[http://sepwww.stanford.edu/research/redoc/gmake.tar.gz|GNU make (tar.gz)]] version (3.74) that is not yet available on the official sites. This enhanced version is needed to implement [[http://sepwww.stanford.edu/research/redoc/|reproducible document]] rules. \\  In general, GNU make (McGrath), like most the utilities released by the Free Software Foundation, is an emulation of the standard version but rewritten totally from the ground up, along with some common extensions. GNU make's major extensions are:+  * **GNU make**\\  Our SEPlib installation and the reproducible document rules expect GNU make. Currently, SEP distributes an enhanced {{:sep:software:gmake.tar.gz|GNU make (tar.gz)}} version (3.74) that is not yet available on the official sites. This enhanced version is needed to implement [[sep:research:reproducible|reproducible document]] rules. \\  In general, GNU make (McGrath), like most the utilities released by the Free Software Foundation, is an emulation of the standard version but rewritten totally from the ground up, along with some common extensions. GNU make's major extensions are:
    * Conditional evaluation of rules and macros, similar to conditional compilation to C preprocessor.     * Conditional evaluation of rules and macros, similar to conditional compilation to C preprocessor.
    * Parallel execution.     * Parallel execution.
Line 40: Line 43:
  * **gawk**\\  SEP includes gawk in its SEPlib distribution to be independent from platform specific awk versions. \\  Gawk, GNU's version of the UNIX pattern scanning and processing language, is upwardly compatible with the latest POSIX specification of awk.   * **gawk**\\  SEP includes gawk in its SEPlib distribution to be independent from platform specific awk versions. \\  Gawk, GNU's version of the UNIX pattern scanning and processing language, is upwardly compatible with the latest POSIX specification of awk.
-=== Important at SEP: ===+\\ 
 +=== Important at SEP ===
-  * **ghostscript and ghostview**\\  SEP uses the Ghostview and Ghostscript combination to view its postscript files and to display its postscript figures when viewing its latex documents with xtex. I wish ghostview would enable us to issue system calls by pressing ghostview buttons similar to buttons of the dvi viewer xtex. \\  The GNU release of Ghostscript is an interpreter for the Postscript graphics language. Ghostscript executes commands in the Postscript language by writing directly to a printer, drawing on an X window, writing of a file for later printing (or a bitmap file that you can manipulate with other graphics programs). Additionally, Ghostscript includes a C-callable graphics library for client programs that do not want to deal with the Postscript language. It also supports PC's with EGA, VGA, or SuperVGA graphics. \\  Tim Theisen's (ghostview@cs.wisc.edu) Ghostview (Tim Theisen: ghostview@cs.wisc.edu) is a previewer for multi-page files with an X user interface. Ghostview and Ghostscript work together to display Postscript.+  * **ghostscript and ghostview**\\  SEP uses the Ghostview and Ghostscript combination to view its postscript files and to display its postscript figures when viewing its latex documents with xtex. I wish ghostview would enable us to issue system calls by pressing ghostview buttons similar to buttons of the dvi viewer xtex. \\  The GNU release of Ghostscript is an interpreter for the Postscript graphics language. Ghostscript executes commands in the Postscript language by writing directly to a printer, drawing on an X window, writing of a file for later printing (or a bitmap file that you can manipulate with other graphics programs). Additionally, Ghostscript includes a C-callable graphics library for client programs that do not want to deal with the Postscript language. It also supports PC's with EGA, VGA, or SuperVGA graphics. \\  Tim Theisen's ([[ghostview@cs.wisc.edu]]) Ghostview is a previewer for multi-page files with an X user interface. Ghostview and Ghostscript work together to display Postscript.
  * **g77**\\  The GNU Fortran front end (Craig Burley) is stable, but work is needed to bring its overall packaging, feature set, and performance up to the levels the Fortran community expects. Tasks to be done includes writing documentation, improving diagnostics, speeding up compilation, implementing "integer*2, integer*8", and similar features. To contact the developer or get the current status of g77 write or finger "fortran@gnu.ai.mit.edu". \\  Since some UNIX workstations do not include Fortran compilers, SEP tries to ensure that g77 compiles its Fortran code.   * **g77**\\  The GNU Fortran front end (Craig Burley) is stable, but work is needed to bring its overall packaging, feature set, and performance up to the levels the Fortran community expects. Tasks to be done includes writing documentation, improving diagnostics, speeding up compilation, implementing "integer*2, integer*8", and similar features. To contact the developer or get the current status of g77 write or finger "fortran@gnu.ai.mit.edu". \\  Since some UNIX workstations do not include Fortran compilers, SEP tries to ensure that g77 compiles its Fortran code.
  * **gcc**\\  SEP used the GNU C compiler extensively for its C++ work. \\  The GNU C compiler (Richard Stallman) supports C, C++, and Objective-C. GCC (the C compiler) supports full ANSI C, traditional C, and GNU C extensions. G++ is kept compatible with the evolving draft ANSI standard.   * **gcc**\\  SEP used the GNU C compiler extensively for its C++ work. \\  The GNU C compiler (Richard Stallman) supports C, C++, and Objective-C. GCC (the C compiler) supports full ANSI C, traditional C, and GNU C extensions. G++ is kept compatible with the evolving draft ANSI standard.
-=== Helpful at SEP: ===+\\ 
 +=== Helpful at SEP ===
  * **perl**\\  SEP has many powerful scripts written in Perl (especially for testing and its reproducible documents). \\  Perl (Larry Wall) is a scripting language that combines the features and capabilities of sed, awk, sh, and C, as well as interfaces to UNIX system calls and many C library routines. It is a powerful but difficult to tame. \\  I am still looking for a introductory book of the quality of Kernighan's awk book. Currently, I suggest you read the first 3 chapters of O'Reilly's "Perl" by Larry Wall and Randal Schwartz, which makes overall a good reference book.   * **perl**\\  SEP has many powerful scripts written in Perl (especially for testing and its reproducible documents). \\  Perl (Larry Wall) is a scripting language that combines the features and capabilities of sed, awk, sh, and C, as well as interfaces to UNIX system calls and many C library routines. It is a powerful but difficult to tame. \\  I am still looking for a introductory book of the quality of Kernighan's awk book. Currently, I suggest you read the first 3 chapters of O'Reilly's "Perl" by Larry Wall and Randal Schwartz, which makes overall a good reference book.
-  * **RCS**\\  SEP uses RCS to internally manage its seismic processing package, [[./seplib/|SEPlib]], its [[http://sepwww.stanford.edu/research/redoc/|make rules]], and its script library. \\  The Revision Control System facilitates easy version control and management of software projects. \\  I sometimes wonder if we should not use CVS rather than RCS for SEPlib. RCS is based on single directories (and therefore perfect for managing the make rules or script directories), while CVS has a notion of directory trees. Promax is using CVS.+  * **RCS**\\  SEP uses RCS to internally manage its seismic processing package, [[./seplib/|SEPlib]], its [[sep:research:reproducible|make rules]], and its script library. \\  The Revision Control System facilitates easy version control and management of software projects. \\  I sometimes wonder if we should not use CVS rather than RCS for SEPlib. RCS is based on single directories (and therefore perfect for managing the make rules or script directories), while CVS has a notion of directory trees. Promax is using CVS.
  * **emacs**\\  At SEP about half of the researchers use the emacs editor. I like emacs because of its email and news extensions (I have not tried its web extension), its handling of files edited by two users simultaneously, its colorful editing modes (e.g. for C programs), its GNU documentation (info) mode, its ftp support, and quite a few other things. However, emacs is slow to startup (but I start it only once in the morning) and the X Window emacs version needs about 2 M-Bytes of memory (but I usually have sufficient memory available). \\  Emacs (Richard Stallman, Karl Heuer) is an extensible, customizable real-time display editor and computing environment. It offers Lisp for writing extensions and provides an interface to the X Window System. It also runs on MS-DOS and Windows NT. It can emulate vi (which nevertheless does not prevent an [[http://www.sun.com/sunworldonline/swol-10-1995/swol-10-software.html|vi versus Emacs]] feud).   * **emacs**\\  At SEP about half of the researchers use the emacs editor. I like emacs because of its email and news extensions (I have not tried its web extension), its handling of files edited by two users simultaneously, its colorful editing modes (e.g. for C programs), its GNU documentation (info) mode, its ftp support, and quite a few other things. However, emacs is slow to startup (but I start it only once in the morning) and the X Window emacs version needs about 2 M-Bytes of memory (but I usually have sufficient memory available). \\  Emacs (Richard Stallman, Karl Heuer) is an extensible, customizable real-time display editor and computing environment. It offers Lisp for writing extensions and provides an interface to the X Window System. It also runs on MS-DOS and Windows NT. It can emulate vi (which nevertheless does not prevent an [[http://www.sun.com/sunworldonline/swol-10-1995/swol-10-software.html|vi versus Emacs]] feud).
  * **gdb**\\  The GNU Debugger is a source level debugger for C, C++, and Fortran. It works with executables of many different compilers. However, C++ debugging will have some limitations if you do not use GCC. Emacs comes with a GDB mode.   * **gdb**\\  The GNU Debugger is a source level debugger for C, C++, and Fortran. It works with executables of many different compilers. However, C++ debugging will have some limitations if you do not use GCC. Emacs comes with a GDB mode.
Line 58: Line 63:
  * **binutils, fileutils, textutils**\\  GNU offers a platform independent alternative of most standard UNIX commands and utilities. These utilities seem to be of high quality (as demonstrated by Barton Miller's [[ftp://grilled.cs.wisc.edu/technical_papers/fuzz-revisited.ps.Z|article]]). \\  The binutils includes: "ar, gas, gprof, ld, nm, ranlib, size, strip" and more. \\  The fileutils programs work on files: "chgrp, chmod, chown, cp, dd, df, du, install, ln, ls, mv, rm, rmdir, sync, touch" and more. \\  The textutils programs manipulate textual data: "cat, cksum, cut, expand, head, join, sort, split, taill, tr, uniq, wc" and more.   * **binutils, fileutils, textutils**\\  GNU offers a platform independent alternative of most standard UNIX commands and utilities. These utilities seem to be of high quality (as demonstrated by Barton Miller's [[ftp://grilled.cs.wisc.edu/technical_papers/fuzz-revisited.ps.Z|article]]). \\  The binutils includes: "ar, gas, gprof, ld, nm, ranlib, size, strip" and more. \\  The fileutils programs work on files: "chgrp, chmod, chown, cp, dd, df, du, install, ln, ls, mv, rm, rmdir, sync, touch" and more. \\  The textutils programs manipulate textual data: "cat, cksum, cut, expand, head, join, sort, split, taill, tr, uniq, wc" and more.
-=== Maybe at SEP: ===+\\ 
 +=== Maybe at SEP ===
  * **gnuplot and GNU Graphics**\\  Gnuplot is an interactive program for plotting mathematical expressions and data. It plots curves and surfaces. GNU Graphics (Rich Murphey: rich@lamprey.utmb.edu) produces x-y plots from ASCII or binary data. It outputs in Postscript, Tektronix 4010 compatible, and UNIX device-independent "plot" formats. \\  SEP has its own fantastic graphics package, Vplot, that we freely distribute. I wish we could distribute Vplot through GNU: we would benefit from GNU user expertise for the future maintenance and development of Vplot and simultaneously we would help users that need a good, free graphics solution.   * **gnuplot and GNU Graphics**\\  Gnuplot is an interactive program for plotting mathematical expressions and data. It plots curves and surfaces. GNU Graphics (Rich Murphey: rich@lamprey.utmb.edu) produces x-y plots from ASCII or binary data. It outputs in Postscript, Tektronix 4010 compatible, and UNIX device-independent "plot" formats. \\  SEP has its own fantastic graphics package, Vplot, that we freely distribute. I wish we could distribute Vplot through GNU: we would benefit from GNU user expertise for the future maintenance and development of Vplot and simultaneously we would help users that need a good, free graphics solution.
Line 64: Line 70:
  * **genscript**\\  Genscript is a drop-in replacement for the enscript program. Genscript converts ASCII files to Postscript and stores generated output to a file or sends it directly to the printer.   * **genscript**\\  Genscript is a drop-in replacement for the enscript program. Genscript converts ASCII files to Postscript and stores generated output to a file or sends it directly to the printer.
 +\\
==== GNU documentation ==== ==== 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. 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 ==== ==== Portability ====
Line 76: Line 84:
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. 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 ==== ==== Installation ====
Line 85: Line 94:
  * Type **gmake test |& tee log.test** to run some simple self-tests. Not all software packages yet include this feature though.   * Type **gmake test |& tee log.test** to run some simple self-tests. Not all software packages yet include this feature though.
 +\\
==== Bibliography ==== ==== Bibliography ====
Line 90: Line 100:
\\ \\ \\ \\
- +{{page>share:footer&nofooter&noeditbtn}}
-| [[http://sepwww.stanford.edu|Stanford Exploration Project]] | [[http://pangea.stanford.edu/GP/|Department of Geophysics]] | [[http://www.stanford.edu|Stanford University]] | {{sep:sutree.gif}} | +
- +
----- +
- +
-Page Maintainer: <webmaster@sep.stanford.edu>\\ +
-Copyright © 2008 SEP.+
/web/html/data/attic/sep/software/gnu.1216751425.txt.gz · Last modified: 2015/05/26 22:41 (external edit)
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0