Title : A Guide to Data General's AOS/VS Part II
Author : Herd Beast
==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