[TUHS] environments/universes (was: Unix v6 problem with /tmp)
Clem Cole
clemc at ccc.com
Fri Jul 29 23:55:45 AEST 2016
below
On Thu, Jul 28, 2016 at 7:16 PM, Sven Mascheck <mascheck at in-ulm.de> wrote:
> On Wed, Jul 27, 2016 at 04:57:47PM -0400, Clem Cole wrote:
> > I created Conditionally Dependant Symlinks (CDSL) which I think only
> showed
> > up in Masscomp's RTU, Stellix and Tru64. The were not only late
> binding,
> > but added the concept of a user settable context. Very handy when
> trying
> > to create a "single system image" from multiple system.
>
> How did you implement it?
>
Details are little fuzzy on some of the corner cases. If I thought about
it, I bet they all come back. But basically bit crumbs in the u_area
containing the "context" and then only trick was parsing the string in
nami/lookup, so you could have N actions depending on the value of the
context. i.e. path with embedded context string and grabbed another
special character (which if I recall we used the @ to deliminate followed
by a null then context1-> replacement1<null>context2->replacement2<null>
.... contextN->nth replacement<null> which was originally linearly
searched since the original use (universes) had a small number of contexts.
When realized how useful they were @ LCC, and started to add support for
clusters and the node name became one of the contexts, we had to get a bit
smarter. Tru64 and the unreleased HP-UX implementation did some hashing
and cleanup. I've forgotten if that was done before or after the Intel
Paragon implementation.
BSD symlink semantics was then left alone, although I think I remember I
hacked the set/read code to handle the special char -- again IIR for set to
translate foo at bar to be foo@@bar and read the opposite.
Obviously you have a new failure of of the context did not match and an
open question of how to set/get the different contexts which varied. For
universes
(which
like Pyramid and others, Masscomp
RTU also
provided
), my recollection
was
a new command hacked into the shells
and we had a general set/get variable services that predates the system
variable stuff of the BSDs and later Unix (that was modeled on VMS given
the Masscomp folks were sometimes ex-VMS kernel developers).
For the original work at LCC (which is what went into HP-UX and the Paragon
IIRC) , we had a new system service
for contexts and I've forgotten how that worked; but it was different
from the Masscomp or later BSD style scheme
.
As for m
y memory of Tru64
(which only used CDSL's for handling node dependant info);
the node name was set independently
using yet another scheme (which I've now forgotten), but
was already in the u_area
so we could just look aside.
Clem
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20160729/cfa7cab0/attachment.html>
More information about the TUHS
mailing list