.ig
	vhel1: version 1.2 of 11/8/83
	

	@(#)vhel1	1.2	(NSC)	11/8/83
..
.NH 1 
HARDWARE
.LP
The
.UC GENIX
operating system
runs on
an NS16000\s4\uTM\d\s0\ microprocessor-based system, such as a 
SYS16\s4\uTM\d\s0 Development System,
with at least the following equipment:
.in 0.5i
NS16032 32-bit microprocessor 
.LP
NS16082 Memory Management Unit
.LP
NS16201 Timing Control Unit
.LP
512 Kbyte processor main storage
.LP
20 Mbyte disk storage
.LP
RS232 full-duplex asynchronous communcations port (one minimum,
more preferred)
.in 0
.LP
The
.UC GENIX
operating system supports the following optional hardware:
.in 0.5i
.LP
NS16081 Floating-Point Unit
.LP
NS16202 Interrupt Control Unit
.LP
Additional RS232 full-duplex asynchronous communications ports
.LP
Streaming tape unit
.LP
Centronics-compatible printer (series 300 or 700)
.LP
Processor main storage sizes from 512 Kbytes to 16 Mbytes
.LP
PROM programming for Data I/O System 19
.in 0
.NH 
BASIC SOFTWARE
.LP
This
includes the time-sharing operating
system with utilities and a 
compiler for the programming language C.
Using the basic software users can 
write and run new applications.
.NH 2 
Operating System
.sh GENIX
Is the basic resident code
on which everything else depends.
Supports the system calls, and maintains the file system.
The
.UC GENIX
operating system
was derived from 4.1bsd which was developed at the University of
California at Berkeley.
Capabilities include:
.op
Reentrant code for user processes.
.op
Group access permissions for cooperative projects,
with overlapping memberships.
.op
Alarm-clock timeouts.
.op
Timer-interrupt sampling and interprocess monitoring
for debugging and measurement.
.op
Demand-Paged Virtual Memory\(em16 Mbytes for each user process.
.sh DRIVERS
All I/O is logically synchronous.
I/O devices are simply files in the file system.
Normally, invisible buffering makes all physical
record structure and device characteristics transparent and exploits the
hardware's ability to do overlapped I/O.
Unbuffered physical record
I/O is available for unusual applications.
Most drivers will need to be modified for specific applications
and additional drivers can be added to support end-equipment
features.
The following I/O devices drivers are available:
.op
Console driver.
.op
Disk driver for 8" Winchester Disk IMI 20 Mbyte.
.op
Centronics-compatible printer driver (series 300 or 700) for 
parallel port.
.op
Serial printer driver for RS232 port.
.op
Streamer tape driver for 20 Mbyte archives.
.op
Multiport asynchronous RS232 communications driver for up to 8 ports.
.op
Processor main storage sizes from 512 Kbytes to 16 Mbytes.
.NH 2
User Access Control
.LP
.sh LOGIN
Sign on to system.
.op
Verify password and establish user's 
individual and group (project) identity.
.op
Adapt to characteristics of terminal.
.op
Establish working directory.
.op
Announce presence of mail (from MAIL).
.op
Publish message of the day.
.op
Execute user-specified profile.
.op
Start command interpreter or other initial program.
.sh PASSWD
Change a password.
.op
User can change his own password.
.op
Passwords are kept encrypted for security.
.sh NEWGRP
Change working group (project).
Protects against unauthorized changes to projects.
.sh CHSH
Change login shell.  Allows user to select between the C shell and
the Bourne shell for use at login.
.NH 2 
Terminal Handling
.LP
.sh TABS
Set tab stops appropriately for specified terminal type.
.sh STTY
Set up options for optimal control of a terminal.
Insofar as they are deducible from the input, these
options are set automatically by LOGIN.
.op
Half vs. full duplex.
.op
Carriage return + line feed vs. newline.
.op
Interpretation of tabs.
.op
Parity.
.op
Mapping of upper case to lower.
.op
Raw vs. edited input.
.op
Delays for tabs, newlines and carriage returns.
.op
Set input line-editing characters.
.sh TERMCAP
Provide device-independent terminal capability description
for use by screen-oriented utilities, such as VI and MORE.
.NH 2 
File Manipulation
.LP
.sh CAT
Concatenate one or more files onto standard output.
Particularly used for unadorned printing, for
inserting data into a pipeline,
and for buffering output that comes in dribs and drabs.
Works on any file regardless of contents.
.sh CP
Copy one file to another,
or a set of files to a directory.
Works on any file regardless of contents.
.sh PR
Print files with title, date, and page number on every page.
.op
Multicolumn output.
.op
Parallel column merge of several files.
.sh LPR
Off-line print.
Spools arbitrary files to the line printer.
.sh CMP
Compare two files and report if different.
.sh HEAD
Print first 
.I n
lines of input.
.op
May print first
.I n
characters, or from start to lines or characters.
.sh TAIL
Print last
.I n
lines of input.
.op
May print last
.I n
characters, or from
.I n
lines or characters to end.
.sh SPLIT
Split a large file into more manageable pieces.
.sh SUM
Sum the words of a file.  Useful in generating an identifying checksum.
.sh TOUCH
Update time of last access of a file.
.NH 2 
Manipulation of Directories and File Names
.LP
.sh RM
Remove a file.
Only the name goes away if any other names are linked to the file.
.op
Step through a directory deleting files interactively.
.op
Delete entire directory hierarchies.
.sh LN
Link another name (alias) to an existing file.
.sh MV
Move a file or files.
Used for renaming files.
.sh CHMOD
Change permissions on one or more files.
Executable by files' owner.
.sh CHOWN
Change owner of one or more files.
.sh CHGRP
Change group (project) to which a file belongs.
.sh MKDIR
Make a new directory.
.sh RMDIR
Remove a directory.
.sh CD
Change working directory.
.sh FIND
Prowl the directory
hierarchy finding
every file that meets
specified criteria.
Checks:
.in +2
.nf
Name for matching a given pattern.
.br
Creation date to see if it is in given range.
.br
That date of last use is in given range.
.br
Given permissions.
.br
Given owner.
.br
Given special file characteristics.
.br
Boolean combinations of above.
.in -2
.fi
.op
Any directory may be considered to be the root.
.op
Perform specified command on each file found.
.NH 2 
Executing Programs
.LP
.sh CSH
The C shell, or command language interpreter.
.op
Supply arguments to and run any executable program.
.op
Redirect standard input, standard output, and standard error files.
.op
Pipes:
simultaneous execution with output of one process connected
to the input of another.
.op
Compose compound commands using:
.in+2
If ... then ... else statements
.br
Case switches
.br
While loops
.br
For loops over lists
.br
Break, continue and exit
.br
Parentheses for grouping
.in -2
.op
Control jobs:
.in+2
Initiate background processes.
.br
Switch background processes to foreground.
.br
Stop or start background processes.
.br
List the status of all processes.
.br
Terminate a process.
.nf
.in -2
.op
Execute C shell programs or command scripts with
substitutable arguments.
.op
Construct argument lists from all file names
satisfying specified patterns.
.op
Command execution history.
.op
Take special action on traps and interrupts.
.op
User-defined search path for finding commands.
.op
Create an environment according to user specifications upon login.
.op
Optionally announce mail as it arrives.
.op
Provide variables and parameters with default settings.
.sh SH
The Bourne shell, or command language interpreter.
.op
Supply arguments to and run any executable program.
.op
Redirect standard input, standard output, and standard error files.
.op
Pipes:
simultaneous execution with output of one process connected
to the input of another.
.op
Compose compound commands using:
.in+2
If ... then ... else statements
.br
Case switches
.br
While loops
.br
For loops over lists
.br
Break, continue and exit
.br
Parentheses for grouping
.in -2
.op
Initiate background processes.
.op
Execute Bourne shell programs, i.e. command scripts with
substitutable arguments.
.op
Construct argument lists from all file names
satisfying specified patterns.
.op
Take special action on traps and interrupts.
.op
User-defined search path for finding commands.
.op
Executes user-settable profile upon login.
.op
Optionally announce mail as it arrives.
.op
Provide variables and parameters with default settings.
.sh EXPR
String computations for calculating command arguments.
.op
Integer arithmetic
.op
Pattern matching
.sh WAIT
Wait for termination of asynchronously running processes.
.sh ECHO
Print remainder of command line.
Useful for diagnostics or prompts in shell programs,
or for inserting data into a pipeline.
.sh SLEEP
Suspend execution for a specified time.
.sh NOHUP
Run a command immune to hanging up the terminal.
.sh NICE
Run a command at low (or high) priority.
.sh KILL
Terminate named processes.
.sh CRON
Schedule regular actions at specified times.
.op
Actions are arbitrary programs.
.op
Times are
conjunctions of month, day of month, day of week, hour
and minute.
Ranges are specifiable for each.
.sh AT
Schedule a one-shot action for an arbitrary time.
.sh TEE
Pass data between processes and divert a copy into one or more files.
.NH 2 
Status Inquiries
.LP
.sh LS
List the names of one, several, or all files in one or more directories.
.op
Alphabetic or temporal sorting, up or down.
.op
Optional information:
size,
owner,
group,
date last modified,
date last accessed,
permissions,
i-node number.
.sh FILE
Try to determine 
what kind of information is in a file by consulting
the file system index and by reading the file itself.
.sh DATE
Print today's date and time.
Accounts for peculiarities in the calendar and the clock.
Set the operating system's 
idea of date and time.
.sh DF
Report amount of free space on file system devices.
.sh DU
Print a summary of total space occupied by all files in a hierarchy.
.sh QUOT
Print summary of file space usage by user id.
.sh WHO
Tell who's on the system.
.op
List of presently logged in users,
ports and times on.
.op
Optional history of all logins and logouts.
.sh W
List activities and login names of those currently on the system.
.sh UPTIME
Show the time, how long the system has been up, the number of
users, and the load averages.
.sh PS
Report on active processes.
.op
List your own or everybody's processes.
.op
Tell what commands are being executed.
.op
Optional status information:
state and scheduling info,
priority,
attached terminal,
what it's waiting for,
size.
.sh TTY
Print name of your terminal.
.sh PWD
Print name of your working directory.
.sh LAST
List last login of users and the tty used.
.sh LASTCOMM
Show commands executed by all users in reverse chronological order.
.sh USERS
Compact list of users who are on the system.
.sh VMSTAT
Report process, virtual memory, disk, trap, and cpu activities.
.sh PSTAT
Interpret tables that describe the system status.
.NH 2
Backup and Maintenance
.LP
.sh MOUNT
Attach a device containing
a file system to
the tree of directories.
Protects against nonsense arrangements.
.sh UMOUNT
Remove the file system contained on a device
from the tree of directories.
Protects against removing a busy device.
.sh MKFS
Make a new file system on a device.
.sh MKNOD
Make an i-node (file system entry) for a special file.
Special files are
physical devices,
virtual devices, physical memory, etc.
.sh TAR
Manage file archives on streamer tape:
.op
Collect files into an archive.
.op
Print table of contents.
.op
Retrieve from archive.
.sh DD
Physical file format translator, useful for exchanging data
with non-\s-2UNIX\s0 systems, especially IBM 370's.
.sh DUMP
Dump the file system
stored on a specified device, selectively by date, or indiscriminately.
.sh RESTOR
Restore a dumped file system,
or selectively retrieve parts thereof.
.sh SU
Temporarily become the super user with all the rights and privileges
thereof.
Requires a password.
.sh FSCK
Check file system consistency and interactively repair any damage.
FSCK is newer than DCHECK.
.op
For consistent file system, print gross statistics:  number of files,
number of used blocks, number of free blocks.
.op
For inconsistent file system, the operator is prompted before it
attempts corrections.
.sh DCHECK
Check consistency of directories in the file system.
.sh NCHECK
Generate names of files from i-numbers.
.sh ICHECK
Check consistency of the file system by building a bit-map
of used blocks and comparing this bit map against the free list
maintained on the file system.
.op
Print gross statistics:
number of files,
number of directories,
number of special files,
space used,
space free.
.op
Report duplicate use of space.
.op
Retrieve lost space.
.op
Report inaccessible files.
.op
Check consistency of directories.
.sh CLRI
Peremptorily expunge a file and its space from a file system.
Used to repair damaged file systems.
.sh SYNC
Force all outstanding I/O on the system to completion.
Used to shut down gracefully.
.sh SHUTDOWN
Bring down the system at a given time.
.NH 2 
Accounting
.LP
The timing information on which the reports are based can be
manually cleared or shut off completely.
.sh AC
Publish connect times for login accounting.
.sh SA
Publish shell accounting
report.
Gives usage information on each command executed.
.op
Number of times used.
.op
Total system time, user time and elapsed time.
.op
Optional averages and percentages.
.op
Sorting on various fields.
.NH 2 
Communication
.LP
.sh MAIL
Mail a message to one or more users.
Also used to read and dispose of incoming mail.
The presence of mail is announced by LOGIN
and optionally by CSH.
.op
Each message can be disposed of individually.
.op
Messages can be saved in files or forwarded.
.sh CALENDAR
Automatic reminder service for events of today and tomorrow.
.sh REMIND
Print entries for upcoming events from a user-created date book file.
.sh WRITE
Establish direct terminal communication with another user.
.sh WALL
Write to all users.
.sh MESG
Inhibit receipt of messages from WRITE and WALL.
.sh CU
Call up another 
.UC GENIX 
time-sharing system.
.op
Transparent interface to remote machine.
.op
File transmission.
.sh UUCP
.UC UNIX
to
.UC UNIX
copy.
.op
Automatic queuing until line becomes available
and remote machine is up.
.op
Copy between two remote machines.
.op
Mail between two machines.
.sh UUCLEAN
Clean up a UUCP spool directory.
.sh UULOG
Maintain a log of UUCP and UUX transactions.
.sh UUENCODE
Encode a binary file for transmission via mail.
.sh UUDECODE
Decode a binary file that has been encoded for mail.
.sh UUSEND
Send a file to a remote system.
.sh UUSTAT
UUCP status inquiry and job control.
.sh UUX
Execute commands remotely on another
.UC UNIX
system. 
.NH 2 
Basic Program Development Tools
.LP
Some of these utilities are used as integral parts of
the higher level languages.
.sh AR
Maintain archives and libraries.
Combines several files into one for housekeeping efficiency.
.op
Create new archive.
.op
Update archive by date.
.op
Replace or delete files.
.op
Print table of contents.
.op
Retrieve from archive.
.sh AS
Assembler.
.op
Creates object program consisting of:
.in+2
.nf
Code, normally read-only and sharable
Initialized data or read-write code
Uninitialized data
.in -2
.fi
.op
Relocatable object code is directly executable without
further transformation.
.op
Object code normally includes a symbol table.
.sh LIBRARY
The basic run-time library.
These routines are used freely by all software.
.op
Buffered character-by-character I/O.
.op
Formatted input and output conversion (SCANF and PRINTF)
for standard input and output, files, in-memory conversion.
.op
Storage allocations.
.op
Time conversions.
.op
Number conversions.
.op
Password encryption.
.op
Quicksort.
.op
Random number generator.
.sh \&
Mathematical function library, including
trigonometric functions and inverses,
exponential, logarithm, square root,
bessel functions.
.sh DDT
Interactive debugger at instruction level.
.op
For resident and remote debugging.
.op
Postmortem dumping.
.op
Single-step and set breakpoints.
.op
Interactive debugging of a target system with debugger running on the 
.UC GENIX
host system.
.op
Both code and data areas of a program can be debugged.
.op
Examine any kind of file, including core files, kernel dumps and system images.
.op
Generate and list a kernal stack trace of a process.
.op
Print:
.in+2
.nf
Location of a process
User structure of a process
Entries from system tables and buffers
Crash dump data and statistics
.fi
.in -2
.op
Symbolic reference to local and global variables.
.op
Output formats:
.in+2
.nf
1-, 2-, or 4-byte integers in octal, decimal, or hex
Single and double floating point
Character and string
Disassembled machine instructions
.fi
.in-2
.op
Examine files through PTRACE or /dev/mem.
.op
Includes a help facility.
.sh OD
Dump any file.
Output options include any combination of
octal or decimal or hex by words,
octal by bytes,
ASCII,
opcodes,
hexadecimal.
.op
Range of dumping is controllable.
.sh LD
Link edit.
Combine relocatable object files.
Insert required routines from specified libraries.
.op
Resulting code is sharable by default.
.sh RANLIB
Convert archive files to random libraries.
.sh NM
Print the namelist (symbol table) of an object program.
Provides control over the style and order of
names that are printed.
.sh SIZE
Report the memory requirements
of one or more object files.
.sh STRIP
Remove the relocation and symbol table information from
an object file to save space.
.sh TIME
Run a command and report timing information on it.
.sh PROF
Construct a profile of time spent per routine
from statistics gathered by time-sampling the
execution of a program.
.op
Subroutine call frequency and average times for C programs.
.sh MAKE
Controls creation of large programs.
Uses a control file specifying source file dependencies
to make new version;
uses time last changed to deduce minimum amount of work necessary.
.op
Knows about CC, YACC, LEX, etc.
.sh CREF
Give cross-references of symbols for C and assembly language programs.
.NH 2 
G\s-2ENIX\s0 Programmer's Manual
.LP
.sh MANUAL
Machine-readable version of the
.UC GENIX
Programmer's Manual, Volume 1.
.op
System overview.
.op
All commands.
.op
All system calls.
.op
All subroutines in C and assembler libraries.
.op
All devices and other special files.
.op
Formats of file system and kinds
of files known to system software.
.op
Maintenance and administration documentation.
.sh MAN
Print specified manual section on your terminal.
.sh CATMAN
Create the formatted files for the manual.
