RFC 409

Tenex interface to UCSB's Simple-Minded File System

πŸ“… published December 1972, from ietf

Okay bestie, we're doing RFC 409 πŸŽ€ It's from December 1972 and it's the TENEX Interface To UCSB's Simple-Minded File System πŸ’…. Jeff White at SRI-ARC wrote it (NIC 12401, dated 8 December 1972), and it's related to RFC 122 and RFC 399. The header doesn't name a category or status, and it doesn't list anything it obsoletes or updates, so there's nothing to report there. ✨

I. PREFACE 🌸

Okay so, SMFS is a TENEX subsystem that connects ARPANET TENEX users to the Simple-Minded File System at UCSB-MOD75 πŸ¦‹ (see NIC 5834 / RFC 122 and NIC 11917 / RFC 399). The Simple-Minded File System is a resident server process at UCSB, and it currently manages about 10K pages of on-line, direct-access storage. It's giving storage queen πŸ‘‘

With the simple command language or the subsystem described here, you can send files to and from UCSB, and you can delete and rename them while they're sitting at Santa Barbara. Files stored at UCSB can be read protected and/or write protected πŸ”’ Also, a file you archive to UCSB from one TENEX system can be pulled back down from another one. Iconic 🧚

This doc is meant to give users what they need to use SMFS from a terminal πŸ’» It assumes you already know TENEX, so no pressure 🫢

SMFS is currently installed at SRI-ARC. Lowkey the best part: the ARC EXEC WILL NOT give you any 'GENERAL SUBSYSTEMS NOT AVAILABLE FOR NIC USE' flack when you invoke SMFS πŸ’…

Copies of the source file are available on request from the NIC πŸ“¨ The author asks for bug reports and comments on the code and documentation, and you can send them to JEW through the Journal ✨

II. LIMITATIONS 🚧

SMFS can archive any file that lives in a TENEX file system at Santa Barbara, except:

  • (1) Long files (in the strict, TENEX sense), and
  • (2) Files whose directory name, filename, or extension has anything other than alphameric characters, or whose combined length goes over 32 characters. (This limit exists because of naming restrictions at UCSB πŸ™ˆ)

III. OPERATING INSTRUCTIONS πŸŽ€

To start SMFS, you type its name and then hit carriage return (CR), just like any other subsystem πŸ’– SMFS replies with the herald UCSB Archival System (ver n date) and then its prompt character, #. Every time SMFS shows that prompt, it's waiting for a command from you. Type ? and it'll list every valid command πŸ“‹

You pick a command by typing its first letter. (Here and everywhere else in this exchange, upper and lower case letters are interchangeable, so no stress πŸ’œ) If SMFS recognizes the command, it types the rest of the keyword back at you as confirmation. If it doesn't, it replies with ? πŸ™…β€β™€οΈ

Some commands need arguments. For each one, SMFS asks for it in turn by describing it inside parentheses. If the argument is a keyword, SMFS lists the choices separated by slashes, and you pick one by typing its first letter. SMFS fills in the rest when your choice is valid. If your answer is wrong, SMFS asks for that parameter again πŸ” If the argument isn't a keyword (a filename, for example), you type the string and end it with a CR.

Commands with no arguments just need a CR from you to confirm βœ…

When you enter the last argument, the command runs. Most of the time, a command that works doesn't say anything back. SMFS just shows the prompt for your next command 🌈 If a command fails, you get a diagnostic.

IV. COMMAND EDITING ✏️

Anytime SMFS wants a character string, you get these editing tools πŸ’…

control-A     deletes the previous character
control-X     deletes the entire string
Control-R     retypes the string

Anytime SMFS wants a filename (see Section V), you also get these extra editing tools πŸ¦‹

control-W     deletes the current field
control-F     recognizes the current field
ESC           recognizes all remaining fields

Control-O aborts a command while you're still specifying it or while it's running. (Some commands can't be aborted once you've typed the final CR 😭)

V. FILE SPECIFICATION πŸ“‚

Whenever SMFS asks you for a filename, either of these works:

  • (1) hostname : filename

'Hostname' is a standard host name or a decimal host address. It tells SMFS which host the file at UCSB belongs to. (This is how you tell apart the directory <SUBSYS> at SRI-ARC from the directory <SUBSYS> at USC-ISI 🧠)

If you don't specify one, the hostname defaults to the TENEX system you invoked SMFS from. In that case, you drop the delimiting ':' πŸ™ˆ

'Hostname' only needs to be given for transfers between TENEX systems, and it CANNOT be included in the local filename for a MOVE or COPY command.

'Filename' is a standard TENEX filename, and it has to follow the rules in Section II πŸ’–

If you don't name a directory, SMFS uses the one you're currently connected to πŸ“

If you leave out the name, extension, or version number, SMFS fills in whatever you specified most recently ✨

  • (2) ESC (i.e., Altmode)

ESC means the most recent file specification. SMFS retypes it for you πŸ”

VI. SYNTAX CONVENTIONS πŸ“

In the rest of this doc, these syntax conventions are used:

Characters you have to type literally are written in upper case. (You can type them in either case, though πŸ’œ)

Variables you have to fill in, like filenames, are written as lower case generic names. (Again, you can type them in either case 🌸)

These special symbols stand for control characters you type:

CR  --carriage return or Telnet new-line
SP  --space
ESC --alt mode or escape

Output from the system is wrapped in square brackets 🎁

Whenever one element of the exchange can have more than one value, the options are stacked vertically in a column 🧚

VII. COMMAND DESCRIPTIONS πŸ’Œ

A. USER NAME AND ACCOUNT πŸͺͺ

