                              ==Phrack Magazine==

                 Volume Four, Issue Forty-Four, File 15 of 27

()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()

                 A Guide to Data General Corporation's

                             AOS/VS System
                                PART II

                             by Herd Beast


CONINFO [console]
-----------------

CONINFO shows information about a console to the user.  Without an
argument, it gives the user information about his console.  With a
parameter, and if the user has SYSTEMMANAGER privilege turned on, it
gives information about the console specified as argument.  The
information gives changes depending as to how the console is connected:

                 CONNECTION                   INFORMATION
          ------------------------+---------------------------------
          ITC/LTC over TCP/IP       Device code, engine number,
                                    line number, IP address,
                                    port number.

          ITC/LTC over XNS          Device code, engine number,
                                    line number, CS/200 ethernet
                                    address.

    ((No remote address if no connection exists (on both of them).))

          ITC/PVC                   Device code, engine number,
                                    engine address, line number,
                                    line address OR an ASCII string if
                                    the PVC type is NAME.

          Telnet                    Line number, IP address, port.
                                    Only line number if there's no current
                                    connection.

          IACs                      Device code, engine number, line
                                    number, modem flag.

          Duarts                    Device code, engine number, line
                                    number, CON0 flag.

          TTI/TTO Opcon             Device code, engine number, line
                                    number, CON0 flag.


CREATE <pathname>
-----------------

CREATE creates a file (TXT or UDF).  CREATE/LINK creates file links.

/DATASENSITIVE

          Creates a file with a data sensitive record format.

/DIRECTORY

          Creates a directory.

/DYNAMIC

          Creates a file with a dynamic record format.

/ELEMENTSIZE=x

          Sets the minimum amount of space by which a file can grow in 512
          byte blocks.

/FIXED=x

          Creates a file with a fixed length record format, with a
          length of x.

/HASHFRAMESIZE=x

          Sets the unit into which the system divides the directory for file
          access to x.  The default is 7.  The best formula for this is: the
          nearest prime number (up to 157, the maximum) of the number of
          files / 20.

/I

          Inserts typed text at @INPUT as the contents of the file.  The
          input ends when a single ')' followed by a Return is typed.

/INDEXLEVELS=x

          Sets the maximum number of data elements the file can hold to x.

/LINK

          Creates a linked file to the second argument.  For example, to link
          MODEM.CLI with :UTIL:NET:MODEM.CLI, use CREATE/LINK MODEM.CLI
          :UTIL:NET:MODEM.CLI.

/M

          Takes the contents of the file from a macro that follows.  The
          input ends when a single ')' followed by a Return is typed.

/MAXSIZE=x

          Creates a control point directory of x*512 bytes (a disk block).

/TYPE=t

          Creates a file of type t.  Where t is either the right decimal
          number or the right 3 letter mnemonic (see the section titled
          "System Structure").

/VARIABLE

          Creates a file with variable record formats.


DELETE <file>
-------------

Deletes file.  The opposite of CREATE.


DUMP <file> [path]
------------------

DUMP dumps file from the current directory to a file.  Such files can be
a diskette or a magnetic tape.  [path] is the template for the files to
dump -- if it doesn't exist, everything will be dumped.  DUMP isn't
compatible with Unix; AOS/VS has a TAR command for dumping file for use
in Unix.

/[AFTER|BEFORE]/[TLA|TLM|TCR]=date and/or time

/TYPE=[\]type

          These switches works just like the one in FILESTATUS.

/BUFFERSIZE=x

          Sets the buffer to x (x is a multiply of 1024).  x is given in
          bytes, but if specified as xK it reads a kilobytes (1 kilobyte
          is 1024 bytes).  The larger the buffer, the more data fits on
          the tape.

/DENSITY=[800|1600|6250|ADM|LOW|MEDIUM|HIGH]

          The numbers are for bits per inch.  ADM means Automatic
          Density Matching.  If one of the other values is used, there's
          a possibility that it won't fit in another tape unit (unit X's
          LOW value isn't the same as unit Y's).

/FLAT

          Eliminates the directory structure.  Otherwise, DUMP keeps the
          directory tree when dumping.

/IBM

          Writes to a tape that an IBM format label, created using
          LABEL/I.

/L[=pathname]

          Lists filenames dumped in pathname, or in @LIST.  (See the
          command after LOAD, 'LISTFILE').

/NACL     Don't dump ACLs, so that when reloading, the default ACL will
          be created.

/RETAIN=x

          Sets the retention period.  The dumpfile cannot be overwritten
          until x days have passed.

/SEQUENTIAL

          Will not rewind the tape after completing the dump.

/V        Verify the dump by listing the dumped files.


FED
---

FED (moohaha), is a program, not a CLI command.  FED stands for File
Editor Utility, and it lets you examine locations in disk files and
modify them.  FED is run as XEQ FED [path].  The FED inner prompt is
'_'.

