.COMMENT EDIT # 0013 3 Dec 1981 15:21:18 VD0:[21,1]PAPER.RNO;32 .COMMENT PREVIOUS EDIT 3 Dec 1981 15:19:18 VD0:[21,1]PAPER.RNO;31 .title;Better RSX-11M Systems Operation--using the symposium tapes. .C;RSX-11M Systems Operation. .C;Using the DECUS symposium tapes to improve your RSX-11M system. .skip 3.nofill.lm+20 Ray Van Tassle Motorola 1301 E. Algonquin Rd, rm 4135 Schaumburg, Ill (312)-576-6017 .fill.lm -20 The goal is to set up your system so that 1) it is easy to use, 2) protection is enabled, 3) you do not need to have a privileged user/system manager available. A prime requirement for myself is to have no modifications in the exec, and as few as possible in DEC-supplied MCR utilities. By taking Downward's exec/MCR enhancements, I have achieved these goals. The changes in the exec are adding extra data words in SYSCM _& terminal UCB's, which I do not count as a modification. .p We have an 11/70 with 256KW, 1-RP04, 1-RP06, 2-DH11's, 5-RK05's, 1-RK06, 2-RX01's, 2-mag-tapes. There are about 100 user accounts, and 35 heavy users. We have 16 local CRT terminals, _& 3 dial-in ports. There are only 2 privileged users: SYSTEM MANAGER _& OPERATOR. The 2 of us who know how to sign on as MANAGER rarely do, and only for system-related things, never for development. .SKIP --------- .BR Have 3 UIC's for system-ralated tasks (installed or SYSCCL.CCL)--[1,54] for DEC things, [2,54] for non-DEC (or modified DEC) things that don't have to be task-built after a SYSGEN, [3,54] for ones that do have to be TKB'ed after a SYSGEN. .p Have one UIC for all utility _& program documentation, such as TECO, SRD, Runoff, CCL, Mail, etc. Make sure that all your users know where it is. Mine is LB:[10,1]. .SKIP --------- .BR Make ?.INF files. Add to them whenever you change something. For example, I have [1,54] _& [3,54] PRIVFILES.INF for tasks that need to be TKB'ed after a sysgen. Also task-build commandfile name _& UIC. TERMINALS.INF to show what the terminals hook to, and where they are, etc. SYSTEM.INF is everything I have done to the system since I converted our shop from IAS to 11M. .SKIP --------- .BR Downward has a lot of good stuff [344,*] many tapes. He has many HELP files, FCSRES, re-TKB DEC utilities for FCSRES, etc. Also are changes to INS, IND, HEL, BYE. Mostly for hooks for a simple accounting package (which I use) and CCL, to pass command lines to non-installed tasks, so you can use them as if they were installed. .p The change to RUN_&INS lets you pass a command-line to a non-installed task, so one invoked via CCL looks (to the user) just as if it were installed. An enhancement I would like to see would be for INS to do a install-run-remove on CERTAIN privileged tasks; probably only those with certain device/uic/filename. This would allow (at the option of the system manager) anyone to use these privileged tasks, without having to have them permanently installed. One example is BRU. .p I made a change to HELP so it will give you a list of the available HELP keywords if you say "HELP ?". SPR81[344,40]. .skip .c Accounting If you use ACC, SYSLOG, ACCLOG, CPUREP, you can get a lot of valuable information about system operation. I have ACC logging about everything except logon/logoff's (which would take too much disk space). You can use CPUREP to see how much overhead is going on as far as checkpointing, shuffling, etc, and see how much CPU power you are using. I have the report period set to 1 hour, which is often enough to see long-term data, without taking up too much disk. I put a change into CPUREP, to specify starting _& ending date. ACCLOG will show individual user activity, number of login's, CPU/connect time, etc. We used this to justify who should have a private terminal in his office, and who had to use a public terminal. [344,40] [344,65] Fall81 .SKIP --------- .BR If you don't have CCL, get it!!!!!!!!!!!!!!!!!!!!!!!!!!!! There is a corrected copy of it in RSXSPR81[344,60] (fixed from the same UIC in an earlier tape). This is the one I use. Downward _& Co. have a "newer" version, which will probably be the one to use with 11Mv4.0 (whenever it comes out). .SKIP --------- .BR Almost all of my users have a [XXX,1] UIC. To let each person have several directories (so they can separate their files as they choose), I made a fix to UFD, to allow a non-privileged user create a UFD on their LOGIN device, but only within the same group (1st number) and a member number (2nd number) greater than their login UIC. SPR81[300,100] .SKIP --------- .BR A fix in ATLOV (MCR) so when you do an "ACT", it also shows the state of the task (OUT, MCR, STP, etc). ACT without this is barely useful. .p A fix in ASNOV (MCR) to show a non-priv user the GLOBAL assignments, as well as his local assignments. We have changed system disks more than once, so I make GLOBAL assignments of PB0: PB1: etc to the public disks. FALL81[?,?] .SKIP --------- .BR For those nasty things that must be done by a privileged user, but you don't have an operator, and you don't want normal users to be privileged, I have a special account "OPERATOR". A feature of the Downward HEL is the ability to have an account fire up a named program whenever that user logs in. I have OPERATOR fire up "OPRMON", which fires up @[2,7]OPERATOR.CMD, then execute a BYE when the command file is over. In this command file are asked questions about doing certain things (ONLY those things you would like anyone to be able to do), such as: modifying device spooling parameters (changing form type, shutting queues down, etc), aborting BRU, loading/unloading device drivers (PP _& PR for example), doing system backup's, shutting the system down, etc. "OPERATOR" is privileged, and everyone knows it's password. If they don't, I have it written down on the wall next to the console TTY. .SKIP --------- .BR For getting warnings whenever your pool space is too small, there is POOL which sends a warning msg to logged-on terminals, and will let you abort tasks if there is not enough POOL to run the system. FALL81 [344,43] .SKIP --------- .BR As a help to clean-up programs that are sitting in the middle of a partition, and to kick out deadwood programs that are just sitting around doing nothing (like the device de-spoolers), there is CKP, which makes every non-running program get checkpointed out to disk. Getting these out (if they don't come back in right away) also helps the POOL space, as their task-headers also get kicked out. Faulty in Fall80[344,43] Good in Fall81 [?,?] and maybe SPR81[?,?] .SKIP --------- .BR We used to have a continual problem with people walking away from a terminal without logging off. Whether done on purpose or accidently, this is not a good practice. It leaves you vulnerable to the next person to walk by (who might just delete some of your files without realizing it), and it ties up a terminal so that nobody else can use it (at times this is a really bad problem in our shop, as we have 3 times as many users as available terminals). For this reason I created "TT.KGB". .p "TT.KGB" is what some systems call a 'daemon'. It hides in the woodwork looking for a terminal that has been idle for 10 minutes. (Idle is defined as not having done any I/O, and not running a program). When it finds one, it gives 3 warning messages (30 seconds apart), and if nothing has been done, logs that terminal off. If you have put in the Downward accounting enhancements, and have run ACC to counts QIO's, then every QIO done by any program run from a terminal gets counted in that terminals UCB, so TTKGB can do a better job of deciding if a terminal is idle. .p TTKGB also erases the screen of all non-logged-in terminals every 10 minutes (by scrolling the data off the screen with 30 line-feeds). This helps avoid burning data into the phosphor if the tube is left on overnight or a long period. .p Since finishing it, I have not had any problems with TTKGB logging off somebody whose terminal wasn't really idle. SPR81 [300,100], Fall81[?,?] .SKIP --------- .BR For those times when you (as the system manager) want to do privileged things while you are logged into your personal (non-privileged) account, there is SETPRV, which asks you for a magic phrase, and then executes exactly one MCR command with the terminal privileged, then sets it back to non-privileged. (Of course, that one command might be ABO SETPRV !!) SPR81[300,100] .SKIP --------- .BR A change in HELLO makes it spawn @LB:[1,2]LOGIN.CMD, instead of the normal @SY:[uic]LOGIN.CMD. When used with the Downward enhancements, this also passes 2 parameters if the user is exceeding his disk-block quota: the number of blocks allocated, and the quota. At present, my system LOGIN.CMD merely checks a couple of things, prints a nasty message if the disk-quota is exceeded, and chains to the users normal LOGIN.CMD (if it exists). In the future, I plan to put in further checks for quota-exceeded people, and force them to free up some disk space before allowing them to log in. (Maybe allow them to log in only once per day while the quota is exceeded-- that one login would be for him to delete files and/or move them to mag-tape. I could check if he has logged in yet today by creating a line in a special LB:[1,1]LOGQUOTA.DAT file and using ".READ" AND ".PARSE", to manipulate it, or creating an empty file whose name is "QXgggmmm.TMP" where ggg/mmm is the login UIC) and check for the existence of this file via ".TESTFILE". This method depends upon the fact that "RECUR" deletes all *.TMP files overnight every day. .SKIP --------- .BR I have BYE spawn "@LB:[1,5]SETTERM/-LI TTxx:" when a user logs off. This files resets the terminal characteristics. I wish the system did this, like IAS did. FALL81[?,?] .SKIP --------- .BR BYE also does a DVD to de-allocate all virtual disks that this terminal AVD'ed. .SKIP --------- .BR I made some RMDEMO changes. The most important one is that RMD keeps the percentage CPU idle time. This is really a big help since there are no more rotating panel lights. It uses a counter that ACC maintains, so you have to put in the exec data-base changes for ACC, (and also ACC). Other changes are to keep the system up time (using the ACC counter), modified RMDRIV to do large QIO's, and the task-header _& active task display pages SPR81 [300,100], SPR81 [336,100] _& FALL81[?,?] .SKIP --------- .BR To allow a privileged user (including OPERATOR) to force a command line for any terminal, there are RMC [344,?] and FRC SPR81[300,100]. They both do it, just with slightly different syntax _& command line. I use RMC only, but FRC should also work. .SKIP --------- .BR Put up "virtual disks" SPR81[313,2*]. These act just like removable disks, except that a virtual disk is physically a file on a real disk. We use them for things like 'staging' a system to be shipped to a customer, private local storage, etc. I find them especially useful for pulling things off of symposium tapes, and don't have to worry about UIC clashes, etc. The only change I made to this package was to let even a non-privileged user create a virtual disk. .SKIP --------- .BR RECUR SPR81[300,100] _& Fall81[?,?] A program that spawns MCR commands on CO0: according to time-of-day and day-of-week. This is really nice to have automatic clean-up of your disks (deleting LST's overnight, VFY to get lost files once a week, etc). Driven from a text file. I start up RECUR in my STARTUP.CMD and never worry about things again. Requires a fix in: .list .le MCRDIS - to not track down redirect of CO: (otherwise a time-based program can't spawn MCR). .le UCB data-base for CO:. To show it as logged-on, with UIC [1,1]. .els .c; Other useful utilities WHO SPR81[307,20] _& FALL81[307,20] --Shows all logged on users_& their tasks _& task states. We use this more than ACT. Also will show the account info (name, disk, UIC, last login) given UIC or user-name. .skip TES (TECO invoked in split-screen mode) Minor fixup to TECO v36 _& some macros. The combination of a screen-edittor (like EDT2) but with normal TECO commands, plus it uses an un-documented feature new with v36 that lets a macro (supplied) use the alternate keypad. Much better, faster, and smaller than VTEDIT, but with most of the useful features. SPR81 _& Fall81 [302,100] .skip TTY Fall80[301,40] Shows you everything you would want to know about a TT port. .skip HEY SPR81[344,60] Tells you when a task exits, and it's exit-status. .skip LUT SPR81[300,70] Lists the current LUN assignments, filename, etc. info for a running task. .skip FCB SPR81[300,70] Lists the file-control-blocks the ACP has for a mounted disk, including file-name, etc. .skip TTPOOL SPR81[300,70] Tells you how much free space is in the private buffer pool of the full-duplex terminal handler. (I wish someone would come up with the same thing for F11ACP). .skip TYPE SPR81[300,107] Types file(s) on the terminal. Much better than PIP. .skip WHEN SPR81[300,120??] Submits MCR commands when a named task exits. Almost as good or better than type-ahead MCR commands. .skip MAIL [344,70] A nice MAIL utility. .skip DIR FALL81[?] _& StrucLang tapes. A nice, fast, multi-column directory lister. Written in C, but I have put DIR.TSK on this tape (unless it gets deleted by DECUS). We use this much more than PIP /LI. (It only lists full UIC's, not by filename, though. .skip GREP StrucLangSPR81[6,1] You give it a "string pattern" (similar to the search-string-patterns in TECO, but more powerful) and a list of files (wildcard allowed except in UIC), and it types all lines having a pattern match. Plus many options. Written in C, but I put a TSK on this tape. There are other GREP's floating around on the tapes, but the others are in MAC, and are nowhere near as useful or powerful. .skip OD (file dumper) StrucLang _& FALL81. A better file dumper than DMP.