A couple of my friends from UC Berkeley were musing on another email
thread. The question from one of them came up: *"I'm teaching the
undergrad OS course this semester ... Mention where ~ comes."*
This comment begets a discussion among the 4 of us at where it showed up in
the UNIX heritage and it if was taken from somewhere else.
Using the tilde character as a short cut for $HOME was purely a userspace
convention and not part of the nami() kernel routine when it came into
being. We know that it was supported by Mike Lesk in UUCP and by Bill Joy
in cshell. The former was first widely released as part of Seventh Edition
but was working on V6 before that inside of BTL. Joy's cshell came out as
part of 2BSD (which was V7 based), but he had released "ashell" before that
and included it in the original BSD (*a.k.a.* 1BSD) which was for V6 [what
I don't remember is if it supported the convention and I can not easily un-
ar(1) the cont.a files in the 1BSD tar image in Warren's archives.
In our exchange, someone observed suggested that Joy might have picked it
up because the HOME key was part of the tilde key on the ADM3A, which were
popular at UCB [*i.e.* the reason hjkl are the movement keys on vi is the
were embossed on the top of those keys on the ADM3A]. It also was noted
that the ASR-33 lacks a ~ key on its keyboard. But Lesk definitely needed
something to represent a remote user's home directory because each system
was different, so he was forced to use something.
It was also noted that there was plenty of cross-pollination going on as
students and researchers moved from site to site, so it could have been BTL
to UCB, vice-versa, or some other path altogether.
So two questions for this august body are:
1. Where did the ~ as $HOME convention come to UNIX?
2. Did UNIX create the idiom, or was there an earlier system such as
CTSS, TENEX, ITS, MTS, TSS, or the like supported it?