FED has internal keywords.  They are run by using ESC <keyword> (if you
can't use escape, try setting CHAR/ON/XLT/OTT and use "~}").

To understand FED well, you must be familiar with the DEBUG command and
some Assembly, which seems to me is beyond the scope of this file.  So
if you do know what you're doing, look DEBUG up.

C    Run a CLI under FED.
DIS  Change display mode
G    Examine/modify ring register
H    Help
I    Define/list temporary symbols
J    Delete temporary symbols
M    Examine/modify input radix
MEM  Examine/modify file locations
S    Search disk locations
T    Examine/modify display mode
X    Enable/disable symbol table
Y    Enable/disable logging to a file
Z    Exit FED
?    Display verbose error messages

/I=file   Use the commands in filename for the editing session.

/L=file   Save all FED commands/responses to file.

/S=file   Use file as the symbol table file.

/N        Don't use a symbol table file.

/P        Treat the disk file as a program file.

/R        Open for read-only.

/U        Treat the disk data as a user data file.

/X        Treat the disk file as an OS file.


LOAD <file> [path]
------------------

LOAD restores files that were dumped.  If LOAD is invoked from CLI32, a
macro calls the DUMP_II program, which is a more advanced version of
DUMP.  If [path] is omitted, the entire dumpfile is loaded into the
current directory (with its directory tree).

/[AFTER|BEFORE]/[TLA|TLM|TCR]=date and/or time

/TYPE=[\]type

          These switches function the same as in FILESTATUS.

/BUFFERSIZE=x

/DENSITY=density was already set with DUMP, use ADM if at all

/FLAT

/IBM

/L[=path]

/NACL

/SEQUENTIAL

/V

          These switches function the same as in DUMP, only in the
          reverse direction (for example, /NACL won't load the
          dumpfile's ACL and create new default --  username,OWARE
          -- ACLs.

/DELETE

          Delete any existing file with matching name.

/N        Don't load, just list files in dumpfile.

/Q        Squeeze console messages and file lists (don't use tabs and
          more than one space).


LISTFILE [path]
---------------

LISTFILE sets the @LIST file (see the section titled "System Structure"
for details).  In short, program uses the generic file name @LIST, it
will use the files specified through LISTFILE instead.

/G        Sets the LISTFILE to the generic @LIST.

/K        Sets the LISTFILE to null.

/LEVEL=x  Sets the LISTFILE to that of level number x LISTFILE.

/P        Sets the LISTFILE to the previous environment setting.


PASSWORD
--------

Only exists with CLI32.

(For more information, see the section titled "System Structure").

/CHANGE   Change the current CLI password.

/PROMPT
/NOPROMPT

          If /PROMPT, the user will have to enter his password when
          using LOCK (so he can't LOCK the console without a password).
          Otherwise, automatically locks the console when LOCK is
          executed.

/READ=path
/WRITE=path

          /WRITE Encrypts the CLI password and writes it to the file
          [path].  When /READ is issued, the encrypted password is read
          from the file.  When a password check needs to be done, the
          password entered is encrypted and the encrypted forms are
          compared.  This way, a "PASSWORD/READ=PWD" in the LOGON file
          can set the CLI password automatically at logon.

I am not sure of the way that the password in encrypted when being saved
with /WRITE.  Nor, for that matter, do I have any more information about
the way the login passwords are encrypted in the profiles (when and if
they are).

Beware of situation where PWD, for example, has the string "qwerty" in
it, and you type PASSWORD/READ=qwerty.  If you use LOCK, the terminal is
locked forever, since "qwerty" is assumed to be the encrypted form.


PROCESS <path>
--------------

Creates a son process to run the program in <path>.  <path> is assumed
to end with .PR, and only then to be just <path>.

/ACCESSDEVICES

          Allows the process to define and access I/O devices.  Requires
          the Access Devices privilege as defined in the profile.

/BLOCK

          Blocks the father CLI until the process terminates.  If the
          CLI isn't blocked, you can use CHECKTERMS to display the
          process' termination message when it terminates.

/BREAK

          Creates a break file (.BRK) if the process has an error or
          terminates because of one.  If EXEC is TERMINATEd instead of
          HALTed using the HALT 'EXEC' command, it will create a .BRK
          file.

/BSON

          Blocks the son process until freed with UNBLOCK.

/CHLOGICALTYPE

          Allows the process to change its logical type (16 bit or 32
          bit).  Requires the Change Logical Type privilege, which, as
          mentioned in "System Security" is usually on.

/CHPRIORITY

          Allows the process to change its priority.  Requires Change
          Priority privilege.

/CHTYPE

          Allows the process to create any other type of process and
          change its own process type.  Requires Change Type privilege.

/CHUSERNAME

          Allows the process to create a new process with a different
          username than its own.  Requires Change Username privilege.

/CHWSS

          Allows the process to change its working set size.  Requires
          Change Working Setsize privilege.

/CONSOLE[=console]

          Makes the new process' console the same as that of the
          father's console, or [console].

/CPU=x    Limits CPU time for x seconds.

/DACL     Don't pass default ACL to the son process.

/DATA[=path]

          Make the son's @DATA file the same as the father's, or [path].

/DEBUG    Starts the son process in the debugger.

/DEFAULT  Gives the son process the same privileges as the father's.

/DIRECTORY=path

          Make path the initial directory for the son process.

/DUMP     Appends a dump to the breakfile data.

/INPUT[=path]

          Makes the son's @INPUT file the same as the father's, or
          [path].

/IOC

          Makes the son's @INPUT, @OUTPUT AND @CONSOLE the same as does
          of the father.

/LIST=[path]

          Makes the son's @LIST file the same as the father's, or
          [path].

/MEMORY=x Sets the son's process maximum memory size in 2kb pages.

/NAME=name

          Assign name to the son process.  Now it can accessed both by
          PID and by name.

/OUTPUT=path

          Makes the son's @OUTPUT file to be path.

/PRIORITY=x

          Gives the process a priority of 1-511 (highest-lowest).

/PREEMTIBLE
/RESIDENT

          Makes the son process pre-emtible or resident.  The default is
          swappable.

/SONS[=x]

          Allows the son to create one less son process than the father,
          or x.

/STRING

          Stores the termination message in the CLI string.

/SUPERPROCESS
/SUPERUSER

          Allows the son process to enter the appropriate SUPER mode.

/UNLIMITEDSONS

          Allows the son process to create unlimited amount of sons.


SED [path]
----------

SED is a program and not a CLI command and therefore run as XEQ SED ...
[path] is the file to be edited.  The SED inner prompt is '*'.

SED is a text editor for creating and modifying files.  SED's help
facility is accessible by typing HELP from SED:

ESCAPES   ADD TEXT   CHANGE TEXT   DELETE TEXT   LISTINGS   POSITIONING
-------   --------   -----------   -----------   --------   -----------
EXECUTE   APPEND      MODIFY        DELETE        LIST       POSITION
HELP      INSERT      REPLACE       MOVE          VIEW       FIND
SAVE      DUPLICATE   SUBSTITUTE    JOIN          PRINT
          UNDO        SPLIT
                      CUT
                      PASTE

EXITING   MISC            HELP WORDS
-------   ----            -----------------------
ABANDON   CLEAR           CURSOR_CONTROL ADDRESS
BYE       DIRECTORY       RANGE          SOURCE
CLI       DISPLAY         SEARCH_STRING  DESTINATION
DO        SET             KEYS           SYNTAX
          SPELL           SWITCHES

SED's line editing keys are:

Ctrl-A    Move to end of line.
Ctrl-B    Move to end of last word.
Ctrl-E    Toggle insert mode.
Ctrl-F    Move to start of next word.
Ctrl-H    Move to beginning of line.
Ctrl-I    A tab.
Ctrl-K    Erase everything right of cursor (like in EMACS).
Ctrl-X    Move on character to the right.
Ctrl-Y    Move on character to the left.
Ctrl-U    Delete entire line.

The commands are mostly self explanatory, but the format is something
like this.  Suppose you want to modify line #12, you'd write MODIFY 12,
which will put you on line 12.  Use the control keys to move about and
edit the line, then press Return!  If you don't press return but just
escape back to the SED prompt, your changes will be lost!

The same goes for most commands, if you need help, just type HELP
COMMAND from the SED '*' prompt.


/ED=dir   Finds the SED .ED files in dir.

/NO_ED    Don't use .ED files.

/NO_FORM_FEEDS

          Strip form feeds from the file.

/NO_RECREATE

          Don't reset the date of the file after changing it.

/NO_SCREEN

          Don't update the console automatically.

/PROFILE=path

          path is the SED startup file, that contains legal SED
          commands.

/WORK=dir

          Use this directory for SED temporary files.


SEND <pid> <message>
--------------------

Sends sends <message> to a user, based on the user's PID.  Users' PIDs
are displayed when typing WHOS.  For example, SEND 2 FU I'M A HACKER.


STRING [arg]
------------

Without an argument, STRING displays the contents of the CLI's string.
Displayed strings have commas inserted in them instead of spaces.
If an argument is present, the string is set to it.

/K        Set string to null.

/P        Set string to the the string in the previous environment (each
          CLI level can have a different string).


SYSLOG [log file name]
----------------------

SYSLOG handles system logging activity; therefore, SYSLOG can only be
run with PID 2 (the master console) or with SYSTEMMANAGER privileges
turned on.  "System logging" logs user information (processor usage, I/O
usage) in :SYSLOG.  System logging can be ran under several levels of
detail, so that it may or may not record everything going on (like file
accesses).  "Superuser logging" are things caused by a superuser who
will only be logged under the maximum detailed level; therefore, it's
possible to log them separately, and not record everything else
everybody else does.  "Error logging", which logs power failures, hard
errors and such is always on and goes to :ERROR_LOG.  Finally, there's
"CON0 logging", which logs all activities on the master console, in such
a way, that if you view the CON0 log from CON0, the log will never
end...

/CON0/[START|STOP] [filename]

          Start or stop CON0 logging.  The older CON0 log will be
          renamed into [filename], and a new log will be opened.
          Otherwise, the old log is appended to.

/DETAIL=[FULL|MINIMAL]

          Sets (or changes) the level of detail when logging.  The
          default is MINIMAL; FULL is mostly for security matters.

/NOSOFTTAPEERRORS
/SOFTTAPEERRORS

          Don't (or do) record soft tape errors.

/RENAMEERROR

          Rename :ERROR_LOG to something else, and keep on logging to a
          new file.

/START [filename]
/STOP
          Start (or stop) logging to :SYSLOG.  If [filename] is given,
          rename :SYSLOG to it and keep on logging to a new file.

/SUPERUSER/[START|STOP]

          Start (or stop) Superuser logging.  System logging must
          already be running.

/VERBOSE  Give a detailed status.

Here's a system you wouldn't want to be on:

SmSu) SYSLOG/START BEFORE_WE_WERE_HACKED
SmSu) SYSLOG/DETAIL=FULL
SmSu) SYSLOG/CON0=START


