9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Axel Belinfante <Axel.Belinfante@cs.utwente.nl>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] qids
Date: Wed, 26 Mar 2003 18:29:04 +0100	[thread overview]
Message-ID: <200303261729.h2QHT4M13739@zamenhof.cs.utwente.nl> (raw)
In-Reply-To: Your message of "Wed, 26 Mar 2003 08:29:10 -0800." <caf5836895abec53687a8a524ab472ee@mightycheese.com>

Thanks for this remark. I have been wondering about this too.

I still hope to someday reimplement (or have students reimplement)
one of our tools on plan 9, and then `heavily' use overlaying.
The idea would be to have a chain (pipeline?) of tools,
where each of them extends (or modifies?) the file hierarchy
it gets from its predecessor in the chain.
So far, I have mainly been thinking about file servers that
extend the set of files they get, like e.g. starting with
fileserver A, and then have fileserver B which serves the 
iles of A, together with a few files that B adds itself
using information taken from files of A.
Then C would take its files from B, etc.
There would probably be a different kind of fileserver D
that gives a whole new view of the stuff from C,
instead of just adding files to it.

The advantage I would have wrt qids is that (assuming I
`control' all tools in the chain) I would be able to devise
my own conventions to guarantee uniqueness.

It occured to me that this approach looks a bit like passing
(attributed?) (abstract syntax) trees around between
components in a tool chain. The extending file server
then essentially just adds additional attributes to the tree.

I don't expect this approach to be the most efficient one
w.r.t. burning cpu cycles, but it should result in a pretty
flexible tool set, where you `build' a particular tool (instance)
by combining the `right' elements in the tool chain.
To get a slightly different tool, you just replace a component
by one that implements a slightly different algorithm.
Also, it has the (educational) advantage that it makes the
intermediate (tree) data structures visible using ordinary
tools (just look at the file hierarchy and the files served).

Someday I'll really find some time to work on this, someday...

Axel.


> Servers of original
> files are encouraged to use only the low 48 bits of the
> qid.path to permit encapsulating servers to use the top
> 16 bits to generate uniqueness.  The code in exportfs
> may be a good example, but last I looked it was a bit
> obscure.




  reply	other threads:[~2003-03-26 17:29 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-26 16:24 vic
2003-03-26 16:29 ` rob pike, esq.
2003-03-26 17:29   ` Axel Belinfante [this message]
2003-03-26 17:42 rog
2008-01-09 14:30 [9fans] QIDs Steve Simon
2008-01-09 14:52 ` Charles Forsyth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200303261729.h2QHT4M13739@zamenhof.cs.utwente.nl \
    --to=axel.belinfante@cs.utwente.nl \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).