[comp.sys.amiga] Softlinks, xxx.device, and such

jms@antares.UUCP (joe smith) (11/03/88)

In article <586@quintus.UUCP> pds@quintus.UUCP (Peter Schachte) writes:
>Symbolic links could be implemented very simply as a generalization of
>a device.  If an individual file could somehow specify that a
>particular device driver be used to read it, instead of the one we'd
>expect, then symbolic links would be easy.  But so would lots of other,
>much more interesting things.
>
>We could write a zoo.device, which zoo files would declare as their
>device, and then we could do dir or list of them from the shell just as
>if they were directories.  We could copy files into and out of them.
>All this controlled by the device driver.
>
>Another really neat use for this would be for keeping compressed files.
>An individual file could specify its driver as compress.device, and when
>the file is read, it would be uncompressed.  So it would be possible to
>just say cc foo.c, where foo.c is such a compressed file, and as cc
>reads foo.c's bytes, it gets them uncompressed.
>
>It may sound esoteric ...
>-Peter Schachte	>pds@quintus.uucp	>..!sun!quintus!pds

A paper on this very subject has been published in COMPUTING SYSTEMS,
Volume 1 Number 2 Spring 1988 "The Journal of the USENIX Association".
The paper is titled "Watch dogs - Extending the UNIX File System", by
Brian N. Bershad and C. Brian Pinkerton at U of Washington, Seattle.

From the abstract: "Watchdogs are user-level processes that can extend
the file system semantics on a per file basis."  Specific applications
include transparent compact/uncompact, user specified file protection,
intelligent mailboxes, file versioning, and reading the date/time from
a zero-length file.  It is like the Apollo DOMAIN system, but purposefully
involves the kernel to obtain both security and transparency.

The implementation used 30 of the reserved bytes in the inode to specify
which watchdog program to activate when the file is accessed.  (This info
is set by a new system call.)  A system-wide chief watchdog handles
activation of individual watchdogs, which get commands via a special
message passing system.  The watchdog can reject access, do the I/O
itself, or request that the kernel do regular I/O.

I would like to see something this flexible on the Amiga.  But do you
realize what would happen if special files become the rule instead of
the exception?  Instead of having files on disk they would all be objects
with object type handlers.  Object-oriented OPerating System, OOOPS!
-- 
+----------------------------------------------------------------------------+
| TYMNET:JMS@F29  CA:"POPJ P,"  UUCP:{ames|pyramid}oliveb!tymix!antares!jms  |
| INTERNET: (Office-1.ARPA is no more)      PHONE:Joe Smith @ (408)922-6220  |
+----------------------------------------------------------------------------+

rsb@dukeac.UUCP (R. Scott Bartlett) (11/05/88)

In article <250@antares.UUCP> jms@antares.UUCP (joe smith) writes:
>In article <586@quintus.UUCP> pds@quintus.UUCP (Peter Schachte) writes:
->Symbolic links could be implemented very simply as a generalization of
->a device.  If an individual file could somehow specify that a
->particular device driver be used to read it, instead of the one we'd
->expect, then symbolic links would be easy.  But so would lots of other,
->much more interesting things.
->
->We could write a zoo.device, which zoo files would declare as their
->device, and then we could do dir or list of them from the shell just as
->if they were directories.  We could copy files into and out of them.
->All this controlled by the device driver.
->
[neat stuff deleted]

This may sound silly or dumb, but (asbestos suit ready) how about using this
to have files from all sorts of physical devices in the same directory.  You
could have an honest to goodness root filesystem then.

->It may sound esoteric ...
->-Peter Schachte	>pds@quintus.uucp	>..!sun!quintus!pds

>The implementation used 30 of the reserved bytes in the inode to specify
>which watchdog program to activate when the file is accessed.  (This info
>is set by a new system call.)  A system-wide chief watchdog handles
>activation of individual watchdogs, which get commands via a special
>message passing system.  The watchdog can reject access, do the I/O
>itself, or request that the kernel do regular I/O.

How much system overhead does that scheme add?

>I would like to see something this flexible on the Amiga.  But do you
>realize what would happen if special files become the rule instead of
>the exception?  Instead of having files on disk they would all be objects
>with object type handlers.  Object-oriented OPerating System, OOOPS!

You want to talk about confusing your average Joe User:-)

>+----------------------------------------------------------------------------+
>| TYMNET:JMS@F29  CA:"POPJ P,"  UUCP:{ames|pyramid}oliveb!tymix!antares!jms  |
>| INTERNET: (Office-1.ARPA is no more)      PHONE:Joe Smith @ (408)922-6220  |
>+----------------------------------------------------------------------------+

					rsb

-- 
rsb@dukeac.ac.duke.edu		///	"Amigas do it with hardware."-- Me
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^	       ///     "Sycamore is open."-- Negativ Land
Note the shorter addr	   \\\///     "I luv S&M!!!"   "No geeks here!!"
Disclaimer NOT included!    \XX/     "This space for rent"