Return to BSD News archive
Newsgroups: comp.os.386bsd.development Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!osuunx.ucc.okstate.edu!moe.ksu.ksu.edu!zaphod.mps.ohio-state.edu!cs.utexas.edu!uunet!mcsun!dxcern!vxcrna.cern.ch!roeber From: roeber@vxcrna.cern.ch Subject: A challenge to all true hackers: objects and types Message-ID: <1993Mar20.145007.1@vxcrna.cern.ch> Sender: news@dxcern.cern.ch (USENET News System) Reply-To: roeber@cern.ch Organization: CERN -- European Organization for Nuclear Research References: <JKH.93Mar9214944@whisker.lotus.ie> <C3ow4H.FID@BitBlocks.com> <JKH.93Mar15175727@whisker.lotus.ie> Date: Sat, 20 Mar 1993 13:50:07 GMT Lines: 58 In article <JKH.93Mar15175727@whisker.lotus.ie>, jkh@whisker.lotus.ie (Jordan K. Hubbard) writes: > I guess I should have expected this.. > > When I issued my "challenge", I didn't mean it as a generic "let's > make the entire filesystem more generic" challenge, I meant it as > "Let's add conditional symbolic links to the existing system with a > minimum of fuss!" sort of challenge. However, in this case it might be easier to first analyze what we want our filesystem to do, and maybe jump to a new framework, than to spend effort now incrementally changing the existing limited system. In the Domain/OS filesystem you mentioned at the beginning, the *real* power of the filesystem is not simple ad-hoc tricks like variant symlinks, though these are one of the more visible features. (Along with a reliable networked file system.) The real gem in the filesystem is that it wasn't a "file" system at all, but an object store. Objects could be of any "type" (and types can be user-written), and each type can support one or more "traits." Any object whose type supports the "file io" trait looks like a file. Any object whose type supports the directory traits looks like a directory. Etc., etc. Plan 9 is groping in that general direction, by having filesystems associated with different services, but that is a more limited approach which has no advantages I can see. With such a base, writing a "variant symlink" type would be a snap. I wrote a "searchlist" (a la VMS) type for the apollos in a couple days' spare time. No kernel work needed at all. I wrote a fixed-size rolling log type. There is already a compressed type. NFS and AFS gateways are merely typed objects. On my list of types to write are a "tar" type which allows transparent access to the contents of tar files, and an anonymous-ftp type. And all these typed objects can be mixed together anywhere in the namespace -- they're not restricted to separate filesystems. I really strongly urge anyone interested in this subject to read the Apollo folks' original paper on this. I use their system daily, and though HP has killed Domain, the ideas are too good to die. postscript: ftp://ftp.sage.usenix.org/pub/usenix/summer86/extensible-io.ps.Z ftp://archive.umich.edu/apollo/ost.ps.Z text: ftp://archive.umich.edu/apollo/ost If you can't get the paper, e-mail me and I can send it. -- Frederick G. M. Roeber | CERN -- European Center for Nuclear Research e-mail: roeber@cern.ch or roeber@caltech.edu | work: +41 22 767 31 80 r-mail: CERN/PPE, 1211 Geneva 23, Switzerland | home: +33 50 20 82 99 -- "Sorry, baby, I can't take you to the pizza joint tonight, I've got to go back to the lab and split the atom." -- Ayn Rand, "What is Romanticism?"