> > Is this intended to be something like the
> conditional symbolic links that have 
> > been in Apollo Domain system 23 years ago?
> >   
> 
> I'm not familiar with that proposal.  Can you provide
> details?
> 
> Thanks,
> 
> Alan

As I recall, Apollo Domain OS implicitly made environment variables available
to "system calls" (the quotation marks being because the OS was different enough
that traditional system calls might often have been implemented more in user
space than is typical on the historical Unix code-base).  Therefore, symlinks
on Domain OS could contain environment variable references; I think these looked
like $(name);  so they might have symlinks like

/usr -> /$(SYSTYPE)/usr

where SYSTYPE could be sys5.3 or bsd4.3.  (give or take details, I recall that 
as an
actual example)

Of course, Apollo also did some other odd things with path names:

//nodename

referred to the / direcctory of node nodename, as seen by other nodes
(similar to AFS /afs/node, or automounter /net/node)

`node_data

referred to the per-node private data directory (/sys/node_data on a diskful
node, something like /sys/node_data.nodeid on the diskful partner of
diskless node nodeid)

And Apollo had a "typed" filesystem, where types for device files, symlinks, 
FIFOs,
Unix-domain sockets, and unstructured files were only _some_ of the types; 
others
could be for record-oriented files, windowing system entities (scrolling back 
through
a transcript pad with mixed text and graphics would replay the graphics! - a 
"terminal"
based on such a transcript pad was effectively seekable, but append-only for 
writing),
files that incorporated revision history (the ancestor of Rational Rose), etc.
In some cases, something that was not a directory could be other than the last
level of a path name, in which case it would be up to the object at that level
to interpret the "residue" of the pathname.

(They also had a form of ACLs long before those were commonplace on other
Unix-like OSs.)

So while the Apollo was IMO a _brilliant_ example of what's possible, some of 
what
it could do exceeds what would readily fit the Unix model (although it could 
present
a very credible approximation of that model as a subset of what it could do).  
And
thus, examples from an Apollo may be useful in terms of thinking about a 
problem,
but could often not be reasonably implemented to look similar on a more 
traditional
Unix-like OS.

(way OT: ISTR one limitation on the Apollo: anything that was executable was
effectively also readable, due to some architectural constraint)
-- 
This message posted from opensolaris.org

Reply via email to