mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-11-15 15:07:16 +00:00
947 lines
33 KiB
TeX
947 lines
33 KiB
TeX
%
|
|
% GNO Overview
|
|
%
|
|
% $Id: intro.tex,v 1.3 1997/12/03 06:46:41 gdr Exp $
|
|
%
|
|
|
|
\documentclass{report}
|
|
\usepackage{html}
|
|
\usepackage{hthtml}
|
|
\usepackage{makeidx}
|
|
\makeindex
|
|
\bodytext{bgcolor=#ffffff}
|
|
|
|
\begin{document}
|
|
|
|
\title{GNO Overview and Installation}
|
|
\author{Jawaid Bazyar \\ Tim Meekins}
|
|
\date{28 November 1997}
|
|
\maketitle
|
|
|
|
\bibliographystyle{plain}
|
|
\nocite{*}
|
|
|
|
%
|
|
% These are various html links used throughout this document.
|
|
%
|
|
\newcommand{\faqhtml}[1]{\htlink{#1}
|
|
{http://trenco.myrias.com/~gno/FAQ.html}}
|
|
\newcommand{\faqtext}[1]{\htlink{#1}
|
|
{ftp://trenco.myrias.com/pub/apple2/gs.specific/gno/doc/faq/CURRENT}}
|
|
\newcommand{\gnodocs}[1]{\htlink{#1}
|
|
{http://trenco.myrias.com/~gno}}
|
|
\newcommand{\delphi}[1]{\htlink{#1}
|
|
{http://delphi.com}}
|
|
\newcommand{\overview}[1]{\htlink{#1}
|
|
{http://trenco.myrias.com/~gno/intro.html}}
|
|
\newcommand{\kernel}[1]{\htlink{#1}
|
|
{http://trenco.myrias.com/~gno/kern.html}}
|
|
\newcommand{\gsh}[1]{\htlink{#1}
|
|
{http://trenco.myrias.com/~gno/gsh.html}}
|
|
|
|
\parindent=0pt
|
|
\parskip=1pc
|
|
|
|
The GNO Multitasking Environment is Copyright 1991-1997 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-1997 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 AT\&T Bell Laboratories.
|
|
|
|
\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-1997, 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.
|
|
|
|
\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 my endless
|
|
questions since the beginning of time, for getting me
|
|
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 me 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 me 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.
|
|
|
|
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.
|
|
|
|
\section{The GNO/ME Package}
|
|
|
|
GNO is a large and complex system. There are many pieces to it;
|
|
too many to list in detail here. However in general, the documentation
|
|
consists of the following parts. All of these are available
|
|
at the \gnodocs{GNO Documentation Page} and via anonymous ftp from
|
|
\tt trenco.myrias.com\rm:
|
|
|
|
\begin{itemize}
|
|
\item GNO Overview and Installation Manual.
|
|
\item GNO Shell User's Manual.
|
|
\item GNO Kernel Reference Manual.
|
|
\item Online Manual Pages.
|
|
\item GNO Frequently Asked Questions (and Answers) List
|
|
\end{itemize}
|
|
|
|
The base distribution of GNO itself is also available via anonymous
|
|
ftp from the same site. It comes as a three-disk set which makes
|
|
up GNO v2.0.1. There is a single disk for each of the upgrades
|
|
to versions 2.0.2, 2.0.3, and 2.0.4. 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.
|
|
|
|
Finally, there is an extensive collection of third-party GNO utilities
|
|
available. A listing of these utilities may be found at
|
|
\hturl{http://www.arrowweb.com/sbehrens/describe.htm}
|
|
or
|
|
\hturl{http://www.servtech.com/public/phoenix/computers/gno/index.html}.
|
|
|
|
\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 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 centre of
|
|
online Apple II communication. Some packages are available free of
|
|
charge. Visit Delphi for more details.)
|
|
\end{itemize}
|
|
|
|
As a last resort, you can contact Devin Reade (one of the GNO
|
|
development team) at \htmailto{gdr@eddore.myrias.com}. 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, you should 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
|
|
contact us by mail, phone, or whatever is most convenient for
|
|
you, and tell us about your project. If possible, we'll
|
|
coordinate your efforts with those of other programmers. If we
|
|
really like your project and think it may be useful to others, we
|
|
may include it on the next GNO/ME distribution!
|
|
|
|
\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@eddore.myrias.com> 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:}
|
|
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 until
|
|
GNO v2.0.6 is released. This chapter does not apply to installing
|
|
GNO v2.0.6.
|
|
|
|
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.
|
|
|
|
Suggestions for updating this document (without making major changes
|
|
to the GNO v2.0.4 distribution itself) are welcome. Please email
|
|
your suggestions to Devin Reade at \htmailto{gdr@eddore.myrias.com}.
|
|
\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{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{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}
|