Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!uunet!odi!indirect!benson From: benson@odi.com (Benson Margulies) Newsgroups: comp.unix.wizards Subject: Re: Symbolic links and RFS Message-ID: <368@odi.ODI.COM> Date: 22 May 89 11:34:35 GMT References: <563@Aragorn.dde.uucp> <1662@auspex.auspex.com> <10300@smoke.BRL.MIL> <31533@bu-cs.BU.EDU> Sender: news@odi.com Reply-To: benson@odi.com (Benson Margulies) Organization: Object Design Inc., Burlington, MA Lines: 40 In article <31533@bu-cs.BU.EDU> bzs@bu-cs.BU.EDU (Barry Shein) writes: > > >The easiest way to do this would be to have a file type which is >actually a program which promises to produce a string for namei. Seems to me that this newsgroup is re-inventing Multics (again). One of the things that made Multics more flexible than Unix was that the resolution of strings into I/O resources was done in user code (usually in shared libraries). That is, to get the equivalent of a file descriptor, one does/did (approximately): call iox_$open ("log_output", "log_io_ >udd>Foo>Margulies>log", iocbp, code); or call iox_$open ("log_output", "discard_", iocbp, code); In the first example, log_output_ is a program that interposes itself between the standard I/O interfaces (equivalent of the unix f* interfaces) and a log file, providing log formatting. The second example demonstrates that there was no need for a kernel /dev/null driver. The only code in the kernel was the actual code that spoke to the hardware, and it usually wasn't device specific. For example, all tape smarts were user code. The kernel support was a generic interface for assigning a device and enforcing access control. Now that shared libraries (albeit depressingly cumbersome ones) are spreading through Unix, there is no reason that Unix couldn't grow this sort of feature. As a refinement of barry's comment, consider a file type like a symbolic link. The contents of this file would be instructions, like the descriptions above, of how to dynamically link to a program to actually do the I/O. Benson I. Margulies