UCSB tells its Simple-Minded File System users apart by two things:

  • (1) user name --

a character string of one to eight alphameric characters or SP, and

  • (2) account --

a character string of one to four alphameric characters or SP.

SMFS keeps two accumulators internally πŸ«™ One holds the user name and the other holds the account. Each one is either a string you typed in yourself or an SMFS default. The defaults are your TENEX login directory name for the user name, and l for the account. Both accumulators start out set to their defaults πŸ’œ

Heads up: if your login directory name is longer than eight characters, you have to give a user name yourself, because there's no default for that case 😭

Whenever SMFS talks to the server at Santa Barbara for you, it sends along whatever accounting parameters are in the accumulators at that moment πŸ“‘

You set and check the user name and account with the USER NAME and ACCOUNT commands:

U[ser name]
[[currentusername]]  newusername CR
                     SP [logindirectoryname]
                     CR

A[ccount]
[[currentaccount]]   newaccount CR
                     SP [1]
                     CR

USER NAME and ACCOUNT both show what's in their accumulator and can change it if you want:

  • If you specify 'newusername' or 'newaccount', it replaces what's currently in that accumulator πŸ”„
  • If you type SP, the accumulator goes back to its default 🌈
  • If you just type CR, the user name or account stays exactly the same ✨

B. COPY πŸ“€

The COPY command transfers a copy of a file to or from UCSB πŸš€ The source file doesn't change, and you need read access to it. The syntax depends on which direction you're going, so here are both versions πŸ’…

C[opy]
[(to/from UCSB] T[o]
[(file)] localfilespec CR
[(store as file)] remotefilespec CR
[(create/replace)] C[reate]
                   R(eplace]

C[opy]
[to/from UCSB] F[rom]
[(file)] remotefilespec CR
[(store as file)] localfilespec CR

where 'localfilespec' and 'remotefilespec' are as defined in Section V.

Fun fact: you can effectively rename a file on the way between TENEX and UCSB by making 'localfilespec' different from 'remotefilespec' πŸ¦‹ The most common setup is when the second filespec is just ESC. Also, in 'localfilespec', the field-defaulting rules from Section V don't apply. Normal TENEX defaults take over there 🧠

If you're copying to UCSB and you specify 'create', SMFS ignores the command (and tells you so) when a file with that name already exists at UCSB πŸ™…β€β™€οΈ If you specify 'replace', the command gets ignored when a file with that name DOESN'T already exist at UCSB. Also, 'replace' means you need write access to the existing file at UCSB πŸ”

C. MOVE 🚚

MOVE works like COPY, except the source file gets deleted once it's been transferred successfully πŸ’₯ You need both read and write access to the source file, so don't forget that 🫢

D. LOCATE πŸ”

LOCATE checks whether a file exists at UCSB. The syntax is:

L[ocate (file)] filespec CR
  [Archived at UCSB]
  [Not Archived at UCSB]

You don't need read or write access to the file you're looking up πŸ¦‹

Note: LOCATE is the closest thing TENEX has to a DIRECTORY command. A full DIRECTORY command can't be implemented right now, because of restrictions at UCSB 😭

E. DELETE πŸ—‘οΈ

DELETE removes a file that was previously copied or moved to UCSB, and it releases all the secondary storage that was assigned to it πŸ’«

D[elete (file)] filespec CR

You need write access to the file at UCSB for this one ✍️

F. RENAME 🏷️

RENAME changes the name of a file at UCSB that got there through an earlier move or copy 🌸

R[ename (file)] filespec CR
[(new file)] newfilespec CR

You need write access to the file at UCSB, and there can't already be a file there named 'newfilespec' πŸ™…β€β™€οΈ No duplicate names, periodt πŸ’…

G. PASSWORD πŸ”

While files live at UCSB, you can lock them up with a read password, a write password, or both. Each one is a string of one to 36 alphameric characters or SP. πŸ”’βœ¨

SMFS keeps two accumulators inside. One is always either empty or holding a read password, and the other is either empty or holding a write password. Both start out empty. 🌸 Whenever you run a command that needs a password (it always happens implicitly, so you don't have to type anything), SMFS uses whatever is in the matching accumulator. An empty accumulator just means 'no password' 🫢

You set and check your two passwords with the PASSWORD command:

P[assword]
[(read/write)] R[ead]
               W[rite]
[[currentpassword]] newpassword CR
                     SP [none]
                     CR

PASSWORD shows you what's in one of the two accumulators and can change it if you want. Here's how it goes:

  • If you give a new password, it replaces whatever was in the accumulator. πŸ’–
  • If you type SP, the accumulator gets emptied out. 🧹
  • If you just hit CR, nothing changes. Your password stays exactly the same. πŸ’…

H. NEWS πŸ“°

The NEWS command prints the contents of this file at your terminal:

SRI-ARC: <SYSTEM >SMFS.NEWS1

It lives at UCSB. SRI-ARC keeps it updated and adds stuff that matters to people using UCSB's archiving service, like command syntax changes. πŸ‘€ If you're having trouble with any of the commands in this document, NEWS is the place to start getting help. Literally the first stop 🧚

The syntax is:

N[ews] CR

If the news file is super long, SMFS will pause now and then and ask Continue?. Type N to stop the printout, or Y or CR to keep going. And obviously, control-O aborts the printout whenever you want, no questions asked πŸ™ˆ

I. QUIT πŸ‘‹

The QUIT command sends you back to the EXEC. Bye bye for now! πŸ¦‹

Q[uit] CR

[This RFC was put into machine readable form for entry] [into the online RFC archives by Helene Morin, Via Genie 12/99]

πŸ“¦ where this page comes from