set password of daemon or user account
M-> admin M-> cwd >udd>sa>admin M-> ec master chpass Retriever Password M-> password Password again: M-> password
backup directory to tape
Login as Retriever.SysDaemon on a dialup line
l Retriever.SysDaemon Password: ; Create a segment with a list of the directories to be backed up. M-> qedx i >udd>User>Anthony \f w dirs.dump q ; Create the tape: -control specifies the segment with the directory list, -operator identifies who created the tape; use your initials. M-> complete_dump -control dirs -operator STRING Begin at 07/25/90 1304.0 pdt Wed >udd>User>Anthony Type primary dump tape label: M-> udd Mounting tape udd for writing 1304.1 RCP: Attached tapa_01 for Initializer.SysDaemon.z 1304.1 RCP: Note (tapa_01) - udd,sys CONSOLE: ALERT 1304.1 RCP: Mount Reel udd with ring on tapa_01 for Initializer.SysDaemon.z <udd.tap> TAPE: creating new file Mounted blank volume "udd" on device tapa_01 1437.5 RCP: Attached tapa_01 for Initializer.SysDaemon.z 1437.5 RCP: Note (tapa_01) - udd2,sys CONSOLE: ALERT 1437.5 RCP: Mount Reel udd2 with ring on tapa_01 for Initializer.SysDaemon.z <udd2.tap> TAPE: creating new file Mounted blank volume "udd2" on device tapa_01 Begin at 07/25/90 1437.4 pdt Wed Error file attached to file "complete_dump.07/25/90.1437.ef". Normal termination 07/25/90 1437.6 pdt Wed. Dump finished.
restore directory from tape
Multics cac: Serenity Valley Engineering (Channel d.h000) Load = 5.0 out of 90.0 units: users = 5, 07/25/90 1643.2 pdt Wed l Retriever.SysDaemon Password: backup_load Input tape label: udd Mounting tape udd4 for reading Mounted Multics volume "udd" (recorded at 800 BPI), on device tapa_01 Begin at 07/25/90 1644.4 pdt Wed Map attached to file "!BBBJbNfGKbbMNP.backup.map". Error file attached to file "backup_load.07/25/90.1644.ef". End of reel encountered. backup_load: Are there any more tapes to be reloaded? n Normal termination 07/25/90 1644.8 pdt Wed.
Tape drive access
generate_mst and other Multics applications expect to be able to read and/or write tapes; the appropriate
ACLs need to be set to allow the access from a user account.
Example: sa >sc1>rcp>tapa**.acs rw Swenson.SysAdmin
If a tape mount mounts a tape with an incorrect label, RCP will ask for operator authentication.
x auth tapa_01 ***
From a process with sufficient privileged you can execute this command instead:
authenticate_device tapa_01 ***
Building a custom MST
Create a new version of a hardcore component.
For example, changing the the behavior of the boot time system clock integrity check:
# Get the source code of the component archive x >ldd>sl1>source>bound_temp_1.s scs_and_clock_init.pl1 # edit the changes qedx r scs_and_clock_init.pl1 ... w q # Compile pl1 scs_and_clock_init # Get the segment archive cp >ldd>sl1>object>bound_temp_1 # Update the component ac r bound_temp_1 scs_and_clock_init # Bind it bind bound_temp_1 # Get the generate_mst configuration files. The argument YOUR_OS will be part of the bootup # message for the tape; substitute an appropriate string. cp >ldd>sl1>info>hardcore.(search header) YOUR_OS.= # Edit the search configuration file to search your home directory # first, so as to pick up the changes. If the file contains the line ">exl>...", # delete it. edm YOUR_OS.search i >udd>SysEng>Anthony w q # Generate the mst and write it to a tape labeled 'YOUR_OS" generate_mst YOUR_OS YOUR_OS -dr
Setting terminal width
stty -modes ll132
config deck documentation
AM81-04. Section 7. pages 84-117
Change console line length
Log everybody out.
On the console:
M-> logout * * M-> shut bce (boot) 1849.6: M-> config M-> /opca/ prph -device opca -iom a -chn 36 -model 6001. -ll 80. -state on M-> s/80/256/ M-> p prph -device opca -iom a -chn 36 -model 6001. -ll 256. -state on M-> w M-> q bce (boot) 1850.2: M-> reinit bce (boot) 1850.3: M-> boot star ... Multics MR12.5 - 08/06/93 1850.7 pdt Fri 1850 as as_init_: No "tcd" card in the config deck. Assuming APT size of 1000. Look, no \c.
how to run Kermit
Note: Kermit works with 0fnp, but not master.
Assuming you are on the non-Multics host, and wish to transfer files to Multics, follow the instructions below. If you wish
to transfer files from Multics, you can use the GET command rather than the SEND command.
On the non-Multics machine, start up kermit:
eswenson@ubuntu:~$ kermit C-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, for Linux+SSL+KRB5 (64-bit) Copyright (C) 1985, 2011, Trustees of Columbia University in the City of New York. Type ? or HELP for help. (/home/eswenson/) C-Kermit>
Then, at the kermit command prompt, issue the TELNET command to connect to Multics:
(/home/eswenson/) C-Kermit>telnet localhost 6180 DNS Lookup... Trying 127.0.0.1... Reverse DNS Lookup... (OK) Connecting to host localhost:6180 Escape character: Ctrl-\ (ASCII 28, FS): enabled Type the escape character followed by C to get back, or followed by ? to see other options. ---------------------------------------------------- Connected to the dps-8/m simulator MUX device, line 0 HSLA Port (d.h000,d.h001,d.h002,d.h003,d.h004,d.h005,d.h006,d.h007,d.h008,d.h009,d.h010,d.h011,d.h012,d.h013,d.h014,d.h015,d.h016,d.h017,d.h018,d.h019,d.h020,d.h021,d.h022,d.h023,d.h024,d.h025,d.h026,d.h027,d.h028,d.h029,d.h030,d.h031)?
Then, do what you normally do to login to Multics interactively:
d.h001 Line 0 connected as name: d.h001 Multics hardcore: EjsMultics, Soquel, CA (Channel d.h001) Load = 5.0 out of 90.0 units: users = 5, 08/11/93 1533.5 pdt Wed l Swenson SysMaint Password: You are protected from preemption until 15:34. Swenson.SysMaint logged in 08/11/93 1534.1 pdt Wed from ASCII terminal "none". Last login 08/11/93 1418.7 pdt Wed from ASCII terminal "none". r 15:34 0.345 59
Then, start kermit on Multics:
Issue the "server" command:
Now, to get back to the client telnet (to issue requests), type the escape character. In my case, the escape character in c-kermit is ^\C (<control><backslash>C)
^\C (Back at ubuntu) ---------------------------------------------------- (/home/eswenson/) C-Kermit>
Now, issue the SEND or GET command. Here, I use SEND as an example:
send <filename> C-Kermit 9.0.302 OPEN SOURCE:, 20 Aug 2011, ubuntu [127.0.0.1] Current Directory: /home/eswenson Network Host: localhost:6180 Network Type: TCP/IP Parity: space RTT/Timeout: 08 / 15 SENDING: tn.sh => TN.SH File Type: TEXT (ascii => ascii) File Size: 622 Percent Done: 100 ////////////////////////////////////////////////// ...10...20...30...40...50...60...70...80...90..100 Estimated Time Left: 00:00:00 Transfer Rate, CPS: 20 Window Slots: 1 of 30 Packet Type: Z Packet Count: 3 Packet Length: 6 Error Count: 4 Last Error: (resend) Last Message: X to cancel file, Z to cancel group, <CR> to resend last packet, E to send Error packet, ^C to quit immediately, ^L to refresh screen. (/home/eswenson/) C-Kermit>
Once it is finished, kermit may return to the prompt automatically. If it doesn't, use ^C to get to kermit prompt. Then, you can quit or enter other requests.
How to make it so a user can login to a lower ring
This example shows how to make Swenson.SysMaint able to login into ring 2 (for debugging):
In order to login at lower rings, you have to do two things: 1) you have to change the project to allow logging in to lower rings, and 2) you have to change the user in that project to allow lower rings. The SysAdmin exec_com (master.ec) doesn't support this directly (I don't think), so you have to use the lower-level tools.
Here are the steps:
1) login to SysAdmin account (or other privileged account with SysAdmin-like access)
2) cwd change working directories to >udd>sa>a
3) extract old PMF from pmf.archive (e.g., if you are using SysMaint, as I am: "ac x pmf SysMaint.pmf")
4) edit the PMF to include, in the project-related fields (at the top):
That says, min-ring = 2, max-ring = 5, and default-ring = 4.
5) now, in the same file, under the personid: <username>; section, add:
ring: 2, 5, 4;
6) save your updated PMF (e.g. ac u pmf SysMaint.pmf)
7) convert your PMF to a PDT (e.g. "cv_pmf SysMaint.pmf")
8) install your updated PDT (e.g. "install SysMaint.pdt")
Now, you can login with that user and project with a login command like: "l Swenson SysMaint -ring 2"
How to perform an execute fault when system is hung
If Multics is hung and you want to do an "execute fault" operation to force a return to BCE, send a USR1 signal to the dps8 emulator. On linux, this would be something like:
killall -USR1 dps8
This will result in the operator console displaying something like this:
USR1 signal caught; pressing the EXF button CONSOLE: ALERT sys_trouble: Execute fault by operator. bce (crash) 1740.9:
From there, you can take a dump ("dump -long"), emergency stop ("esd"), re-initialize ("reinit") and "boot rpvs star" to reboot.