WHO [hostname:]
---------------

WHO shows information about processes.  Without arguments, it shows
your processes' information.  If WHOS is issued, information on all the
processes is displayed.  The output from WHO is similar to this:

Elapsed 109:21:22, CPU  0:00:35.828, I/O Blocks    0, Page Secs 22186
PID:     1 PMGR            PMGR            :PMGR.PR

>From left to right, WHO displayed the process ID; username; console;
and program pathname.


WRITE [arg]
-----------

Displays [arg], by default to @OUTPUT.  [arg] can also be a pseudo macro
such as [!USERNAME].

/FILEID=file

          Write [arg] to the file specified in file.

/FORCE

          Forces the system to write immediately instead of periodically
          writing the files.

/NONEWLINE

          Don't include the newline in the output.


XEQ <path>
----------

XEQ is identical to EXECUTE; it executes the program in path (how QT).
The path should be to a file with a PR (PRogram) suffix, although it
doesn't have to include .PR.

/I        Takes input from @INPUT, eg from the user.  To end the input,
          type ')' and Return.

/M        Takes input from a macro that follow.  The input end the same
          way as with /I.

/S        Stores the termination message in a STRING instead of the
          terminal screen (@OUTPUT).

THE 'EXEC' PROGRAM
~~~~~~~~~~~~~~~~~

