mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-11-17 12:08:43 +00:00
1597 lines
58 KiB
TeX
1597 lines
58 KiB
TeX
%
|
|
% GNO Overview
|
|
%
|
|
% $Id: intro.tex,v 1.17 2012/08/25 21:53:25 gdr Exp $
|
|
%
|
|
|
|
\documentclass{report}
|
|
\usepackage{html}
|
|
\usepackage{hthtml}
|
|
\usepackage{makeidx}
|
|
\makeindex
|
|
\bodytext{
|
|
bgcolor=#ffffff
|
|
textcolor=#000000
|
|
linkcolor=#0000FF
|
|
vlinkcolor=#001177
|
|
alinkcolor=#001177
|
|
}
|
|
|
|
\begin{document}
|
|
|
|
\title{GNO Overview and Installation}
|
|
\author{Jawaid Bazyar, Tim Meekins, Devin Reade}
|
|
\date{November 1997}
|
|
\maketitle
|
|
|
|
\bibliographystyle{plain}
|
|
\nocite{*}
|
|
|
|
%
|
|
% These are various html links used throughout this document.
|
|
%
|
|
\newcommand{\faqhtml}[1]{\htlink{#1}
|
|
{http://www.gno.org/~gno/FAQ.html}}
|
|
\newcommand{\faqtext}[1]{\htlink{#1}
|
|
{ftp://ftp.gno.org/pub/apple2/gs.specific/gno/doc/faq/CURRENT}}
|
|
\newcommand{\gnodocs}[1]{\htlink{#1}
|
|
{http://www.gno.org/~gno}}
|
|
\newcommand{\delphi}[1]{\htlink{#1}
|
|
{http://delphi.com}}
|
|
\newcommand{\overview}[1]{\htlink{#1}
|
|
{http://www.gno.org/~gno/intro.html}}
|
|
\newcommand{\kernel}[1]{\htlink{#1}
|
|
{http://www.gno.org/~gno/kern.html}}
|
|
\newcommand{\gsh}[1]{\htlink{#1}
|
|
{http://www.gno.org/~gno/gsh/index.html}}
|
|
\newcommand{\manpages}[1]{\htlink{#1}
|
|
{http://www.gno.org/~gno/manindex.html}}
|
|
\parindent=0pt
|
|
\parskip=1pc
|
|
|
|
The GNO Multitasking Environment is Copyright 1991-1999 by
|
|
Procyon Enterprises Incorporated.
|
|
|
|
\begin{flushleft}
|
|
First Edition, 1991. \\
|
|
Second Edition, August 1996. \\
|
|
Third Edition, November 1997.
|
|
\end{flushleft}
|
|
|
|
The ORCA/C run-time libraries are Copyright 1987-1999 Byte Works, Inc.,
|
|
and distributed with permission.
|
|
|
|
This product includes software developed by the University of California,
|
|
Berkeley and its contributors.
|
|
|
|
GNO/ME versions 2.0 and later also include several utilities and
|
|
libraries produced by
|
|
outside authors and in the public domain. This software is included
|
|
solely as a convenience to users of GNO/ME, and is not considered part
|
|
of GNO/ME for copyright purposes.
|
|
|
|
GNO and GNO/ME are trademarks of Procyon Enterprises Incorporated.
|
|
|
|
Apple IIGS, APW, Finder, GS/OS, ProDOS, Macintosh, and HFS are registered
|
|
trademarks of Apple Computer, Inc.
|
|
|
|
AppleWorks GS is a trademark of Claris Corp.
|
|
|
|
UNIX is a registered trademark of The Open Group in the USA and other
|
|
countries.
|
|
|
|
\bf
|
|
Important Notice:
|
|
\rm
|
|
This is a fully
|
|
copyrighted work and as such is protected under the copyright
|
|
laws of the United States of America.
|
|
While GNO is now freely available, GNO remains copyrighted and
|
|
is not to be considered in the public domain.
|
|
|
|
Procyon Enterprises Inc.
|
|
MAKES NO
|
|
WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING THE ENCLOSED
|
|
COMPUTER SOFTWARE PACKAGE, ITS MERCHANTABILITY OR ITS FITNESS FOR
|
|
ANY PARTICULAR PURPOSE. THE EXCLUSION OF IMPLIED WARRANTIES IS
|
|
NOT PERMITTED IN SOME STATES. THE ABOVE EXCLUSION MAY NOT APPLY
|
|
TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL RIGHTS.
|
|
THERE MAY BE OTHER RIGHTS THAT YOU MAY HAVE WHICH VARY FROM STATE
|
|
TO STATE.
|
|
|
|
Procyon Enterprises, Inc. \\
|
|
P.O. Box 641 \\
|
|
Englewood, CO 80151-0641 USA \\
|
|
(303) 781-3273
|
|
|
|
\chapter{Credits}
|
|
|
|
\begin{quote}
|
|
\em
|
|
Always listen to experts. They'll tell you what can't be done, and why.
|
|
Then do it. \bf --- Lazarus Long \rm
|
|
\end{quote}
|
|
|
|
The {\bf GNO} {\bf M}ultitasking {\bf E}nvironment for the Apple IIgs. \\
|
|
Copyright 1991-1999, Procyon Enterprises Inc. and Tim Meekins.
|
|
|
|
The following people and organizations have contributed to the GNO base
|
|
distribution; many other people have contributed stand-alone packages and
|
|
their efforts are also appreciated:
|
|
|
|
\begin{description}
|
|
% \setlength{\itemindent}{1.5cm}
|
|
|
|
\item[Kernel]
|
|
Jawaid Bazyar;
|
|
Derek Taubert.
|
|
|
|
\item[GNO Shell]
|
|
Tim Meekins;
|
|
Dave Tribby.
|
|
|
|
\item[Documentation]
|
|
Jawaid Bazyar;
|
|
Albert Chin;
|
|
Tim Meekins;
|
|
Devin Reade;
|
|
Andrew Roughan.
|
|
|
|
\item[Utilities]
|
|
Matt Ackeret;
|
|
Leslie Barstow;
|
|
Soenke Behrens;
|
|
James Brookes;
|
|
Evan Day;
|
|
Tilghman Lesher;
|
|
Devin Reade;
|
|
Ian Schmidt;
|
|
Derek Taubert;
|
|
Greg Thompson;
|
|
Dave Tribby;
|
|
Philip Vandry.
|
|
|
|
\item[Libraries]
|
|
Jawaid Bazyar;
|
|
Soenke Behrens;
|
|
James Brookes;
|
|
Douglas Gwyn;
|
|
Tilghman Lesher;
|
|
Devin Reade;
|
|
Henry Spencer;
|
|
Derek Taubert;
|
|
Dave Tribby;
|
|
Phillip Vandry;
|
|
Mike Westerfield;
|
|
Procyon, Inc.;
|
|
The Byte Works, Inc.;
|
|
University of California, Berkeley.
|
|
|
|
% \setlength{\itemindent}{0cm}
|
|
\end{description}
|
|
|
|
The libraries contain other contributions that are necessarily anonymous,
|
|
as they are derived from code fragments for which no author information
|
|
was available.
|
|
|
|
With many thanks to:
|
|
\begin{itemize}
|
|
\item
|
|
Bill Gulstad, Rob Knauerhase,
|
|
and everyone on the gno-devel and GNOBETA Internet mailing lists.
|
|
\item
|
|
Dave Lyons, for tolerating Jawaid's endless
|
|
questions since the beginning of time, for getting Jawaid
|
|
started in IIgs programming, and for calling GNO ``cool''.
|
|
\item
|
|
Mike Westerfield, for your
|
|
technical assistance and all your work in making great
|
|
development tools for the IIgs.
|
|
\end{itemize}
|
|
|
|
Special thanks to:
|
|
\begin{itemize}
|
|
\item
|
|
Matt Deatherage, for egging Jawaid on to
|
|
complete the project; also, for your most helpful
|
|
technical support through DEVSUPPORT --- you guys made this thing possible!
|
|
\item
|
|
Randy Hyde, for telling Jawaid it couldn't be done.
|
|
\end{itemize}
|
|
|
|
\chapter{Preface}
|
|
|
|
Computers are tools. The flexibility of a
|
|
tool determines how useful it is. Early computers were much like
|
|
the one this software was written for: the Apple IIgs. They could
|
|
only run one program at a time, and their usefulness was limited
|
|
to what the particular program the user was executing offered. In
|
|
the late 1960's, a team of researchers at AT\&T began
|
|
developing the UNIX operating system. The UNIX design was
|
|
partially based on the premise that most programs are I/O bound,
|
|
that is, most of the time the program executes is spent waiting
|
|
for user input or other I/O operations. While one program is
|
|
waiting for I/O, why not allow another program to execute? This
|
|
is what they did, and the result was one of the most successful
|
|
computer operating systems ever created.
|
|
|
|
The Apple IIgs, like the Macintosh it is
|
|
modelled after, provides very limited multitasking abilities in
|
|
the form of desk accessories (NDAs). The programs in the NDA menu
|
|
are available in whatever application you use as long as it
|
|
follows Apple's guidelines. However, there are many graphics
|
|
based programs that don't support NDAs, and in addition there is
|
|
a wealth of software that has been developed for the Byte Works'
|
|
ORCA environment. This environment is mainly text-based, and thus
|
|
makes access to NDAs impossible. As if that wasn't enough, it's
|
|
very difficult to write an NDA to allow the application to keep
|
|
running concurrently. So the benefits are lost, and we're back at
|
|
ground zero.
|
|
|
|
Enter the GNO Multitasking Environment.
|
|
What was once just dreamed about is now a reality. GNO/ME
|
|
provides an environment that is almost entirely compatible with
|
|
software developed for the ORCA environment. But GNO/ME also
|
|
provides a wealth of new abilities, lots of new ground for
|
|
developers and users alike.
|
|
|
|
Before we begin describing GNO, we'd like to
|
|
respond to those who say such a multitasking system isn't
|
|
possible on the Apple IIgs. Obviously it is: you hold it in your
|
|
hands. Some say the Apple IIgs isn't powerful enough to make
|
|
multitasking useful. We point out that the Apple IIgs is much
|
|
more powerful than the first computers UNIX was designed to run
|
|
on; they only had 64K of real memory, and were 16 bit machines.
|
|
Some ask why you'd ever need to run more than one program at
|
|
once. These are the same people who asked why we'd ever need more
|
|
than 64K of memory, or more than 140K of storage on disks (end
|
|
soapbox).
|
|
|
|
\chapter{Overview}
|
|
|
|
\section{Introduction}
|
|
|
|
The GNO Multitasking Environment provides
|
|
pre-emptive multitasking. Many programs can be executing at the
|
|
same time; each is called a ``process''. Each process is allowed to
|
|
run for a short period of time (1/20th of a second on average).
|
|
When its time runs out, the current process is set aside and
|
|
another one chosen to run next. This cycle continues until there
|
|
are no more processes left (i.e. when you exit GNO/ME). Starting
|
|
up processes to run 'in the background' is a simple matter of
|
|
adding a few characters to the shell commands.
|
|
|
|
GNO/ME provides a shell that takes full
|
|
advantage of the multitasking ability provided. The most
|
|
important feature of the shell is job control (starting,
|
|
terminating, and suspending processes). But the shell also
|
|
provides power never before seen on the Apple IIgs. The ability
|
|
to choose files by ``wildcard'' has been around for a while, but
|
|
the GNO Shell takes this to a new level with ``regular
|
|
expressions'', a very powerful yet simple programming language.
|
|
Other benefits of the GNO shell are too numerous to mention. (see
|
|
the \bf GNO Shell User's Manual \rm for details).
|
|
|
|
In addition to being compatible with the
|
|
ORCA system, GNO/ME is a very powerful programming environment.
|
|
Available to the programmer are all the calls needed to control
|
|
processes, support Inter-Process Communication, and other tools
|
|
needed in a multitasking environment.
|
|
In fact, a large portion of the libraries in GNO v2.0.6 and later
|
|
are based upon code from FreeBSD UNIX (see \hturl{http://www.freebsd.org}).
|
|
The version of FreeBSD on which the GNO libraries are based is also
|
|
available at \hturl{ftp://ftp.gno.org/cdrom/usr/src}.
|
|
|
|
GNO/ME also boasts the first completely
|
|
consistent method for accessing serial and console I/O. The IIgs
|
|
TextTools have been incredibly enhanced to provide a truly
|
|
all-encompassing interface for serial, console, and IPC
|
|
applications. Imagine being able to attach terminals to your GS,
|
|
and have a useful shell in each one. Multiuser BBSs, remote
|
|
dial-ups, UUCP or SLIP that doesn't take over your computer- the
|
|
applications are endless!
|
|
|
|
With all this talk of shell utilities, have
|
|
desktop users (users of programs like AppleWorks GS) been left
|
|
behind? Absolutely not. GNO/ME doesn't allow more than one
|
|
desktop program to run concurrently, but it DOES let you run a
|
|
desktop program with as many text applications as you like. In
|
|
other words, no functionality is lost from the IIgs by using
|
|
GNO/ME.
|
|
|
|
Finally, the GNO Multitasking Environment
|
|
comes with a large number of free utilities that bring some of
|
|
the power of a UNIX system to the Apple IIgs. Also, a number of
|
|
programming libraries are included that make it easy to port
|
|
programs from UNIX or MS-DOS systems to the Apple IIgs.
|
|
|
|
%
|
|
% Dave Tribby thinks we should add in a ``what's new in 2.0.6'' list
|
|
% here.
|
|
%
|
|
|
|
|
|
\section{Documentation Roadmap}
|
|
|
|
There are many pieces to the GNO documentation. The primary ones are
|
|
listed below. They are available
|
|
at the \gnodocs{GNO Documentation Page} and via anonymous ftp from
|
|
\tt ftp.gno.org\rm.
|
|
|
|
\begin{itemize}
|
|
\item \overview{GNO Overview and Installation Manual}.
|
|
\item \gsh{GNO Shell User's Manual}.
|
|
\item \kernel{GNO Kernel Reference Manual}.
|
|
\item Online Manual Pages.
|
|
\item \faqhtml{GNO Frequently Asked Questions (and Answers) List}.
|
|
\end{itemize}
|
|
|
|
If you are new to GNO, you should start with the Overview and Installation
|
|
Manual (this document).
|
|
|
|
The \gsh{GNO Shell User's Manual} provides information on using \bf gsh\rm,
|
|
which is an ORCA-compatible shell. It is the primary user interface
|
|
to GNO.
|
|
|
|
The \kernel{Kernel Reference Manual} gives detailed information about
|
|
the kernel, which is the heart of GNO. It is intended mainly for programmers.
|
|
|
|
The ``Manual Pages'' are the traditional form of UNIX documentation.
|
|
They are normally viewed on your GS by typing ``man \it subject\rm'',
|
|
where \it subject \rm is the name of the command, library routine, file
|
|
(and so forth) for which you are trying to obtain information.
|
|
Man pages are provided for the \manpages{base distribution}, and are
|
|
usually provided by authors of third-party programs. Type ``man man''
|
|
from within GNO for detailed instructions on how to use the man pages.
|
|
|
|
The \faqhtml{FAQ} is a list of questions and answers that have come
|
|
up many times; you should read the FAQ before posting any GNO questions
|
|
to \delphi{Delphi} or \bf comp.sys.apple2.gno\rm. Your question may
|
|
already be answered.
|
|
|
|
More information, including an online GNO bugs database, status charts
|
|
for ongoing development, and GNO-related links are available online
|
|
at \gnodocs{http://www.gno.org/~gno'}. Because of the nature of this
|
|
information, much of it is available only via the WWW, and not
|
|
anonymous ftp.
|
|
|
|
\section{Hardware Requirements}
|
|
|
|
GNO/ME will work on any Apple IIgs with at least 2 MegaBytes of
|
|
memory and a hard drive.
|
|
|
|
You should have at least 5 MegaBytes of hard disk space free for GNO
|
|
v2.0.4.
|
|
|
|
GNO version 2.0.6 is \em much \rm larger than previous versions.
|
|
Even if you are only installing v2.0.4 at this time, it is recommended
|
|
that you reserve at least one 32-megabyte ProDOS partition for
|
|
GNO-specific files.
|
|
|
|
We recommend 4 MegaBytes of Memory and an
|
|
accellerator card, especially if you will be using GNO with many
|
|
background processes. A modem and access to an on-line service
|
|
will greatly speed access to technical assistance and new
|
|
utilities as they are made available.
|
|
|
|
\section{Obtaining GNO}
|
|
|
|
GNO is a large and complex system. There are many pieces to it;
|
|
too many to list in detail here. There are, however, two major
|
|
catogories of pieces. The first is the base distribution, the
|
|
second are all the third-party ``add-ons''.
|
|
(Some of the second category sometimes get moved into the base distribution).
|
|
Normally, one would install the base distribution, then install
|
|
whichever third-party applications are desired.
|
|
|
|
Currently, there are available two versions of the base GNO distribution.
|
|
The first is version 2.0.4, which is the one last version released by Jawaid.
|
|
It is relatively stable and easy to install,
|
|
but has no TCP/IP support, a few known bugs, and is not getting
|
|
any kernel updates. (Recent library updates can, to some extent, be used
|
|
with this version.)
|
|
|
|
The second available version is 2.0.6. It is undergoing active development
|
|
and therefore includes bug fixes to v2.0.4, as well as TCP/IP support
|
|
in the kernel (it does not currently take advantage of Marinetti).
|
|
On the other hand, it is still of alpha quality; it is difficult to
|
|
install, has some incompatibilities with 2.0.4, and new bugs have been
|
|
introduced. Once it has stabalized more, it will completely supercede
|
|
version 2.0.4.
|
|
|
|
Both base distributions are available via anonymous ftp.
|
|
Version 2.0.6 is also available in source form, including via anonymous cvs.
|
|
See the respective Installation chapters on downloading these files.
|
|
|
|
Third party applications are available (among other places) from
|
|
\hturl{ftp://ftp.gno.org/pub/apple2/gs.specific/gno}. Because this
|
|
collection has grown so large, James Brookes developed the \bf describe\rm
|
|
database (later maintained by Soenke Behrens and Devin Reade), which
|
|
provides a description and other information on the various GNO utilities.
|
|
Online interfaces to the database may be found at
|
|
\hturl{http://www.gno.org/~gno/describe/}
|
|
or
|
|
\hturl{http://www.servtech.com/public/phoenix/computers/gno/index.html}.
|
|
|
|
\section{Obtaining Assistance}
|
|
|
|
Since GNO was reclassified as freeware in the fall of 1997,
|
|
Procyon no longer provides direct support to users, other than those
|
|
that had paid the full price for GNO prior to the reclassification.
|
|
|
|
There is, however, a group of programmers and users of GNO who are
|
|
able to render assistance on a volunteer basis. Some of these programmers
|
|
are also actively involved in upgrading the base GNO distribution.
|
|
|
|
If you require assistance, the following two methods of contact are
|
|
preferred:
|
|
\begin{itemize}
|
|
\item
|
|
Post a message to the USENET news group, \bf comp.sys.apple2.gno\rm.
|
|
Remember that messages usually take at least a few hours to propagate
|
|
around the world. Answers also take time to propagate.
|
|
|
|
\item
|
|
Ask a question on the Delphi Apple II Programmers' Forum. There
|
|
are subject areas set up for GNO under ``third party technical support''.
|
|
Delphi is accessible via \hturl{http://delphi.com}. (Delphi is
|
|
recommended for discussion of programming topics in general and
|
|
has, for the most part, taken over from Genie as the center of
|
|
online Apple II communication. Some packages are available free of
|
|
charge. Visit Delphi for more details.)
|
|
|
|
Unlike USENET, on Delphi you should try to continue existing threads.
|
|
The current ones for GNO are:
|
|
|
|
\begin{itemize}
|
|
\item Message 1045: GNO: System Installation and Configuration
|
|
\item Message 1046: GNO: References and Users' Manuals
|
|
\item Message 1047: GNO: Manual Pages
|
|
\item Message 1048: GNO: The Kernel
|
|
\item Message 1049: GNO: Shells
|
|
\item Message 1050: GNO: Libraries and System Header Files
|
|
\item Message 1051: GNO: Interfacing with ORCA
|
|
\item Message 1052: GNO: Networking and Telecommunications
|
|
\item Message 1053: GNO: General Discussion
|
|
\end{itemize}
|
|
|
|
\item
|
|
Also on Delphi, there is a regularly scheduled GNO Programmers' Conference
|
|
on Monday and Thursday evenings from 10pm to midnight EST/EDT. Devin
|
|
is usually around those evenings, although he sometimes misses the
|
|
conference. If you don't catch him the first time, be sure to try again
|
|
another day.
|
|
\end{itemize}
|
|
|
|
As a last resort, you can contact Devin Reade (one of the GNO
|
|
development team) at \htmailto{gdr@trenco.gno.org}. Please don't
|
|
use this method unless absolutely necessary, as Devin is not always
|
|
available. More importantly, asking questions in an open forum
|
|
provides for peer review; if an answer is wrong, it can be corrected
|
|
by other developers.
|
|
|
|
Finally, for those who paid for GNO before it was reclassified,
|
|
Jawaid can still be contacted at
|
|
\htmailto{bazyar@hypermall.com}.
|
|
Written correspondence should be directed to Procyon at:
|
|
|
|
\tt \begin{verbatim}
|
|
Procyon, Inc.
|
|
PO Box 641
|
|
Englewood, CO 80151-0641 USA
|
|
(303) 781-3273
|
|
\end{verbatim} \rm
|
|
|
|
\section{Reporting Bugs}
|
|
\index{bugs}
|
|
|
|
In any large piece of computer software
|
|
such as the GNO/ME system, bugs are sure to turn up, no matter
|
|
how much testing is performed on the software before it goes out
|
|
the door. If you discover a bug in GNO/ME, we'd like to hear
|
|
about it. There are several things we require, however, to make
|
|
bug reports useful to us.
|
|
|
|
First of all, we need a complete
|
|
description of your computer system; how much RAM, what cards, in
|
|
what slots, what type of disk storage, etc. This information is
|
|
very important in tracking down hardware-dependent bugs. Also, we
|
|
need to know the version numbers of the software involved; the
|
|
GNO Kernel, the GNO Shell, and any utilities.
|
|
|
|
Second, we need a step-by-step description
|
|
of how to duplicate the bug. If this requires writing down
|
|
individual keystrokes, then we need it. Only in this way can we
|
|
decide whether the bug is hardware dependent or global.
|
|
|
|
Once you have collected this information, the preferred method of
|
|
submitting it is to use the online GNOBugs database at
|
|
\hturl{http://www.gno.org/~gno/bugs.html}.
|
|
Alternately, you could contact the
|
|
GNO developers in one of the ways mentioned in the section on
|
|
\bf Obtaining Assistance\rm.
|
|
|
|
\section{User Projects}
|
|
|
|
If you're working on a project which
|
|
utilizes GNO/ME in some way, we'd like to know about it. Just
|
|
Devin by email and tell him about your project. If possible, he'll
|
|
coordinate your efforts with those of other programmers. If we
|
|
really like your project and think it may be useful to others, it
|
|
may be included on the next GNO/ME distribution!
|
|
|
|
It is, of course, good to not start work on something that is already
|
|
being worked on or already finished. Before starting a project, you may
|
|
first wish to check the Program Status List at
|
|
\hturl{http://www.gno.org/gno/status-bin.html}
|
|
or the Library Status List at
|
|
\hturl{http://www.gno.org/gno/status-lib.html}.
|
|
|
|
\section{Software Piracy}
|
|
|
|
If you have illegally copied computer software from someone
|
|
and are now reading this, take a moment to reflect on what you've done.
|
|
Many computer software applications are huge projects, consuming
|
|
many man-years of effort, huge amounts of money, and a lot of grief on the
|
|
part of the developers.
|
|
For example, the Byte Works' ORCA languages and development
|
|
environment (as of November 1997) consists of over 220,000 lines
|
|
of source code, \em not \rm including the libraries, tool
|
|
interface files, test programs, samples, or the 5 800k disks
|
|
of source in the courses for each language. This work represents
|
|
approximately 17 man-years of development, support, marketing,
|
|
and management.
|
|
|
|
Is it right that you're now benefiting from
|
|
developers' efforts without any just compensation to the authors?
|
|
|
|
Many programmers are born, bred, and raised in the spirit of
|
|
computing. They love to write software, and probably always
|
|
will. But if they cannot make enough money to make it
|
|
worthwhile to continue their work, then they won't; because by
|
|
worthwhile, we mean not only food on the table, but resources for
|
|
expansion and continued growth. In short,
|
|
support them and they'll support you.
|
|
|
|
Computer software is very inexpensive when you
|
|
consider what it allows you to do.
|
|
|
|
To all you who properly pay for the software you use:
|
|
Thank you.
|
|
|
|
\section{Suggested Readings}
|
|
|
|
The following are recommended readings for users:
|
|
\begin{itemize}
|
|
\item Learning UNIX \cite{gardner}
|
|
\item The UNIX Operating System \cite{christian}
|
|
\item Peter Norton's Guide to UNIX \cite{norton}
|
|
\item UNIX in a Nutshell \cite{gilly}
|
|
\item Life with UNIX --- A Guide for Everyone \cite{libes}
|
|
\item UNIX for the Impatient \cite{abrahams}
|
|
\item Learning the vi Editor \cite{lamb}
|
|
\end{itemize}
|
|
|
|
The following are recommended readings for programmers:
|
|
\begin{itemize}
|
|
\item The Design and Implementation of the 4.3 BSD UNIX Operating System \cite{leffler}
|
|
\item The UNIX Programming Environment \cite{kern_pike}
|
|
\item Advanced Programming in The UNIX Environment \cite{stevens}
|
|
\item Advanced UNIX Programming \cite{rochkind}
|
|
\item Using C on the UNIX System \cite{curry}
|
|
\item POSIX 1003.1 \cite{posix1}. This would normally be considered
|
|
required reading except that the POSIX standards (like most
|
|
standards) are very expensive. If you can obtain a copy, you
|
|
should try to do so.
|
|
\end{itemize}
|
|
|
|
The following should be considered as required readings for programmers:
|
|
\begin{itemize}
|
|
\item The ANSI X3.159-1989 (ANSI/C) Standard \cite{ansic}. This, however,
|
|
is an expensive manual and beyond the financial reach of many
|
|
hobby programmers. A low-cost alternative is Schildt's
|
|
Annotated ANSI/C Standard \cite{schildt}, provided that you
|
|
ignore Schildt's annotations.
|
|
\item The C Programming Language \cite{kern_ritchie}
|
|
\item Apple IIgs ToolBox Reference, Volume 1 \cite{tbr1}
|
|
\item Apple IIgs ToolBox Reference, Volume 2 \cite{tbr2}
|
|
\item Apple IIgs ToolBox Reference, Volume 3 \cite{tbr3}
|
|
\item GS/OS Reference \cite{gsos}
|
|
\item Apple IIgs Firmware Reference \cite{gsfirm}
|
|
\item Apple Numerics Manual \cite{numerics}
|
|
\item Programmers Reference for System 6.0 \cite{pr600}
|
|
\item Programmers Reference for System 6.0.1 \cite{pr601}
|
|
\end{itemize}
|
|
|
|
\section{Freeware Status}
|
|
|
|
The following message was distributed by Jawaid Bazyar by email and
|
|
by USENET news, in the fall of 1997:
|
|
|
|
\begin{quote}
|
|
|
|
As the man behind Procyon Enterpsises Inc., a long-time Apple IIGS
|
|
developer and one of the last commercial developers for the platform,
|
|
I regret to announce the end to sales of my first product, the GNO
|
|
Multitasking Environment (GNO/ME).
|
|
|
|
With my last distributor, EGO Systems, closing its doors, I cannot
|
|
justify the time and expense of continuing to produce the software. I
|
|
also didn't feel it was fair to the customers to continue to charge them
|
|
for the product, when I would be unable to support them in the manner
|
|
I would like, due to my intense involvement in my new ISP business.
|
|
|
|
However, instead of simply stopping sales of GNO and letting the software
|
|
wander into oblivion, I am placing GNO into ``freeware'' status, and I am
|
|
also making available all source code to the 2.0.4 version to the public
|
|
and the development community.
|
|
|
|
I will still sell printed manuals to anyone who wants one, for \$20 or
|
|
so, but this is just to cover printing and shipping costs. Purchasing
|
|
a manual will not entitle the buyer to support from me of GNO/ME.
|
|
|
|
Anyone who paid the normal \$89 price to EGO Systems (or to me directly)
|
|
for GNO will continue to receive support from me, and I will rely partly
|
|
on the help of the ``GNO-Devel'' list for assistance in this support.
|
|
|
|
Speaking of that, the GNO-Devel list is headed by Devin Reade,
|
|
and its members are programmers who have the time and devotion to
|
|
continuing to develop the GNO system. To their capable hands I leave
|
|
the software. The first task of this group is to put together a GNO
|
|
distribution based on the latest ORCA/C and ORCA/C libraries. Devin will
|
|
post followup info on csa2g and any inquiries should be directed to him
|
|
at <gdr@trenco.gno.org> for the moment.
|
|
|
|
Thank you all for your support in the past of my company and myself,
|
|
and best wishes to you all for the future!
|
|
|
|
\begin{flushleft}
|
|
Regards, \\
|
|
|
|
Jawaid Bazyar \\
|
|
President, Procyon Enterprises Inc. \\
|
|
President, Interlink Advertising Services Inc. \\
|
|
\end{flushleft}
|
|
|
|
\end{quote}
|
|
|
|
\chapter{Installation for GNO v2.0.4}
|
|
|
|
\em
|
|
\textbf{Important Note:}
|
|
GNO v2.0.4 is no longer supported. New installations should be using
|
|
v2.0.6 or later.
|
|
\rm
|
|
|
|
\em
|
|
\textbf{Important Note:}
|
|
This chapter is very out-of-date. It was written for GNO v2.0.1, and
|
|
has had only minor updates since that time. It very much needs to
|
|
be rewritten (concurrently, of course, with updates to the actual
|
|
installation process). However, this is unlikely to occur since v2.0.4
|
|
has been superceded. That notwithstanding, if you have suggestions
|
|
for updating this document (without making major changes
|
|
to the GNO v2.0.4 distribution itself), please email
|
|
your suggestions to Devin Reade.
|
|
|
|
Before attempting to install GNO v2.0.4, you are strongly encouraged to
|
|
read this entire chapter, and then consult the
|
|
\faqhtml{GNO FAQ} (Frequently Asked Questions list, which is also
|
|
available via \faqtext{ftp}) for those sections related to installation.
|
|
\rm
|
|
|
|
GNO/ME is a very large system. Most of the
|
|
system is stored on the three disks in a compressed format. For
|
|
this reason we recommend that you read this section carefully and
|
|
use the included automated installation program to save yourself
|
|
the major headache of arranging everything. You'll need a hard
|
|
drive partition with at least 5 Megabytes free to install GNO/ME.
|
|
The entire installation process should take no longer than 10
|
|
minutes.
|
|
|
|
If you are upgrading from GNO 1.0 to GNO
|
|
2.0, we recommend that you install GNO 2.0 on a new area of your
|
|
hard drive. This is because GNO 2.0 provides new versions of
|
|
almost all the utilities and other software provided with GNO
|
|
1.0. You can then move the parts of your old system that aren't a
|
|
part of the standard GNO 2.0 distribution over to the new
|
|
installation.
|
|
|
|
The installer program is able to the copy
|
|
the GNO libraries for use with the ORCA languages and tools. If
|
|
you want to use your ORCA languages and tools, you should answer
|
|
the appropriate questions during the install process. ORCA
|
|
installation is covered in more detail below.
|
|
|
|
\section{Obtaining GNO v2.0.4}
|
|
|
|
The base distribution for GNO v2.0.4 is not actually available as a
|
|
self-contained package. Instead, it is necessary to install GNO
|
|
v2.0.1, then incrementally upgrade it to v2.0.2, v2.0.3, and finally
|
|
v2.0.4.
|
|
|
|
These packages are available via anonymous ftp from
|
|
\tt ftp://ftp.gno.org/pub/apple2/gs.specific/gno/base204\rm.
|
|
There is a three-disk set for GNO v2.0.1, and a
|
|
single disk for each of the upgrades to versions 2.0.2, 2.0.3, and 2.0.4.
|
|
You should download all of these files.
|
|
|
|
There is also a custom version of ORCALib that should be installed if you
|
|
are using ORCA/C v2.0.x with GNO v2.0.4.
|
|
|
|
Remember to download these disk archives in binary mode.
|
|
|
|
\section{Installing GNO v2.0.1}
|
|
|
|
\begin{description}
|
|
\item[Step 1]
|
|
|
|
Copy the contents of \texttt{/GNO.Disk1} to the partition where you want
|
|
to install GNO/ME. The easiest way to do this is to run the IIGS
|
|
Finder, insert the \texttt{/GNO.Disk1} disk, and drag the
|
|
\texttt{/GNO.Disk1} icon onto the icon of the drive you want to install on.
|
|
The Finder will tell you that the disks are of a different size, and
|
|
ask you if you wish to place the contents of \texttt{/GNO.Disk1}
|
|
in a folder on the hard drive partition.
|
|
Answer ``Yes'', and the Finder will copy the data.
|
|
|
|
\item[Step 2]
|
|
|
|
Open the newly created \texttt{GNO.Disk1} folder on the partition
|
|
and execute ``Kern'' by double-clicking on the \texttt{Kern} icon.
|
|
\texttt{GNO.Disk1} contains a minimal GNO system which you have
|
|
just started up. You'll see some copyright messages, and after a few
|
|
seconds the desktop will appear.
|
|
|
|
\item[Step 3]
|
|
|
|
Install will ask you questions before the installation process begins.
|
|
Questions asked by Install are boldfaced in this section.
|
|
If you're uncertain of how to answer, click on the ``Info'' button
|
|
to get more information on the question. This information is
|
|
reproduced here for ease of reference.
|
|
|
|
\begin{description}
|
|
|
|
\item[Do you have existing Byte Works (ORCA) language products?]
|
|
|
|
If you use Byteworks language products such as ORCA/C, ORCA/M,
|
|
ORCA/Pascal, and so forth and wish to use them from GNO/ME then
|
|
answer ``Yes'' to this question. Otherwise, answer ``No''.
|
|
|
|
Clicking on the ``Info'' button will display the following text:
|
|
|
|
\begin{quote}
|
|
|
|
If you currently use products such as ORCA/C, ORCA/Pascal,
|
|
ORCA/M, etc., and wish to use them from GNO/ME then you should
|
|
answer ``Yes'' to this dialog.
|
|
|
|
|
|
Install will then ask you to locate the file ``ORCA.SYS16'' (the
|
|
ORCA Shell). Usually, it will be in a directory called ``ORCA'' on
|
|
one of your hard drive partitions. On our system, it is
|
|
\texttt{:software:orca}.
|
|
The location of this file determines where Install puts the
|
|
GNO-specific ORCA/C header files and libraries (in the ORCA
|
|
LIBRARIES directory). If you have renamed ORCA.SYS16 to
|
|
something else, select that instead.
|
|
|
|
Install uses this information to correctly set the ORCA prefixes
|
|
and add the EXECUTABLES directory to the \$PATH variable in your
|
|
gshrc file. See the GNO Shell User's Manual, Appendix B, for
|
|
more information on the ORCA prefixes.
|
|
|
|
\end{quote}
|
|
|
|
\item[Do you want to install the modified ORCA/C 2.0 ORCALIB library?]
|
|
|
|
If you have ORCA/C 2.0 installed and you answered ``Yes'' to the
|
|
previous question, then you should answer 'Yes' now.
|
|
If you have ORCA/C 1.3 installed, or you do not have any ORCA languages or
|
|
tools, then you should answer ``No''.
|
|
|
|
Clicking ``Info'' will display the following text:
|
|
|
|
\begin{quote}
|
|
|
|
GNO/ME 2.0 comes with a modified version of the ORCA/C ORCALIB
|
|
standard library. This library adds specific support for some of
|
|
GNO's special files (pipes, terminals, etc) transparently
|
|
and corrects other problems the standard ORCALIB has with
|
|
GNO.
|
|
|
|
This special ORCALIB is only for use with ORCA/C 2.0. It will
|
|
NOT work with previous versions of ORCA/C.
|
|
|
|
|
|
Note that all of GNO's other libraries (libgno, libbsd, libc)
|
|
work fine with ORCA/C 1.3.
|
|
|
|
\end{quote}
|
|
|
|
\item[Do you want to install the Multi-User package?]
|
|
|
|
If you wish to have the Multi-User package installed, answer ``Yes''.
|
|
It is recommended that new users do not install this package until they are
|
|
familiar with the system. This package is not fully discussed in the
|
|
GNO/ME manuals and may introduce many unfamiliar concepts.
|
|
|
|
Clicking ``Info'' will display the following text:
|
|
|
|
\begin{quote}
|
|
|
|
The ``Multi-User'' package consists of a number of
|
|
cooperating programs, including \bf init\rm(8) and \bf login\rm(8).
|
|
MU provides for password-protected access to the GNO Shell via the
|
|
console or serial ports (modems and dedicated terminals).
|
|
It also handles multiple user accounts, and a certain
|
|
level of protection between users.
|
|
|
|
If you will be using a terminal with GNO, or want to be able to dial
|
|
into GNO with a modem, you should install MU.
|
|
|
|
You may wish to hold off setting up the Multi-User package until you
|
|
learn your way around GNO a little better, as it's simple
|
|
to set up MU later.
|
|
|
|
\end{quote}
|
|
|
|
\end{description}
|
|
|
|
\item[Step 4]
|
|
|
|
The Installer will now proceed to arrange the GNO Multitasking
|
|
Environment on your hard drive. Initially, the contents of
|
|
\texttt{/GNO.Disk1} will be moved into the proper places on the
|
|
volume you have chosen. When asked by the Installer, you should place
|
|
\texttt{/GNO.Disk2} and \texttt{/GNO.Disk3} into the disk drive. The
|
|
contents of these disks will be extracted and decompressed into their
|
|
proper places.
|
|
|
|
\em
|
|
If the installer cannot finish it's tasks for some reason, it will
|
|
abort to the shell. At this point you should study the error messages
|
|
to determine the cause of the failure,
|
|
\rm
|
|
|
|
\item[Step 5]
|
|
|
|
When the Installer finishes, you will be returned to the GNO prompt.
|
|
At this time you should type ``exit'' to return to Finder and delete
|
|
the \texttt{GNO.Disk1} directory, as it is no longer needed (GNO
|
|
is completely installed in a subdirectory ``\texttt{GNO}'' on the
|
|
same partition \texttt{GNO.Disk1} is on.
|
|
|
|
\end{description}
|
|
|
|
\section{Installing GNO v2.0.2 Through v2.0.4}
|
|
|
|
GNO versions 2.0.2 through 2.0.4 were distributed as sequential
|
|
updates to version 2.0.1, rather than as complete distributions.
|
|
Consequently, you should install each of the version 2.0.2,
|
|
2.0.3, and 2.0.4 distributions, \em in sequence, \rm over top of your
|
|
version 2.0.1 distribution.
|
|
|
|
You should also obtain and install the Multi-User Update.
|
|
|
|
\section{What Has Been Installed?}
|
|
|
|
\em
|
|
\textbf{Note:} This list of directories is somewhat out of date.
|
|
You should consult the \faqhtml{GNO FAQ} (also available via
|
|
\faqtext{ftp}) for more current information.
|
|
This section will be updated, but likely only after GNO v2.0.6 is
|
|
released.
|
|
\rm
|
|
|
|
If you examine the directory that you chose
|
|
for GNO/ME, you will find that the Installer has created several
|
|
directories. Here is a brief rundown of thier contents:
|
|
|
|
|
|
\begin{rawhtml}
|
|
<!-- cleantable-start -->
|
|
\end{rawhtml}
|
|
\begin{tabular}{ll}
|
|
|
|
\bf :gno:bin: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This directory contains the executable shell utilities included
|
|
with the GNO/ME package.
|
|
\end{minipage} \hfill \\
|
|
|
|
|
|
\bf :gno:dev: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This directory contains device drivers. The GNO/ME package
|
|
includes serial drivers for the IIgs' built-in modem and
|
|
printer ports.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:etc: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
Various system configuration files
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:initrc \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This a startup file for kern and must remain in this directory.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:kern \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This is the GNO kernel. Launch this to start GNO/ME.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:lib: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This directory is provided for programming libraries that are
|
|
used only occasionally. Various applications may also keep
|
|
auxilliary files here. It is currently empty.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:tmp: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This directory is used by various utilities as location for
|
|
their temporary files. It is currently empty, and should
|
|
be cleaned on periodically.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:user: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This directory is created if you installed the Multi-User package.
|
|
It contains a user directories for users of the system.
|
|
Currently there is only one: ``root''.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:usr: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This directory contains UNIX System Resources (USR).
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:usr:bin: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
Miscellaneous utilities.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:usr:man: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
This directory contains the manual pages for the 'man' utility.
|
|
There are eight categories of information as defined by UNIX
|
|
standards. These eight categories are presented in either
|
|
source (man) or preformatted (cat) form.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:usr:games: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
The classic ``Hunt the Wumpus'' game, and perhaps others.
|
|
\end{minipage} \hfill \\
|
|
|
|
\bf :gno:usr:sbin: \rm &
|
|
\begin{minipage}[t]{8cm}
|
|
System administration utilities.
|
|
\end{minipage} \hfill \\
|
|
|
|
\end{tabular}
|
|
\begin{rawhtml}
|
|
<!-- cleantable-end -->
|
|
\end{rawhtml}
|
|
|
|
\chapter{Installation for GNO v2.0.6}
|
|
|
|
\em
|
|
\textbf{Important Note:}
|
|
Before attempting to install GNO v2.0.6, you are strongly encouraged to
|
|
read this entire chapter, and then consult the
|
|
\faqhtml{GNO FAQ} (Frequently Asked Questions list, which is also
|
|
available via \faqtext{ftp}) for those sections related to installation.
|
|
\rm
|
|
|
|
\em These instructions should be considered as draft quality. If you
|
|
have suggestions on or corrections to these instructions, please forward
|
|
them to Devin Reade.\rm
|
|
|
|
This chapter contains information on how to install the newest version
|
|
of GNO, which is version 2.0.6 or later. It explains how to install
|
|
the base \em binary \rm distribution. Installation of GNO sources such that
|
|
you are able to \em build \rm the base distribution itself are at this
|
|
time beyond the scope of this document.
|
|
|
|
At this time, unfortunately, installing GNO is fairly cumbersome.
|
|
Gsh's scripting abilities are crude at best, and for various reasons
|
|
the Apple Installer program is not sufficient,
|
|
When sh (the Bourne Shell) is finished for GNO, installation should be easier.
|
|
|
|
Information in this chapter may change
|
|
significantly from release to release, so even if you have previously
|
|
installed a version newer than v2.0.4, you should review this chapter
|
|
prior to doing a new installation.
|
|
|
|
\section{Planning Your System}
|
|
|
|
The install scripts assumes that your \em new\rm distribution will be
|
|
installed on to the two volumes \bf /gno \rm (ProDOS) and \bf /gno-hfs \rm
|
|
(HFS or AppleShare).
|
|
It also assumes these volumes already exist and are \em empty\rm.
|
|
You may use other volume names,
|
|
but you will have to edit certain files before you run your distribution.
|
|
|
|
If you installing over an existing v2.0.6 or later distribution, ensure
|
|
that you read the section on \bf Planning for Future Upgrades\rm.
|
|
|
|
You will need \it at least \rm the following amount of disk space.
|
|
It is recommended that you dedicate an entire 32Meg ProDOS partition to
|
|
GNO.
|
|
|
|
\begin{tabular}{ll}
|
|
boot disk (used only for installation) & 800k \\
|
|
binary distribution (shk files) & 5.3 MB \\
|
|
binary distribution (extracted) & 12.0 MB \\
|
|
complete GNO source (optional) & 15.0 MB \\
|
|
\end{tabular}
|
|
|
|
Before you start, you should also ensure that your system meets the
|
|
minimum hardware requirements, as documented in \bf Overview\rm.
|
|
|
|
In order to install GNO, you will need some way to download the NuFX
|
|
archive files to your GS. You will also need GS-ShrinkIt, which is available
|
|
from
|
|
\hturl{ftp://ftp.gno.org/pub/apple2/gs.specific/archivers/gshk11.bsc}.
|
|
|
|
Part of the GNO installation still requires use of a text editor. The
|
|
GNO boot disk ships with \bf vi\rm installed;
|
|
if you do not know how to use \bf vi\rm (or you need a refresher), see
|
|
\hturl{http://www.jaws.umn.edu/~tobkin/vi}
|
|
for a good tutorial and quick reference guide.
|
|
|
|
\section{Upgrading from GNO v2.0.4 or Earlier}
|
|
|
|
If you already have an existing GNO installation running v2.0.4 or
|
|
earlier, then there is no automated upgrade mechanism. Instead, upgrades
|
|
must be done manually.
|
|
|
|
Before doing such an upgrade, ensure that you have a backup of your
|
|
existing system.
|
|
|
|
Although it is more disk space intensive, you should upgrade from your
|
|
existing v2.0.4 system by first installing the current distribution into
|
|
an otherwise unused directory hierarchy (a ``from scratch'' install).
|
|
You should then review each component of your old distribution and move
|
|
any necessary files into the new hierarchy. It is \em strongly \rm
|
|
recommended that you make maximal use of the \bf /usr/local \rm hierarchy
|
|
so that future upgrades are easier. See the section in this Guide on
|
|
\bf Planning for Future Upgrades \rm for details.
|
|
|
|
This method of upgrade is tedious, but in the end it makes for a cleaner
|
|
GNO distribution and easier future upgrades.
|
|
|
|
\section{Downloading and Extracting the Binary Distribution}
|
|
|
|
If you have not yet read the section on \it Planning Your System\rm,
|
|
please do so now.
|
|
|
|
Your first step is of course to download the distribution.
|
|
The distribution is available from
|
|
\hturl{ftp://ftp.gno.org/pub/apple2/gs.specific/gno/base}.
|
|
You should have the following NuFX archives:
|
|
|
|
\begin{itemize}
|
|
|
|
\item{\bf gnoboot.shk\rm}
|
|
This is the GNO installation bootstrap disk. It should be extracted to
|
|
a ProDOS-formatted 800k floppy disk named ``/gno.boot'' (the name is
|
|
critical). It does not include a copy of GS/OS and is
|
|
therefore not bootable; you will have to boot your system in the normal
|
|
fashion.
|
|
|
|
\item{\bf gno.01.shk\rm, \bf gno.02.shk\rm, ... \bf gno.16.shk\rm}
|
|
These disk archives contain the main portion of the GNO distribution.
|
|
They must be placed in a single temporary subdirectory on a hard drive,
|
|
Zip disk, Appleshare volume, or other large capacity storage device.
|
|
They should not yet be extracted.
|
|
|
|
\item{\bf gnohfs.shk\rm}
|
|
This archive consists of files that do not conform to ProDOS naming
|
|
conventions.
|
|
It should be placed into the same directory as were the files
|
|
{\bf gno.01.shk\rm, \bf gno.02.shk\rm, ... \bf gno.16.shk\rm}.
|
|
While it is possible to run GNO without any HFS partitions
|
|
at all, it is recommended that you have available to GNO a small amount
|
|
of space on an HFS partition. If you use the \bf namespace\rm(5) facility,
|
|
it is unnecessary to dedicate an entire HFS partition to GNO.
|
|
Note that Appleshare volumes may be used in lieu of HFS volumes.
|
|
|
|
\end{itemize}
|
|
|
|
Using the Finder or a similar program, ensure that you have an empty ProDOS
|
|
partition \bf /gno \rm, and an HFS or AppleShare partition online. The
|
|
former \em may \rm be named something else, but note the instructions
|
|
below for handling this situation. The latter is assumed to be called
|
|
\bf /gno-hfs \rm (modify the following instructions accordingly), and
|
|
need not be otherwise empty. The two subdirectories \bf HFSinclude \rm
|
|
and \bf man \rm will be created on \bf /gno-hfs \rm during the installation
|
|
process.
|
|
|
|
Next, using GS-ShrinkIt or a similar program, extract the contents of the
|
|
file gnoboot.shk onto an 800k floppy named \bf gno.boot\rm.
|
|
The name of the floppy is critical. While you may use a hard drive
|
|
partition for \bf gno.boot\rm, this is likely a waste of hard drive space
|
|
since \bf gno.boot\rm will only be used while installing GNO, not while
|
|
running it.
|
|
|
|
People have also reported that they were able to use a RAM disk for
|
|
\bf gno.boot\rm without problems (thanks to Kirk Mitchell for first
|
|
reporting this).
|
|
|
|
You should now do the following steps:
|
|
|
|
\begin{comment}
|
|
|
|
If your volumes are named something else, replace the names in the cd commands
|
|
below with the appropriate name.
|
|
|
|
\end{comment}
|
|
|
|
|
|
\begin{enumerate}
|
|
|
|
% We would like to be using bold face type for some parts of this, but
|
|
% it appears that the current version of tex2html can't handle boldface
|
|
% within an enumerated list.
|
|
|
|
\item
|
|
From your program launcher (typically the Finder), run the program
|
|
/gno.boot/kern.
|
|
This is the GNO kernel. It will come up in
|
|
single user mode and you will be logged in as root running a
|
|
gsh
|
|
shell session.
|
|
|
|
Note that the boot disk currently uses the version 2.0.4 GNO kernel; this
|
|
is a temporary measure due to a bug with using newer kernels in single user
|
|
mode. When GNO is installed on your hard drive, you will have a newer
|
|
kernel.
|
|
|
|
\item
|
|
As per the instructions shown on the boot screen, you should now read the
|
|
file /gno.boot/README.install. The contents of that file, however, are
|
|
identical to the numerated instructions below; you need only read one or
|
|
the other set.
|
|
|
|
%% README.install-start
|
|
\item
|
|
Set your DOWNLOAD\_DIR environment variable to the directory
|
|
into which you placed the base distribution NuFX archive files
|
|
(gnoboot.shk, gnohfs.shk, gno.01.shk, and so forth). For
|
|
example, if the NuFX files were in /download, you would type:
|
|
|
|
\begin{verbatim}
|
|
setenv DOWNLOAD_DIR /download
|
|
\end{verbatim}
|
|
|
|
Ensure that you use slashes (``/'') rather than colons (``:'') as the
|
|
pathname delimiter. Do not use a trailing slash.
|
|
|
|
\item
|
|
Install the majority of the GNO base distribution files by
|
|
changing directory into your destination directory and running
|
|
the installboot1 script. Assuming that you will be installing
|
|
to the partition /gno, the commands would be:
|
|
|
|
\begin{verbatim}
|
|
cd /gno
|
|
/gno.boot/installboot1
|
|
\end{verbatim}
|
|
|
|
This step takes quite a while, even with an accelerated IIgs.
|
|
Have patience.
|
|
|
|
\item
|
|
There are a small number of recommended files that do not follow
|
|
ProDOS naming conventions. If you wish to install these files,
|
|
make sure that you have an HFS or Appleshare disk online. Change
|
|
directories to that disk (or subdirectory) and run installboot2.
|
|
Assuming that the HFS disk is /gno-hfs, the commands are:
|
|
|
|
\begin{verbatim}
|
|
cd /gno-hfs
|
|
/gno.boot/installboot2
|
|
\end{verbatim}
|
|
|
|
This step is optional. It is possible to use the GNO binary
|
|
distribution without an HFS partition, but some information
|
|
will be missing.
|
|
|
|
\item
|
|
You should now edit the file /gno/etc/namespace. If your
|
|
files were extracted onto a volume other than /gno, you will
|
|
have to replace all the ``:gno:'' strings with the appropriate
|
|
path. Similarily, you will have to replace ``:gno-hfs:'' if
|
|
that is not the name of your HFS (or Appleshare) partition
|
|
where you ran the installboot2 script. Note that you cannot
|
|
currently use pathnames in the namespace file that contain spaces.
|
|
|
|
The gno.boot disk includes the vi utility to do these edits.
|
|
You can also edit the namespace file with any other text editor
|
|
of your choosing, as long as it is done before you try to run
|
|
your new GNO distribution.
|
|
|
|
A vi tutorial and quick reference guide may be found at
|
|
\hturl{http://www.jaws.umn.edu/~tobkin/vi}.
|
|
|
|
\begin{comment}
|
|
You may want to put /usr onto a different partition; it will
|
|
get fairly large over time.
|
|
|
|
If you have a RAM disk, you should consider having it renamed
|
|
to /tmp using renram5(8) or mktmp(8), in which case its entry
|
|
should be removed from the namespace file.
|
|
|
|
\end{comment}
|
|
For a description of the namespace file, see the kernel
|
|
reference manual, or the namespace(5) manual page at
|
|
\hturl{http://www.gno.org/~gno/man/man5/namespace.5.html}
|
|
|
|
\item
|
|
During the extraction process, the following files were placed
|
|
into the /gno/System directory:
|
|
|
|
\begin{verbatim}
|
|
/gno/System/Desk.Accs/GNOSnooperII
|
|
/gno/System/Desk.Accs/SuspDA
|
|
/gno/System/Desk.Accs/TMTerm
|
|
/gno/System/Drivers/FilePort
|
|
/gno/System/Drivers/FilePort.Data
|
|
/gno/System/Drivers/NullPort
|
|
/gno/System/System.Setup/GNOBug
|
|
/gno/System/System.Setup/SIM
|
|
\end{verbatim}
|
|
|
|
It is recommended that these files be copied into the relevent
|
|
directories in the System folder of your boot partition. The
|
|
GNOBug PIF is only required if you have GSBug installed. If
|
|
you install GNOBug you should afterward sort the System.Setup
|
|
directory so that GNOBug appears before GSBug (the latter of
|
|
which is commonly called ``debug.init'').
|
|
|
|
\item
|
|
If you are not short of disk space, you should create .so links
|
|
for your manual pages. (See the mkso(8) man page for an
|
|
explanation.) You can do this by executing the following
|
|
commands:
|
|
|
|
\begin{verbatim}
|
|
cd /gno/usr/man
|
|
mkso -v -H /gno-hfs/man mkso.data
|
|
\end{verbatim}
|
|
|
|
If you installed GNO somewhere other than /gno and /gno-hfs, then
|
|
edit the above lines accordingly. If you did not install files
|
|
onto an HFS (or Appleshare) partition at all, then execute the
|
|
following commands instead:
|
|
|
|
\begin{verbatim}
|
|
cd /gno/usr/man
|
|
mkso -v mkso.data
|
|
\end{verbatim}
|
|
|
|
\item
|
|
You can now return to your program launcher (the Finder,
|
|
ProSEL-16, or whatever you used to start /gno.boot/kern) by
|
|
typing ``exit'' at the prompt. To startup up your new version
|
|
of GNO, you should then launch /gno/kern. You will then see
|
|
a ``login:'' prompt. Enter ``root'' as the user name; you will
|
|
not yet need a password.
|
|
|
|
%% README.install-end
|
|
|
|
\end{enumerate}
|
|
|
|
\section{Planning for Future Upgrades}
|
|
|
|
\it The information in this section is currently under review; please
|
|
forward any additions, deletions, or corrections to Devin Reade.\rm
|
|
|
|
One of the concerns for a system that is as large and as complex as GNO
|
|
is how to keep it updated without losing any custom configuration that
|
|
been added locally since the last installation. This section attempts to
|
|
document how to minimize such conflicts and, where the conflicts can't
|
|
be avoided, where they are likely to occur.
|
|
|
|
In the context of updating GNO, there are three main sets of files. The
|
|
first one is anything that is in the \bf /usr/local \rm hierarchy. The
|
|
subdirectories and files under \bf /usr/local \rm are intended strictly
|
|
for site-specific customization. The GNO base distribution does not,
|
|
and never will, add or modify files within \bf /usr/local\rm. (It may,
|
|
however, ensure that certain subdirectories exist.) For this reason,
|
|
it is recommended that any files (such as programs, configuration files,
|
|
or manual pages) that you wish to have on your system but are not part
|
|
of the GNO base distribution are placed within the \bf /usr/local \rm
|
|
hierarchy. If you wish to have this customation available to another
|
|
GNO installation, it would then be sufficient to copy the \bf /usr/local \rm
|
|
hierarchy in its entirety.
|
|
|
|
\em
|
|
NOTE: There is a single (temporary) exception to the comments above. The
|
|
current GNO base distribution will copy in the file
|
|
\textbf{/usr/local/lib/startup.mk}
|
|
which is used by the program dmake, and which is a duplicate of
|
|
\textbf{/usr/lib/startup.mk}.
|
|
When dmake gets updated to properly use
|
|
\textbf{/usr/lib/startup.mk}
|
|
as it's configuration file, then
|
|
\textbf{/usr/local/lib/startup.mk}
|
|
will no longer be created by the GNO base install scripts. If you have
|
|
customized
|
|
\textbf{/usr/local/lib/startup.mk}
|
|
for your site, you first save your startup.mk file elsewhere, then merge
|
|
those customizations into the new startup.mk.
|
|
\rm
|
|
|
|
The second set of files are those which have been written such that they
|
|
(or their configuration files) have pathnames which are hardcoded, and
|
|
therefore must reside outside of the \bf /usr/local \rm hierarchy. Some
|
|
of these programs can be forced into the first set described above by
|
|
setting appropriate environment variables; see the program's documentation
|
|
for details. For the remainder, you should keep track of which programs
|
|
you have installed, and where they (or their configuration or data files)
|
|
reside. Unless there is a name conflict with files in the GNO base
|
|
distribution, these files won't be overwritten or deleted during a GNO
|
|
update, but they obviously will not be copied in when doing a ``from scratch''
|
|
installation.
|
|
|
|
The third set of files are those are created while installing the GNO
|
|
base distribution, but which almost certainly have been modified in
|
|
any existing GNO site.
|
|
These are all configuration files of one sort or another.
|
|
(If you are doing a fresh install, you can ignore
|
|
this set.) If you are using the GNO ``from scratch'' installation scripts
|
|
rather than the update scripts
|
|
(\em not yet available\rm)
|
|
then you \em must \rm ensure that you have backups of these files so
|
|
that you can restore them after the install scripts have completed. You
|
|
should not merely copy your old versions over the new ones; instead
|
|
compare the old files to the new to verify if there have been features
|
|
added which should be propagated to your old customized files.
|
|
|
|
The files which are known to be in the third set are listed here:
|
|
|
|
\begin{verbatim}
|
|
/etc/glogin
|
|
/etc/group
|
|
/etc/hosts
|
|
/etc/inittab
|
|
/etc/motd
|
|
/etc/networks
|
|
/etc/namespace
|
|
/etc/passwd
|
|
/etc/rchost
|
|
/etc/syslog.conf
|
|
/etc/whereis.conf
|
|
/home/root/gshrc
|
|
/lib/orcacdefs/defaults.h
|
|
/var/adm/newuser/newid
|
|
/var/adm/newuser/skel/glogin
|
|
/var/adm/newuser/skel/gshrc
|
|
\end{verbatim}
|
|
|
|
If you find that you have to modify any files outside of the \bf /usr/local \rm
|
|
(or \bf /home\rm ) hierarchy, you should record which files have been so
|
|
modified, together with a brief description of the necessary changes.
|
|
|
|
\section{Custom Configuration}
|
|
|
|
\it The information in this section is currently under review; please
|
|
forward any additions, deletions, or corrections to Devin Reade.\rm
|
|
|
|
This section describes the configuration changes that are commonly done
|
|
on newly installed systems.
|
|
|
|
If you have not already read the section on \bf Planning for Future
|
|
Upgrades \rm, you should do so now.
|
|
|
|
\subsection{Passwords}
|
|
|
|
If you ever expect to connect your IIgs to a network (including the internet)
|
|
it is recommended that you password protect all of your GNO user IDs.
|
|
This is done with the
|
|
\htlink{passwd}{http://www.gno.org/~gno/man/man1/passwd.1}(1)
|
|
command; see the manual page for details.
|
|
|
|
Because there is no inherent security features in the Apple IIgs in general
|
|
(or GNO in particular), password protecting accounts on a stand-alone
|
|
machine does not gain any real level of security; if someone has physical
|
|
access to your IIgs, then they can get anything off of it that they want
|
|
to. On the other hand, password protecting your accounts can't hurt, and
|
|
it is an excellent habit to get into. (Rather, \em not \rm password
|
|
protecting accounts is a very poor habit to get into.)
|
|
|
|
\subsection{Configuring the Namespace Facility}
|
|
|
|
\em This section is yet to be written. \rm
|
|
|
|
\subsection{Configuring Host and Network}
|
|
|
|
\em This section is yet to be written. \rm
|
|
|
|
\subsection{Configuring the System Logger}
|
|
|
|
\em This section is yet to be written. \rm
|
|
|
|
\subsection{Configuring the Shell}
|
|
|
|
\em This section is yet to be written.
|
|
Talk briefly on /etc/glogin, \$HOME/glogin, and \$HOME/gshrc.
|
|
Leave real docs for the gsh manual.
|
|
\rm
|
|
|
|
\subsection{Message of the Day}
|
|
|
|
\em This section is yet to be written. \rm
|
|
|
|
\subsection{Adding Groups}
|
|
|
|
\em This section is yet to be written. \rm
|
|
|
|
\subsection{Adding Users}
|
|
|
|
\em This section is yet to be written. \rm
|
|
|
|
\subsection{Configuring Documentation Programs}
|
|
|
|
\em This section is yet to be written.
|
|
Discuss /etc/whereis.conf, MANPATH, etc.
|
|
\rm
|
|
|
|
\subsection{Configuring Outbound SLIP}
|
|
|
|
\em This section is yet to be written. \rm
|
|
|
|
\subsection{Configuring Inbound Serial Connections}
|
|
|
|
\em This section is yet to be written. \rm
|
|
|
|
\section{Obtaining Source}
|
|
|
|
Source for the base distribution is available in one of two ways:
|
|
Anonymous FTP and anonymous CVS.
|
|
|
|
You can obtain the GNO source via anonymous FTP from
|
|
\hturl{ftp://ftp.gno.org/pub/apple2/gs.specific/gno/base/src}.
|
|
The files in that directory hierarchy are updated daily from the
|
|
master repository. Files that have been recently added or modified
|
|
will be listed in one or more of the
|
|
\tt NEW.today\rm ,
|
|
\tt NEW.this.week\rm , or
|
|
\tt NEW.this.month \rm
|
|
files.
|
|
|
|
\em Please download only what you need. Sites that attempt to download
|
|
all or large portions of the sources on a regular and frequent basis
|
|
without first requesting mirror status will be disabled. This is done
|
|
to keep a reasonable load level on Trenco.\rm
|
|
|
|
For those sites which are able to make use of CVS (Concurrent Versions
|
|
System), the GNO sources can also be obtained by anonymous CVS in
|
|
pserver mode. As there is as yet no CVS port to the GS, this implies
|
|
that you have another (probably UNIX) machine to which you are downloading
|
|
the sources. Because of the size of the archive, you should also have
|
|
a reasonable speed of interconnect between your machine and \tt ftp.gno.org\rm.
|
|
|
|
The first time you obtain GNO sources via CVS, you must log in to the
|
|
repository, then check it out:
|
|
|
|
\begin{verbatim}
|
|
cvs -d :pserver:cvs@ftp.gno.org:/usr/local/repository login
|
|
Password: cvs
|
|
cd /your/source/tree
|
|
cvs -d :pserver:cvs@ftp.gno.org:/usr/local/repository checkout gno
|
|
\end{verbatim}
|
|
|
|
After this is done, you can update your sources to match the most recent
|
|
version by doing the following:
|
|
|
|
\begin{verbatim}
|
|
cd /your/source/tree/gno
|
|
cvs update -PAd
|
|
\end{verbatim}
|
|
|
|
Because doing updates by CVS does not use up as much bandwidth as
|
|
does downloading the entire source tree, feel free to do cvs updates
|
|
on a regular basis. It usually doesn't make sense to do them more
|
|
than once per day, though.
|
|
|
|
\chapter{Desk Accessories}
|
|
|
|
The following is a description of the desk
|
|
accessories that are shipped with GNO/ME.
|
|
|
|
\section{GSI NDA}
|
|
|
|
The \textit{Graphical Shell Interface New Desk Accessory}
|
|
allows you to access the shell from a window inside a
|
|
desktop application. Selecting ``GSI'' from the Apple menu opens a
|
|
window and brings up a shell in it. You can use the shell in this
|
|
window just as you would in text mode.
|
|
|
|
At this time, GSI doesn't support any
|
|
terminal emulations --- it's a ``dumb'' interface. As a result,
|
|
full screen programs like \bf less\rm(1) and \bf vi\rm(1) will not
|
|
work properly in GSI.
|
|
|
|
\section{Suspend NDA}
|
|
|
|
The Suspend New Desk Accessory allows you
|
|
to temporarily stop a desktop program and return to the text
|
|
shell. To return to the desktop program, simply type the foreground
|
|
command, ``\texttt{fg}''.
|
|
|
|
You may put desktop programs in the background
|
|
(through the ``\texttt{bg}'' command)
|
|
at your own risk. This is not guaranteed to work for all programs,
|
|
and putting a desktop program in the background will not put the
|
|
Apple IIgs in text mode.
|
|
|
|
Also, do not run another desktop program
|
|
when one is currently suspended. The GNO kernel tries to cleanly
|
|
terminate the second program, but may not always be able to
|
|
accomplish this.
|
|
|
|
\section{GNO Snooper CDA}
|
|
|
|
The GNO Snooper CDA is a utility that is
|
|
very helpful in debugging software, and reporting system crashes.
|
|
Snooper has access to information inside the kernel that is not
|
|
generally available to processes.
|
|
|
|
When you enter the control panel and choose
|
|
``GNO Snooper'' a process list is displayed, which is
|
|
very similar to the \bf ps\rm(1) shell command, and a menu is presented
|
|
with the following options, each of which is invoked by typing it's
|
|
first letter:
|
|
|
|
\begin{description}
|
|
\item[D)etails]
|
|
|
|
Get detailed information on a process.
|
|
Snooper asks you for the process ID number of the process you
|
|
want to investigate. Snooper then dumps the state of the 65816
|
|
registers and shows various other information about the process.
|
|
|
|
\item[K)ill]
|
|
|
|
This option sends a SIGKILL to a process. Just type in the process ID
|
|
of the process you want to kill.
|
|
|
|
\item[P)rocess Group Dump]
|
|
|
|
Dumps the system process group tables,
|
|
which is very useful for debugging code which manipulates process
|
|
groups. The first table, ``pgrp'', is the process group reference
|
|
count table. This table lists how many processes (and TTYs)
|
|
belong to that process group.
|
|
Process group ids start at 2, so the first pgrp listed is 2.
|
|
|
|
The second listing is the ttyStruct table.
|
|
This table shows to which process group each TTY belongs. The TTYs start
|
|
with .null (0), then move on to .ttyb, .ttya, .ttyco, etc.
|
|
|
|
\item[F)ile Table Dump]
|
|
|
|
Lists all open files known to GNO.
|
|
The information is presented in tuples. The first element is the
|
|
real GS/OS refNum or device driver ID. The second is the type of
|
|
file (GSOS, ttyXX, or PIPE). The third is how many references to
|
|
that file are open. This information is global, so if two
|
|
processes have .NULL opened, the refcount for .tty00 will be 2.
|
|
|
|
\end{description}
|
|
|
|
\bibliography{gno}
|
|
|
|
\parindent=20pt
|
|
|
|
|
|
\end{document}
|