Subject: Re: kern/1781: 'magic' symbolic link expansion
To: None <netbsd-bugs@NetBSD.ORG>
From: Peter Seebach <seebs@solon.com>
List: netbsd-bugs
Date: 11/23/1995 12:58:16
>I disagree. I think this is a great idea, and makes running a truly
>multi-platform OS much, much easier. This includes "day to day" as well
>as install time. Especially for diskless machines.

That's what HP says about cdf's, and all they did was break find, cpio,
tar, and the like, and get abused.  I never saw them do a whole lot of
good.

>I doubt the overhead is much more than any other "special case" processing
>happening now, and the lookups could be cached just as easily as any other.

*what* special case processing?  I don't see any yet.

But mostly, why should we charge every user of every system everywhere
*anything* for this feature?

I don't like the idea of losing kernel space and processor time to this
without more study of what we're trying to accomplish, and how we want
to go about it.

A new type of file, which looks like a symlink, but has extra frills,
might make more sense; we already have established that new file types
will show up.

I just dislike the idea of putting more clever awareness into symlinks.
What next - environment variables?  Inline tcl or perl?  Hmph.

I agree it sounds potentially useful - I'd just like to see some more
careful analysis of the costs, both in elegance and speed.  Especially
elegance; design warts cost a *lot* in the long run.

>As I mentioned in a private reply to Chris, I think that maybe this
>should be extended to include other variables, and perhaps even
>get a group of 'sysctl' variables to itself. This way you could
>magically set "per system" variables. I don't think I said it quite
>in these words however, but that is what I meant.

I guess my main concern is that I don't see why we'd *need* this;
Right now, symlinks can do about the right thing; you make a link
farm in a writeable directory.  All the CD-ROM has to do is have a
portable sh script to mount a writeable fs *over* the CD-ROM, and
put the appropriate links there.  (We can do that, right?  I seem
to remember some discussion of mounting things over each other.)

>Then, some odd ones:

>	fs.magic.local_0 -> @local_0
>	etc.

>This could then let you "swap" installs for testing with a:

>	sysctl -w fs.magic.local_1=test_usr

>Where the root fs looks like:

>	/usr -> /@local_1

>or whatever. Just my @opinion = $0.02c worth :-)

I guess I don't see this as a feature.  sysctl should control the *system*.
If you want to relink things, relink them.  The kernel automatically doing
this for you is no more of a win than the kernel including command line
history, and automatically appending you .signature before any line
consisting of a '.'.  It's the wrong level for the fix.  Now, a smart
relinking script would be nice - but we can do it now.  Why increase the
cost of every symlink to do something that we can do now, and do it in
the wrong place?

Of course, I'm a bit of a purist; I still think that the net should be
mounted as a filesystem, and that ifconfig should just echo commands
to the special files that read them.  The filesystem model is a great
beauty, and I don't think we should fill it with cruft for short term
convenience.

-s