README.md
This UIC contains system-management programs for RSX-11M V3.2
Ray Van Tassle
Motorola
1301 E. Algonquin Rd.
Room 4135
Schaumburg, Ill.
(312)-576-6017
We have found that a set of programs to help you manage the system, especialy
a multi-user development system, helps things incredibly. First of all,
if you do not yet have CCL, get it!!!!!!
*********************************************************************
editor's note: to get CCL on your system please reference Jim Downward's
uic [344,*]. I agree with Ray, it is a most useful enhancement to your
RSX-11M system.
***********************************************************************
We have an 11/70 with over 75 users and 15-20 terminals, doing program
development. The disks are an RP-04 and RP-06. Our terminals are
VT-100's and Hazeltine 1500's (if you also have Hazeltines, I feel sorry
for you, too. That is the biggest piece of junk I have run across in
quite some time.)
I have put up most of the KMS-FUSION stuff, but I use it for the features
it gives, not for accounting. These programs here should all work even
if you don't put the KMS stuff up, but the changes to HEL help a lot.
We do not have an operator, and there is only privileged user--the
system manager. And only two us us know the system manager password.
I put in SYSLOG (KMS-FUSION), but I mainly use it to count
user QIO's, and to keep
the double-word time. I fixed RMDEMO (DEC's copy for 3.2) to use this
time counter to display the system up time (RMD starts up on a
dedicated CRT when the system boots up). I also use the idle-time
count to compute and display the system percent idle time, which gets
displayed on line 1 of the RMD screen. Since we lost the rotating
lights with the remote front panel, this % display is a handy crutch
to see how loaded the system is.
OPERATOR THINGS
---------------
We do not have an operator, and there is a need for regular
non-privileged users to be able to do certain restricted privileged
things, so they don't have to bug me to do it. These are things like
changing the spooler form number for the LA-120, log off terminals,
etc. I set this up by having a special user "OPERATOR", who is
privileged, but gets a program run (MONOPR) when he logs on. This
program spawns "@OPERATOR.CMD/-LI", which I have asking questions, so
that anyone can do them, but only those things which I have set up the
command file for them to do. Needless to say, the password for
OPERATOR is known to everyone.
"MAKOPRMON.CMD" makes this program. I have this user set up to log-in as
slave & a task (MONXXX) to be run when HEL exit's.
This is in HEL & RSE (KMS-FUSION). If you don't have the mod's to HEL, you
might want to fix up your HELLO to do the same thing (putting in the KMS
stuff is better, though).
One feature that IAS had that we missed was that IAS would time out
the PDS prompt and log off the user after a while. Since we have many
more users than terminals, this would take care of someone who walked
away from his CRT and didn't come back for an hour, but of course, if
you just did a PIP, it wouldn't time out. I liked this featue so much
that I added a program to do almost the same thing, called "TT.KGB".
If a terminal is idle for 9 minutes, it blasts out a message asking if
anyone is still there. In another 30 seconds, it sends out another
one, and 30 seconds after that, forces a BYE (via RMC). I use the QIO
count that SYSLOG (KMS-FUSION) keeps in the
terminal UCB to decide if it is idle or
not. Every 10 seconds, TT.KGB checks all the terminal UCB's to see if
any task has been doing I/O. If not, it looks to see if that terminal
has a task running that is not blocked (presumably any program that is
running will either do I/o or be non-blocked). This time is long
enough that it doesn't screw anyone that is thinking (unless they fall
asleep), and it takes care quite well of logging off an idle terminal,
so much so that now many of the usere will start up a long indirect
command file (compile, assemble, TKB, etc) and just walk away, knowing
that they will be safely logged off when it is all done. When I do
this myself, I also set my terminal to slave, so that nobody can start
typing in things until I do get logged off.
MAKTTKGB.CMD creates this. RMC is a (KMS-FUSION) thing. FRC (from DEC)
will do an equivalent thing.
TIME-SCHEDULED SYSTEM TASKS
---------------------------
It is handy to have MCR commands kicked off periodically. For example, you
might want to clean-up your disks (delete .LST files, etc) once a day,
fire off programs at midnight, etc.
It is really yuchy to do this by running the task with a /RSI, and anyway
you can't give it an MCR command line if you do that.
Therefore, I wrote RECUR, a program which does just that.
In your startup.cmd, run RECUR with a /RSI of 5 minutes or so. See my sample
STARTUP.CMD.
RECUR is driven off a file "RECURRENT.CMD", from which it gets the
MCR command, the time-of-day and day-of-the-week when the command should be
executed. It keeps track of the last time it ran in another file, so
that it does things properly.
However, the is a slight problem!!! MCR has a minor bug, in that it
always chases down the redirect chain, to see if the physical terminal is
logged on. And RECUR's TI: is the console device CO0: (all /RSI tasks
have their Ti: set to CO0:), which is
re-directed to TT0:, which may or may not be logged on. MCRDIS needs
to be fixed so that it doesn't chase down the re-direct chain if
the TI: is the console. The fix is the SLP file "MCRDIS1.SLP".
This leads to another minor problem. We now have MCRDIS looking at the
terminal UCB for CO0: for the LOGIN UIC, CURRENT UIC, & LOGGED-ON bit.
You have to ZAP the UCB to set these up. The file ZAPRASX11M.CMD
does this. You just have to find the right addresses. They root address
is the tag ".CO0", login uic is a negative offset, and the other two are
a positive offset.
RECUR.CMD builds it. See the listing for more details.
SETPRV
------
It is handy to be able to do privileged operations without having to
log off & log back into a privileged account. The task SETPRV does this,
asking for the "magic word", and if you type in the right one, it
will do one MCR command with the terminal privileged, then set it back
to non-priv. If you want to stay priv, this command would be: ABO SETPRV.
If you need to do 2 or 3, make it "@MCR".
RMD
---
The fixes to RMD are also here. The RMDRIV is the one that does the
one huge QIO (DEC/JAN 81 Dispatch), with a fix.
UFD
---
I have each user as an entire group by himself. So that user's can
seperate their stuff however they choose amoung UIC's, I put a fix
into UFD, which will let a non-priv user create a UFD on his
LOGIN SY:, with the same group-number and a higher member-number as
his LOGIN UIC.
For example:
User DR1:[21,1] can create DR1:[21,2] but not DR0:[21,anything]
User DR1:[25,100] can create DR1:[25,105] but not DR1:[25,10]
User DR0:[300,377] cannot create any UFD's
This is UFD.COR
CKP
---
This is a KMS program (fixed by me for virgin 3.2) to checkpoint out
all stopped tasks. I set it up to run every 5 minutes. This is seperately
on this tape.
MVI
---
Tells you who has mounted what volumes.
FRC
---
Force MCR command line to a terminal.
RMC
---
A KMS-FUSION program to do the same thing.