.MH "Installation Procedure" This section covers the procedures necessary for installation of the Subsystem. It lists the contents of the Installation Package and the Release Tape, and provides instructions for loading the tape and initializing the Subsystem. Before reading this section, a thorough study of the .bf Subsystem Configuration section of this Guide is recommended. .SH "Subsystem Installation Package" [cc]mc | For new customers, the Subsystem Installation Package as sent from Georgia Tech [cc]mc contains the following items: .be 4 1 Release Tape [cc]mc | 1 Copy of the Subsystem Manager's Guide 1 Copy of the Reference Manual 1 Copy of the User's Guide .ee Old customers who are updating to Release 9 will only receive the Release Tape, the Conversion Guide, and the Manager's Guide. [cc]mc .SH "Release Tape Contents" The Subsystem Release Tape contains all files and directories necessary for proper operation of the Subsystem. It is in standard MAGSAV/MAGRST format and contains four "logical tapes." Each logical tape contains a number of separate directories that normally would reside on the same logical disk. .ne 6 .PH "Logical Tape 1" The first logical tape contains the following three directories: .be cmdnc0 lib system .ee and these directories contain the following files: .nf .in +5 .sp cmdnc0>swt used to enter the Subsystem cmdnc0>swtseg latest revision of SEG, modified slightly for the Subsystem. Its output is completely compatible with standard SEG. [cc]mc | cmdnc0>snplnk snaps dynamic pointer links (see below) [cc]mc .sp lib>vswtlb shared Subsystem I/O and utility library lib>nvswtlb unshared version of vswtlb [cc]mc * [cc]mc lib>p4clib bootstrap Pascal compiler run-time-support library lib>vedtlb line editor library [cc]mc | lib>vswtmath high precision mathematical function library lib>shortlb shortcall routines for FORTRAN lib>vlslb linked string library lib>vrnglb ring support library lib>vshlib shared Shell utility library .sp system>cron.comi example startup file for 'cron' system>ring.comi example startup file for 'ring' [cc]mc system>sh2030 shared portion of the command interpreter system>st2030 shared data area for templates system>se2031 shared portion of the screen editor system>sw2035 shared portion of the Subsystem library [cc]mc | system>sh4000 used to install the command interpreter [cc]mc system>sw4000 used to install the Subsystem library [cc]mc * [cc]mc system>initswt used to initialize pathname templates .fi .in -5 .sp These files must be placed in the appropriate Primos directories at your installation. [cc]mc | They should be placed in 'cmdnc0', 'lib', and 'system' on the lowest-numbered logical disk containing those directories. .ne 4 [cc]mc .PH "Logical Tape 2" The second logical tape contains the following directories: .be bin lbin extra .ee .pp 'Bin' is the standard Subsystem command directory. It contains the executable versions of all Georgia Tech-supported Subsystem commands. .pp 'Lbin' is a command directory for locally-written tools. Commands in 'lbin' are normally useful at only one installation, or have not been found valuable enough to merit full support. .pp 'Extra' contains miscellaneous information used by various parts of the Subsystem. In particular, it houses the mail, news and memo delivery directories, which tend to grow steadily in size over a period of time. .ne 8 .PH "Logical Tape 3" The third logical tape contains the following directories: .be vars temp .ee These directories should be placed on a disk partition with a large amount of free space, since files in 'temp' may become arbitrarily large. .pp 'Vars' is used to store personal profile information for all Subsystem users. .pp 'Temp' is a special directory dedicated to containing scratch files. .ne 7 .PH "Logical Tape 4" The fourth logical tape contains the following directories: .be doc src aux .ee These directories are all very large and infrequently accessed. They do not normally vary much in size. .pp 'Doc' contains formatted and unformatted copies of all Subsystem documentation. .pp 'Src' contains all releasable Subsystem source code. .pp 'Aux' contains miscellaneous auxiliary files, such as the dictionary of English words and the list of prime numbers. .SH "Loading the Tape" To load the release tape, follow the instructions below: .sp .ta 6 .tc \ .in +5 .ti -5 1.\Assign a tape drive: .sp .ti +5 [cc]mc | .bf [cc]mc ASSIGN MT0 .sp .ti -5 2.\Mount the release tape on the assigned drive. .sp .ti -5 3.\Attach to the master file directory on the logical disk containing 'cmdnc0', 'lib', and 'system' (usually disk 0): .sp .ti +5 [cc]mc | .bf [cc]mc ATTACH MFD .sp [cc]mc | or if the tape is being restored to an ACL or priority ACL protected partition, type .sp .ti +5 .bf ATTACH MFD .sp [cc]mc .ti -5 4.\Load the contents of the first logical tape with MAGRST: .sp .in +5 .nf [cc]mc | [bf MAGRST] Tape Unit (9 Trk): [bf 0] Enter logical tape number: [bf 1] [cc]mc [cc]mc | Ready to Restore: [bf yes] [cc]mc .fi .in -5 .sp (This will load the files in 'cmdnc0', 'lib', and 'system'.) .sp .ti -5 5.\Attach to the master file directory on the logical disk selected for the 'bin', 'lbin' and 'extra' directories. .sp .ti -5 6.\Load the contents of the next logical tape (i.e., reply "0" to the [cc]mc | "Enter logical tape number:" prompt) with MAGRST. [cc]mc (This will load the directories 'bin', 'lbin' and 'extra'.) .sp .ti -5 7.\Attach to the master file directory on the logical disk selected for the 'temp' and 'vars' directories. It should have ample free space. .sp .ti -5 8.\Load the contents of the next logical tape with MAGRST. (This will load directories 'vars' and 'temp'.) .sp .ti -5 9.\Attach to the master file directory on a logical disk with a great deal of free space. .sp .ti -5 10.\Load the contents of the next logical tape with MAGRST. (This will load directories 'aux', 'doc', and 'src'.) .in -5 .sp This completes the loading of the Subsystem from tape. .# .SH "Reconfiguration of Primos for the Subsystem" Primos Revisions[bl]18.0 and above have now used all normally available private memory segments. In order to bring up the Subsystem, it is necessary to increase the NUSEG parameter in the Primos configuration file to at least [cc]mc | 43 (octal), up from the default of 40 (octal), to provide private [cc]mc segments for the Subsystem that do not conflict with standard Prime programs. It also implies that you cannot bring up the Subsystem without rebooting your system, unless you already have the NUSEG parameter set high enough. .SH "Initialization of Shared Segments" Several important portions of the Subsystem reside in shared memory segments. Once the release tape is loaded, these segments must be initialized. .pp [cc]mc | One of the enhancements provided with Version 9 is increased security of shared segments. The SNPLNK ("Snap Link") program shown in the commands below runs through a given segment and "snaps" the dynamic subroutine linkages. In other words, all pointers which are set up as dynamic links are turned into real pointers. This is usually done when a program runs, by the Ring 3 pointer fault handler. By snapping all the links at one time, these segments can then be shared as read only. This will prevent an errant program from scrambling the shared libraries. [cc]mc .pp Type the following commands on your system console: [cc]mc | .be 13 [cc]mc OPR 1 [cc]mc | SHARE SYSTEM>SW2035 2035 700 SHARE SYSTEM>SH2030 2030 700 SHARE SYSTEM>ST2030 2030 700 SHARE SYSTEM>SE2031 2031 700 [cc]mc R SYSTEM>SW4000 [cc]mc | R SYSTEM>SH4000 [cc]mc R SYSTEM>INITSWT [cc]mc | .sp SNPLNK 1/2030; SHARE 2030 600 SNPLNK 1/2031; SHARE 2031 600 SNPLNK 1/2035; SHARE 2035 600 [cc]mc OPR 0 .ee Ideally, the preceding commands would be placed in your cold-start [cc]mc | procedure file CMDNC0>C_PRMO or CMDNC0>PRIMOS.COMI, so they will be performed automatically after every cold-start. [cc]mc Note: if you have changed the name or location of the template definition file or the 'extra' directory, you must specify the new name of the template file on the invocation of 'initswt'. For example, if you have changed the name of the 'extra' directory to 'etc', use the following command instead of "r system>initswt": .be R SYSTEM>INITSWT ETC>TEMPLATE .ee For installations that had a previous release of the Subsystem, this completes the installation procedure. The Subsystem should now [cc]mc | be ready to go. [cc]mc Otherwise, new Subsystem managers should read the next subsection, which describes the remaining steps. .SH "Initial Log-in by SYSTEM" If this is your first Subsystem release, several further steps are necessary to complete installation. As delivered, the Subsystem has only one active user account: that for the login name SYSTEM, which is assumed to be used only by system administrative personnel. Once the Subsystem is loaded and initialized, the Subsystem Manager should log in as user SYSTEM and verify that the Subsystem is working. .pp Login as user SYSTEM and type the following command: .be swt .ee [cc]mc | If the 'vars' directory was restored on a password partition, 'swt' will prompt for the owner password of SYSTEM's profile directory. [cc]mc The Subsystem is delivered with a null password for SYSTEM, so just strike the RETURN key. The shell (Subsystem command interpreter) will then be executed. [cc]mc | If the 'vars' directory was restored on an ACL partition, the 'swt' will not prompt for any password, but will immediately execute the shell. [cc]mc Before it will accept any commands, the shell will prompt you with "Enter[bl]terminal[bl]type:[bl]". You should respond with the mnemonic for your terminal type; if you do not know the correct mnemonic, respond with a "?" and the shell will provide a list of acceptable responses. After you have entered an acceptable mnemonic or a RETURN (if you do not wish a terminal type associated with your login session), the shell will be ready to accept commands. You should see a "]" prompt, indicating that the Subsystem is up and running. .pp Modify the file "=installation=" to contain the name of your installation. (The easiest way to do this from the Subsystem is to type a command similar to the following: .be echo "Georgia Tech System B" >=installation= .ee Simply replace "Georgia Tech System B" with the name of your installation.) .pp Before the Subsystem can be released for general use, profile storage directories must be created for all potential users, and their names must be entered in the "=userlist=" file. In addition, descriptions of all terminals attached to the computer must be entered in the "=termlist=" and "=ttypes=" files. For information on these tasks, see the .bf Subsystem Management section of this Guide. .SH "Resolving Shared Segment Conflicts" If the segment numbers used by the shared Subsystem programs and libraries conflict with those used by other programs at your installation, you can change the Subsystem segment numbers; however, you must first install the Subsystem as supplied. Also note that you must change the SHARE commands used in your [cc]mc | 'c_prmo' or 'primos.comi' cold start command file to reflect the changed segment [cc]mc numbers. .pp The Subsystem makes use of three shared segments: 2030 for the Shell and system template table, 2031 for the screen editor 'se', and 2035 for the shared library. .pp [cc]mc | The directory for building the Shell is "=src=/lib/sh". [cc]mc In this directory there is a file named "segment" which contains the segment number to be used for the shared portion of the object code. First, change the contents of this file to the desired segment number; then simply execute the Shell program 'build'. [cc]mc | This will produce three object codes files, 'sh', the interlude program which should be placed in "=bin=" as 'sh' and "=system=" as 'sh4000', "sh", the shared code which should be copied to "=system=" for automatic sharing by your 'c_prmo' or 'primos.comi' cold start procedure, and 'vshlib', which should be copied to "=lib=". This copying can be done by executing the Shell program 'install'. For example, the following would fix the shell to run in segment 2037: .be 4 cd =src=/lib/sh echo "2037" >segment build install .ee [cc]mc .pp Also in segment 2030 is the shared portion of 'swt', the Subsystem initialization program. [cc]mc | To change its segment, attach (using 'cd') to the directory "=src=/spc/swt.u", [cc]mc change the contents of the file "segment" to the desired segment number, and execute the shell program [cc]mc | 'build', just like changing the Shell's segments. [cc]mc Then execute 'install' to copy the shared portion in the file "st" into "=system=" and copy 'swt' into "=cmdnc0=". (Please note that if you change the code for 'swt', it must generate no sector-zero links. If it does, you will wipe out the shell when sharing it!) .pp Segment 2030 is also used for the storage of system templates. If you must change the location of their storage area, you must alter the loader interface program 'ld' in order to specify a new absolute address for the storage area, then rebuild the Shell (as outlined above), the libraries (as outlined below), the program 'initswt', and any local program that uses the unshared version of the Subsystem library ('nvswtlb'). For further information on the implications of moving the template storage area, please contact Georgia Tech. .pp The screen editor normally resides in segment 2031. To move it, attach to the directory "=src=/spc/se.u", change the contents of the file "segment" to the desired segment number, then execute the Shell program 'build'. This will yield two object code files: 'se', the interface program that should be placed in "=bin=", and "se", the shared portion that should be placed in "=system=" to be shared in at cold-start time. This copying can be done by executing the Shell program 'install'. .pp The shared libraries normally reside in segment 2035. To move them, attach to the directory "=src=/lib/swt", change the contents of the file "segment" to the desired segment number, then execute the Shell program 'build'. The object code files, 'vswtlb' and 'nvswtlb' should be copied to the "=lib=" directory; the shared code file "sw" should be copied to "=system="; and the file 'inst' should be copied to "=system=" and renamed "sw4000". This copying can be done by executing the Shell program 'install'. [cc]mc | .SH "Segments Used" The following table lists the segments in virtual memory, and how they are used by the operating system and various Subsystem programs. .be .ta 14 .ul Segment\Use 0000 - 0401\Operating System 2030\Software Tools Shell 2031\Software Tools Screen Editor 2035\Software Tools Library 2050\Fortran Library 4000 - 4037\User Program 4040\Software Tools Common 4041\Software Tools Stack 4042\Software Tools Common 6000\Operating System Data 6001\Fortran Library 6002\Primos Ring 3 Stack 6003\Operating System Stack .ee Some user programs use certain predefined user segments for their own use, so you have to be careful where you load your programs. For instance, if a program uses segment 4006, and you run it from the shell, from within the screen editor, you will destroy the screen editor's common blocks. If any of the programs or routines that use these predefined segments are not in use, they are available for user programs. For example, If the screen editor is not in use, segments 4006 and 4007 can be used with no problem, and if the Primos routine P$ALC is not being used (it is used by C, Pascal, and PL/I programs) then segments 4010 through 4027 become available. .be .ta 14 .ul Segment\Use 4000 - 4005\User Program 4006 - 4007\Screen Editor Per User Common 4010 - 4027\Primos Dynamic Memory -- P$ALC routine 4036 - 4037\SEG Symbol Tables .ee .SH "Changes for Primos Rev. 19.4" When Rev.[bl]19.4 of Primos is released, you will need to make two changes to allow you to run the Subsystem under it. First, change the definition of =cldata= to be "6002 12", instead of "6002 6". There is a commented out template definition for this in the =template= file. All you have to do is remove the leading comment symbol, for this definition, and comment out the old one. Secondly, in the file =src=/spc/swt.u/init_s.s, change the definition of CLDATA$SM_FAULT_ERR from "XB%+90" to "XB%+91". This is because several Primos internal data structures change their location at Rev.[bl]19.4. [cc]mc