Multics cheat sheet

set password of daemon or user account

M-> admin
M-> cwd >udd>sa>admin
M-> ec master chpass Retriever
M-> password
Password again:
M-> password

backup directory to tape

Login as Retriever.SysDaemon on a dialup line

l Retriever.SysDaemon

; Create a segment with a list of the directories to be backed up.
M-> qedx
w dirs.dump

; 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


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
1304.1  RCP: Mount Reel udd with ring on tapa_01 for Initializer.SysDaemon.z
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
1437.5  RCP: Mount Reel udd2 with ring on tapa_01 for Initializer.SysDaemon.z
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


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 "!".
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.

sa >sc1>rcp>tapa**.acs rw Swenson.SysAdmin

Operator authentication

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
r scs_and_clock_init.pl1
# 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.
i >udd>SysEng>Anthony
# 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  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:


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
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)


(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 []

   Current Directory: /home/eswenson
        Network Host: localhost:6180
        Network Type: TCP/IP
              Parity: space
         RTT/Timeout: 08 / 15
             SENDING: => TN.SH
           File Type: TEXT (ascii => ascii)
           File Size: 622
        Percent Done: 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 ( 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):

Ring:  2,5,4;

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
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.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License