EXEC does more than just log users on.  EXEC is the program that handles
the AOS/VS multiuser environment.  If handles user logins, but also
batch, print, and networking queues, printers, and tape mount requests.

To use any EXEC command, you must either have the username of the EXEC
user (usually OP) or have SYSTEMMANAGER privileges on.  Alternatively,
if you have the right ACL (if you're the owner) of the device you're
executing an EXEC command on, it will also work.

EXEC commands are issued in this manner: CONTROL @EXEC COMMAND.  EXEC
has its own help facility, called XHELP, which gives help only on EXEC
commands.

These are the EXEC commands (alphabetically, once again):

ACCESS           CREATE          HOLD           PREMOUNT       STOP
ALIGN            DEFAULTFORMS    LIMIT          PRIORITY       TERMINATE
ALLOCATE         DELETE          LOGGING        PROMPTS        TRAILERS
BATCH_LIST       DISABLE         LPP            PURGE          UNHOLD
BATCH_OUTPUT     DISMOUNTED      MAPPER         QPRIORITY      UNITSTATUS
BINARY           ELONGATE        MDUMP          REFUSED        UNLIMIT
BRIEF            ENABLE          MESSAGE        RELEASE        UNSILENCE
CANCEL           EVEN            MODIFY         RESTART        VERBOSE
CLOSE            FLUSH           MOUNTSTATUS    SILENCE
CONSOLESTATUS    FORMS           OPEN           SPOOLSTATUS
CONTINUE         HALT            OPERATOR       START
CPL              HEADERS         PAUSE          STATUS

ACCESS         Change the ACL of files in the :PER directory.  If some
               has OWNER access to a device or queue, he can issue an
               EXEC CONTROL command to it.  If he had READ or WRITE
               access to a queue, he can display it or add jobs to it,
               accordingly.  The default ACL is +,RW (READ/WRITE access
               for all users).  The :PER directory contains devices
               (such as consoles, printers, etc) and queue jobs.

ALIGN          Tells the printer handler to stop printing (giving the
               operator a chance to align the paper).

ALLOCATE       Restore a tape unit to EXEC's list of mountable tape unit
               (will show on UNITSTATUS).

BATCH_LIST     Change the print queue to which a batch's listings go.

BATCH_OUTPUT   Change the print queue to which a batch's output go.

BINARY         Tells the printer handler to set or disable BINARY mode.
               When in binary mode, passes everything sent to the
               printer as-is.  When binary mode is off, the printing
               handler catches characters and changes them so they'll
               have a meaning on the device.  Binary mode is necessary
               when using a graphics printer, for example.

BRIEF          Opposite of VERBOSE.

CANCEL         Cancels a waiting queue entry.

CLOSE          Prevents a queue from accepting more requests.

CONSOLESTATUS  Displays the status of an EXEC-handled EXEC.  Displays
               the console's name, maximum number of login tries
               allowed, the PID, and which user is logged on (if at
               all).

CONTINUE       Continue a device after changes (for example, running
               START) have been made to it.

CPL            Changes the number of characters per page for a device.

CREATE         Create a queue.

DEFAULTFORMS   Where the default formatting specs are.

DELETE         Delete a queue.

DISABLE        The opposite of ENABLE.

DISMOUNTED     Dismount a tape mounted with CONTROL @EXEC MOUNT.

ELONGATE       Turns elongated printing on a DASHER LP2 printer on or
               off.  When printing in elongated printing, the characters
               are wide.

ENABLE         For more information, see the section titled "System
               Security".

EVEN           Sets the status of pagination on a printer.  When on, all
               files are printed as if they have an even number of
               pages, for cosmetic reasons (all header pages come on the
               same fold of paper [yes, it sounds disgusting]).

FLUSH          Terminate the currently running job on a device or queue.

FORMS          Use the formatting specs in a filename for a certain
               printer.

HALT           Terminate EXEC.

HEADERS        Change number of headers printed when printing (default
               is 1).

HOLD           Suspends a batch or printer queue until UNHOLD is issued.

LIMIT          Enforces limits on CPU processor time or number of
               printed pages on devices or queues.

LOGGING        Where to send error and status messages instead of CON0,
               the system console.

LPP            Sets the number of lines per page when printing.

MAPPER         Tells the printing handler to use character mapping as
               defined in a given filename.

MDUMP          Suspend all other EXEC activities to create a memory dump
               in the :UTIL directory.

MESSAGE        Append a message to EXEC's log.

MODIFY         Modifies the parameters of an inactive queue entry.

MOUNTSTATUS    Displays the status of all user mount requests.

OPEN           Opens a queue to receive user requests.

OPERATOR       Whether or not there's an operator available to help with
               diskette dumps (remember what the OPERATOR privilege is
               used for; not everyone has it).

PAUSE          Suspends processing of a queue or on a device.

PREMOUNT       Mount a labeled tape volume even before a user request it
               be mount (and thus the operator doesn't get prompted when
               users try to mount it; they immediately get access).

PRIORITY       Changes the priority and/or process type for batches or
               printing processes.

PROMPTS        Whether EXEC will display the time after each command.

PURGE          Delete all inactive entries in a queue.

QPRIORITY      Limit a batch or device to only job with a certain queue
               priority (or in a range of priorities).

REFUSED        Refuse a MOUNT request.

RELEASE        Remove a tape unit from the list of mountable unit (it
               won't be displayed with CONTROL @EXEC UNITSTATUS.

RESTART        Restart a job, and if printer job, can specify from which
               page until which page to print.

SILENCE        Suppresses EXEC messages about a device or a batch.

SPOOLSTATUS    Give device and queue information.  If no devices or
               queuenames are given, it reports each spooled device and
               the queue associated with it, CPL, LPP, headers,
               trailers, binary mode status, form specifications,
               priority and process type.

START          Make a connection between a queue and a device.  Jobs for
               the queue will be run on the device.  This is need for
               something like printing queues.

STATUS         Describes the status of devices or batches.  It reports
               the sequence number, queue priority, user, and PID.  For
               a printer, it also reports the number of pages left and
               number of copies left.

STOP           Dissociate a queue from a device.

TERMINATE      Terminate the user process on a console (disconnects user).

TRAILERS       Changed number of trailers printed when printing (default
               is 0).

UNHOLD         Release from HOLD.

UNITSTATUS     Displays mount status of a tape unit or all units if no
               devicename is specified.

UNLIMIT        Release from LIMIT.

UNSILENCE      Release from SILENCE.

VERBOSE        Give detailed messages.  Brief messages include the
               queue's name, sequence number and user.  Verbose messages
               also include the PID and pathname.  Messages are sent
               when a device or a batch processes a request.

NETWORKING
~~~~~~~~~

AOS/VS is compatible with several networking protocols.  The most widely
known and used are X.25 and TCP/IP.  There is also Data General's XODIAC
network, as well as PCI networks and many others.  In general, network
services are run as process by the NETOP username (usually "OP"), and
have programs for the users to execute.  The NETOP process handles
communications and report generating to the other networking processes.
It has similar restrictions to that of the EXEC process (one must have
its username to control it, and so on).

Before going into specifics, there are some general details about
networks.  Almost everything having to do with networking -- from hosts,
to help files and programs, will be found in the :NET directory.
Programs and macros will be in :NET:UTIL, and so on.  The :PER
directory, which contains devices, contains devices for the networking
processes.

TCP/IP:  The AOS/VS implementation of TCP/IP incorporates the usual
TCP/IP programs: rlogin, rsh, telnet, ftp, smtp and so on.  Because of
the way most of these programs were built (with strong relationships to
Unix), AOS/VS work in a similar way.

AOS/VS runs RSHD, for remote logging in, and supports individual .RHOST
files as well as HOSTS.EQUIV files; TELNETD, for telnet sessions; FTPD,
for ftp sessions; SNMPD, for network management; and SMTP, which is the
same as activating the AOS/VS SENDMAIL with the become daemon switch,
for receiving mail.  There are also programs for remote printing and
dumping of files on tapes, as well as NSLOOKUP and NETSTAT.

In the :ETC directory, there will be some general TCP/IP files, and in
:USR:LIB there will be spool directories for mail and printing services.
The files normally found in :ETC will usually match the format and
function of their counterparts on Unix (for example, :ETC:HOSTS =
/etc/hosts, and so on).  However, some explaining is necessary.

The file :ETC:PASSWD does not contain any passwords.  It exists for the
use of the SENDMAIL program, for looking up local users on the machine.
Thus if someone sends mail to a local user, mail will be sent only if
that user has an entry in :ETC:PASSWD.  An example file would be,

op::0:::/udd/op:
mail::8:::/usr/spool/mqueue:

:ETC:SNMPD.TRAP_COMMUNITIES contains a list of hosts, ports, and
communities that the SNMPD process will send traps to (a SNMP trap is a
message sent indicating a change of state).

:USR:LIB contains mail programs, such as SENDMAIL's aliases file, the
SENDMAIL program itself, the SENDMAIL.CF (configuration file) and so on.

:USR:SPOOL contains spool directory, for printing (like LPD) and mail
(MQUEUE).

The format for sending mail on AOS/VS using SMTP is just like on Unix,
only the program name is SENDMAIL.

The AOS/VS TCP/IP installation usually comes with TCP libraries, such as
SOCKIT.LB, which provides ordinary Unix socket functions, from bind(),
connect(), and listen(), to gethostbyaddr(), getservbyport(), etc;
making it possible to program and compile network applications using
TCP/IP routines and the AOS C compiler.

For more information about these services, and network programming, read
a file about TCP/IP and/or Unix.

AOS/VS NETWORK PROCESSES:  Each network process usually comprises two
other processes, one for local users, and one for remote users on the
local host.  RMA provides URMA and SRMA; FTA provides UFTA and SFTA, and
so on.  What does it mean?  Simply, the S+ programs are "daemons" for
the network actions, and the U+ programs are user executable programs.
All the S+ programs are controlled through the NETOP process, while the
user programs are executed as programs by individual users.

I will take some time to explain these programs and how they work.  RMA
stands for Resource Management Agent.  FTA stands for File Transfer Agent,
and VTA stands for Virtual Terminal Agent.  The 'U' in the programs stands
for "Using" and the 'S' for "Serving."

VTA: the SVTA process provides virtual terminals for remote UVTA users,
as well as PAD support through PDNs; it controls the system's link to
any PDN.  Connections can be made from public PADs (like Telenet), and
through UVTA or any other PAD interface.  SVTA logs command responses
and errors by reporting them to the NETOP process, or a facility set by
CONTROL @SVTA SET/OUTPUT= and /LOG=.  If an error occurs during this
logging, OUTPUT is reset to the NETOP process (if something is faulty
with the NETOP process, the message is lost).

SVTA is controlled through the NETOP process, so SVTA commands are the
format of "CONTROL @SVTA <command name>".  SVTA commands:

SET            Sets miscellaneous SVTA parameters, such as whether to
               include the current time or date at SVTA prompts
               (/TIME or /NOTIME, /DATE or /NODATE); where and if to send
               the SVTA process' output (/OUTPUT=[pid #] or [@console] or
               [process name], or /NOOUTPUT); and where to write SVTA logs
               (/LOG=file).  Logs files are of format
               SVTA_month_day_year.LOG and is stored in :NET:LOGFILES
               (unless changed).

OWNER          Assigns a process name to the SVTA process.  If no name
               is given, SVTA returns its current process name.

REVERSE        ON or OFF.  Tells SVTA whether or not to accept reverse
               charged (collect) calls over the PDN.

STATUS         If no argument is given, SVTA issues a global status
               report.  If an argument is given, it can either be
               @VCONnn -- an SVTA controlled virtual console, or a PID (a
               report will be generated for all VCONs owned by that PID).

The user side, UVTA, is loaded by XEQ UVTA.  The user is faced with a
prompt, from which he can start connections and issue other UVTA
commands.  UVTA commands:

CALL <host>    First and formost, call a remote host.  A remote host is
               a host that has its name in the :NET directory (file type
               HST).  If UVTA can't locate the host in the :NET
               directory, it reports that the file does not exist.  CALL
               accepts two arguments, the remote host and the remote
               process.  Remote process in in the format of [user]:process.
               [user] defaults to OP; when this parameter is given, UVTA
               attempts to connect to a VCON controlled by that
               process/user combination.  The remote process defaults to EXEC
               (OP:EXEC), which means the user connects to a console controlled
               by the EXEC program (and faces the usual login procedure).
               CALL can be replaced by loading UVTA with CALL's
               parameters.

               Trying to use UVTA as a sort of RLOGIN by connecting to
               CLIs will probably not work, since unless the remote CLI
               has opened a VCON, you will get flooded with "Remote user
               refused connection" error messages, until you abort UVTA
               or that CLI does open a console -- all of this, of
               course, assuming that user is there in the first place
               and you won't get a "Process unknown" error message.

               Once connected, ^C^V will abort the call and the UVTA
               process.  ^C^T will break from remote mode to the local
               UVTA prompt.

RCONTROL       The control character (not including Ctrl-C) to break
               from remote mode to the local prompt.  'A', 'B', 'E', 'Q',
               'S' and 'V' are taken by the system and cannot be used.

EXECUTE <prog> Execute the parameter issued as a son process of your
               UVTA (this will fail if you don't have the privilege to
               create son processes without blocking the father).

The File Transfer Agent, FTA, is something like the FTP port to X.25.
A user using UFTA can connect to a host running SFTA, supply a valid
username/password pair, and transfer files from or to the remote host.

A short summary of UFTA commands, in the order they are usually executed:

CALL <host>    Connect to the remote host, given as an argument.
               Once connected, a ^C^A sequence will abort a transfer in
               the middle.

USER <account> Supply a username to the remote host, or if no argument
               is given, assume the local username to be identical to
               the remote one.  In any case, a password must be
               supplied.

SUPERUSER      If the user given through USER has Superuser privileges,
               will turn them for the file transfers (you can now take
               or put files that you couldn't before, because of the
               ACLs).

FILES <path>   FILES takes one argument, being the directory which
               contents will be listed.  FILES takes most arguments the
               CLI FILES takes (/ASSORTMENT, /TYPE, etc).

TYPE <file>    Display a remote file.

STORE <l> <r>  Transfers the local file, 'l', to the remote destination
               file, 'r'.  STORE will fail if the user is not privileged
               for the action, or if he is trying to transfer an
               irregular file, such as a network host file.
               Switches are: /APPEND, to append the file to the
               destination; /COMPRESS, to compress data for the
               transfer, and /DELETE, to delete the destination file if
               it already exists.
               File transfer modes are controlled through the /BLOCK and
               /RECORD switches.  /BLOCK, the defaults, means
               block-by-block transfers, and /RECORD means to transfer
               each record in the file at a time.

RETRIEVE <l> <r>  Transfers a remote file, 'r', to the local destination,
                  'l'.  The same restrictions and switches for STORE apply
                  here.

RECOVER <id>   RECOVER is the command used for recovering aborted
               transfers.  Both STORE and RETRIEVE have another
               switch called /RECOVER.  When used in conjunction with
               that switch, the transfer request's working set is kept.
               Thus, if a transfer was stopped by ^C^A, it can be
               resumed by RECOVER.  Without the "id" argument, RECOVER
               lists all the transfer IDs (which are actually interrupted
               transfers) it can recover.

SEND <msg>     Will send "msg" to the operator on the remote host.
               The message is sent to the SFTA on the remote host, and
               forwarded to the operator from there.

The X25 process controls X.25 connection over the AOS/VS network.  It
controls accounting, virtual connection handling, links, and so on.  X25
commands, operated through the NETOP process (CONTROL @X25):

ACCOUNT        Enable or disabling the accounting function of X25.
NOACCOUNT

STATUS <vc#>   Displays the status of a virtual connection.  It displays
               the remote address, number of packets passed, connection
               state and the user of the connection.

               Note that virtual connection numbers are reported by X25
               as octal numbers and are therefore read as such.

CLEAR <vc#>    Clears a virtual connection, after informing its local
               owner of the clear.

CUSTOMERS      Displays a list of X25 customers, meaning processes which
               have connected to and have not yet disconnected from X25,
               and are therefore known by it.

LSTATUS        Displays a status report about a logical link (host).
               The report gives details about the device status and
               number of bytes tranfered.

TRACE <file>   Starts a trace of an X.25 connection to the file
NOTRACE        specified as the argument.  X25 defaults to trace
               everything -- anything coming out of or going into the
               system, however this can be overridden by using /LINK=link
               to trace connections to a specific link, /VC=oct# to
               trace a specific virtual connection, or PID=pid# to trace
               virtual connections owned by the process given.

               NOTRACE stops the trace.

               X25 trace files must be displayed through another network
               utility (not an X25 subcommand), called NTRACE.
               NTRACE takes as an argument the file in which X25 stores
               trace info, and displays it in human readable format
               according to its switches, which are: /DIRECTION=[BOTH|INCOMING
               |OUTGOING], for packet directions (defaults to BOTH);
               /LIST=file, for the file to which output goes (defaults
               to the terminal); RLENGTH=[ALL|#], for the number of
               bytes from the packets to be displayed (defaults to ALL).
               The last switch is the packet types to be displayed
               (default to every packet), and is:

Type                 Incoming calls                  Outgoing calls
-------------+--------------------------------+--------------------------
/CALL                Incoming call                  Call request
/CONNECT             Call connected                 Call connected
/CI                  Clear Indication               Clear request
/CCFM                Clear ConFirMation             Clear confirmation
/DATA                Data                           Data
/INTERRUPT           Interrupt                      Interrupt
/INTCFM              Interrupt confirmation         Interrupt confirmation
/RCVR                RR - receive ready             RR
/RNR                 RNR - receive not read         RNR
/REJ                          --                    REJ - reject
/RSTIND              Reset INDication               Reset request
/RSTCFM              Reset confirmation             Reset confirmation
/RRTIND              Restart indication             Restart request
/RRTCFM              Restart confirmation           Restart confirmation

               The 2nd and 3rd columns in the chart specify what the
               packet means if the local host is being connected to
               (incoming call) or is trying to reach another host
               (outgoing).

RESOURCES <pid> Displays any connections owned by <pid>.  <pid> can be a
               process ID, or of the format username:processname.

One of the more interesting programs in XODIAC networking is NETGEN.
NETGEN (in :NET:NETGEN) is a program used to configure the network: host
addresses, routes, services, and so on.  When NETGEN is loaded, it
enters interactive mode and enables the user to configure and change
network settings from menus.  Later, it can be called using its one and
only switch, /RECREATE=<path>, to re-create the network files in :NET
according to the specification file given in <path>.

NETGEN's main menu, gives three options (other than terminating).
Creating or modifying a specification file, and creating configuration
files.  The specification file contains in it,

     o details pertaining to the local host's configuration on the
       network: the host ID, host name, domain, etc;

     o hardware device configuration: device name, type, code, and
       miscellaneous details varying from device type to another;

     o link configuration: link name, device name/type it uses, and
       (changing on the type of device), network type, line number,
       protocols, X.25 packet configuration (size/window size/retries),
       duplex, and more;

     o general network attributes: extended addressing, diagnostics,
       calling DTE in outgoing calls, etc;

     o X.25 configuration: packet/window size negotiation, reverse
       charging, NUIs, etc;

     o virtual calls configuration: permanent virtual calls, VC
       numbering, etc;

     o remote host configuration: X.25 parameters, link to be used,
       address (decimal/hex), name, host file name, etc;

     o network processes configuration: name, ACL, and other details
       (varies).

Upon loading NETGEN, there are about three menus branching off from
every option, so I cannot really mention everything.  However, since
it's mostly self explanatory, I am putting in here the output from
NETGEN's Print Specifications entry, edited to show X.25 links through
Telenet and the local configuration, plus TELNETD.  By looking at it,
one might learn how NETGEN looks/operates, and what details are
available.

This file was created using (from the main menu): 2. Access/Update Spec
File => 7. Print Configurations => file (instead of @LPT).

-----------------------------------------------------------------------------

                       ((Actual details changed.))

                    NETWORK SPECIFICATION PRINT FILE


    Specfile: :NET:NETGEN:SPEXBAKZ

    Date: 32-Nov-93

    Time:  4:66:22 PM


                          LOCAL HOST CONFIGURATION


Local Host Name : PATBBS

ACL : + ORAEW

Host ID : 7

Do you wish to specify an NSAP for this host?: Y

NSAP Address:

    Authority and Format Identifier (AFI) (0-99): 50

    Initial Domain Identifier (Local Form): null

    Domain Specific Part (max 19 ascii characters): patbbs


                              DEVICE CONFIGURATION


Device Name: ISC_DCF

Device Type  (DCU,MCA,NBS,ISC,PMGR_ASYNC,ILC,
              ICB,IBC,LLC,SNA,LSC,IDC,LDC,MRC,IRC,LRC,XLC,XSC): ISC

Device code (in octal): 37

Run SDLC or HDLC on this controller: HDLC


                               LINK CONFIGURATION


Link Name: SPRINTNET                    Device Name: ISC_DCF

                                        Device Type: ISC

Network Type : TELENET                  Line # (0-7) : 0

Protocol Type(LAP,LAPB,SDLC) : LAPB

Local Host Address (2-15 decimal digits) : 31109090063100

Sequence Numbering Modulus (8,128) : 8

Connect retry count (0-99)   :   20     Transmit retry count (0-99)  :    10

Transmit timeout (-1,0-3600) :    3     Enable timeout (-1,0-3600)   :    30

Frame Window Size (1-7)      :    7     Packet Window Size (1-7)     :     2

                            Max Packet Size (32,64,128,256,512,1024) :   128

Framing Type (HDLC,BSC)      : HDLC     HDLC Encoding (NRZ,NRZI)     :   NRZ

Clocking (EXTERNAL,INTERNAL) : EXTERNAL

FULL or HALF duplex line     : FULL


--------------------------  Virtual Call Numbering  --------------------------


# PVC'S :   0                           # SVC'S :  63   Start SVC # :    1


------------------------------------------------------------------------------


  Network Attributes
  ------------------

          Calling DTE in Outgoing Calls (Y/N): Y
          Personal Cause Code (Y/N)          : N
          Long Interrupt Packets (Y/N)       : N
          Timeout Resets (Y/N)               : Y
          Timeout Clears (Y/N)               : Y
          Mandatory Diagnostics (Y/N)        : N
          Extended Addressing (Y/N)          : Y
          Extended Clear Packets (Y/N)       : Y

  X25 Facilities Enabling
  -----------------------

          Allow packet size negotiation (Y/N)  : Y
          Allow window size negotiation (Y/N)  : Y
          Allow fast select (Y/N)              : Y
              1. local connections (Y/N)       : N
              2. routed connections (Y/N)      : N
          Allow reverse charging outgoing (Y/N): Y
          Allow closed user groups (Y/N)       : Y
          Allow network user ID (Y/N)          : Y
          Allow throughput class (Y/N)         : Y
          Allow transit delay (Y/N)            : Y
          Allow transit delay indication (Y/N) : Y
          Allow charging information (Y/N)     : Y
          Allow RPOA selection (Y/N)           : Y
          Allow user defined facilities (Y/N)  : Y
          Allow unknown facilities (Y/N)       : Y
          Allow extended facilities (Y/N)      : Y
          Allow facilities to be routed (Y/N)  : Y

 X25 Facilities           Generated?
------------------------- ---------

 1. Packet Size Facility      N    Minimum:  32             Maximum:     128
 2. Window Size Facility      N    Minimum:  1              Maximum:     2
 3. Fast Select Facilities    N    Type:
 4. Reverse Charging          N
 5. Closed User Groups        N    Type:     None           ID:          --
 6. Network User ID           N    ID:
 7. Throughput Class          N    Called:                  Calling DTE:
 8. Transit Delay             N    Delay:    0
 9. Charging Information      N    Request?  N
10. RPOA Selection            N    # IDs:    0
11. User Defined Facilities   N
12. Other Facilities          N


                            REMOTE HOST CONFIGURATION
-----------------------------------------------------------------------------


BOOMBOOM

                            X.25 Host Parameters


    Remote Host Filename : BOOMBOOM

    Remote Host Name     : BOOMBOOM

    Remote Host ID       : None

    Hostfile AOS/VS ACL  : + RE

    Accepts address extension facilities?: N


  Link Name        Device Type   Network Type    Remote Address

1 SPRINTNET        ISC           TELENET        host address in decimal :

                                                  31109200010200


-----------------------------------------------------------------------------
                                NPN CONFIGURATION
-----------------------------------------------------------------------------

TELNETD

    NPN-type entry name:  TELNETD
    NPN:                  0023
    NPN AOS/VS ACL:       + RE
-----------------------------------------------------------------------------


ACRONYMS
~~~~~~~~

ADM       Automatic Density Matching
CLASP     CLass Assignment And Scheduling Package
CLI       Command Line Interpreter
CPL       Characters per Line
IPC       Inter-Process Communications
LPP       Lines per Page
PID       Process ID; PID 2 is the "master CLI"
SMI       System Manager Interface


 
