SAM Kernel and Application
README, updated 1-15-11 (110115)
Copyright (C) 2010, 2011 Joseph Rosevear
What is "SAM Kernel and Application"?
SAM Kernel is C-code and Bash scripts and functions (Code) that
manage your Code (execution) by controlling the shell environment
(especially the PATH variable). The Application is Code that is
both an example of SAM Kernel use and a handy tool set.
Both the SAM Kernel and the Application are distributed under the GNU
General Public License--see the accompanying "COPYING" file for more
The Application is also known as SAM-GLS or "An Application of SAM
for GNU/Linux Slackware. The Kernel and Application together are
often called "SAM".
What does the name "SAM" mean?
Officially, SAM stands for for "simple ASCII menus." It has a
history, however. It was inspired by a system I worked with as an
engineer for General Dynamics, Space Systems Division. That system
was called the "Structural Analysis Menu" or something like that.
It was a menu-based collection of programs used for analysis of
aerospace structures. Although none of the code in this
distribution is from the General Dynamics' SAM, they do both display
text (or ASCII) menus as a way of managing Code and so share the
On what hardware does SAM run?
The SAM Kernel in this distribution contains a few small C
executables that have been compiled to run on a PC. If you would
like to compile these again, then I expect you could run SAM on any
hardware. (See software requirements, below.)
I don't think there is any other code in this distribution that
needs compiling or would, for any reason, affect what hardware could
What are the software requirements?
I've never tried SAM on a non-Slackware system, so for now let's say
that Slackware is required to run SAM. I have used SAM in Slackware
7.1, 10.0, 10.2, and 12.0. It is quite likely that it will work OK
in other versions.
There are several sources of documentation provided. Besides this
file (that you are reading) files CONTENTS and GUIDE in the main
package (sam-main-<date string>) of this release will get you
started. File GUIDE will refer you to other sources.
As I mentioned above, The SAM Kernel uses a few small C executables
that have already been compiled for you (for use on a PC). If you
would like to compile them again, for any reason, please do so. The
source code has been provided.
First you need to download the iso file, then burn it to a CD-ROM.
On the CD-ROM you will find five Slackware packages one of which is
called sam-main-<date string>.tgz. Use the Slackware installpkg
tool to install it. It should make dir /opt/SAM_pkgs/main and link
After installing the package see /opt/SAM/GUIDE and /opt/SAM/tips/README
for additional documentation.
You will need to install at least one more package (sam-kernel-<date
string>.tgz) before you can use SAM. You will also need to set and
export at least these two variables: sam_set_version and
sam_temp_base. A quick start is this:
The first of these assumes Slackware 12.0, although other versions
10.0 or after may work. The second will cause SAM to make dirs
temp<n> in /tmp.
A better setup involves using these files and directories from
and file bree from /opt/SAM. Please see /opt/SAM/tips/README for
/opt/SAM/begin will run SAM, but normally you should use ~/begin.
There are also other ways to run SAM. See /opt/SAM/GUIDE and
/opt/SAM/GUIDE-K for how to run SAM.
I (Joseph Rosevear) maintain the software in this release. Find my
contact information in file "/opt/SAM/data/author.dat".
Or you can read my contact information by starting SAM and entering
about; author; bye