9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Douglas A. Gwyn" <DAGwyn@null.net>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Re: everything is a directory
Date: Fri, 31 Aug 2007 09:07:15 +0000	[thread overview]
Message-ID: <46D7360E.A05C1C2E@null.net> (raw)
In-Reply-To: <3e1162e60708300618k172a323ds155d38909560373c@mail.gmail.com>

On 8/30/07, jsnx <jason.dusek@gmail.com> wrote:

> On Aug 29, 2:06 am, "Douglas A. Gwyn" <DAG...@null.net> wrote:
> > "jsnx" <jason.du...@gmail.com> wrote in message 
> > > On Aug 23, 1:50 am, "Douglas A. Gwyn" <DAG...@null.net> wrote:
> > >> If .owners was enforced by the OS...
> > > ...that could lead to a lot of 'reserved words'... 
> >
> > Probably it should be .attributes/owner, no new added word beyond
> > what would be needed for extended attributes anyway.

> That's a good idea, and I think that brings us full circle. If we allow for a
> .attributes/content which is accepted by all the major tools, then what I want
> to do is done.

> I'm a bit confused at this point... What is this proposal and why is it attractive? 

> On the surface it looks like you could get everything you want using a pair of files to me.  One to tell you the start of
> the file's normal data (or the end), and the other to let you have scratch space for arbitrary key/value pairs.

> ...

The proposal, as modified, provides a mechanism that can be used to
add extended attributes to files, to encode existing attributes for
files, and to associate all kinds of other files with given files.

The attribute names (analogous to Linux/Solaris extended attributes)
would all be filenames within the .attributes directory attached to
the target file, and their values would be the contents of those
named files.

My proposed implementation, for any Unix-like system including
Plan9, is to change read() on a directory to instead read from the
directoryname/.data file, if it exists, or report an error if it
doesn't exist.  This change should cause no disruption to existing
file structures or applications, since as it stands there is no
purpose in read()ing the contents of a directory (these days we use
walk(), getdents(), etc. instead).  Almost all utilities, including
"tar", would continue to do "the right thing".  Probably "cp" would
need to be changed so it copies directory trees as well as ordinary
files.  Note that there would still be "leaf" (non-directory) files
under my proposal, particularly .data files and not-yet-converted
existing ordinary files.  If one wanted to totally convert the
storage filesystem, then .data entries could be hidden and then all
visible files would indeed be directories.

The primary purpose is to provide support for extended attributes
in a way that works within the traditional Unix hierarchical file
model, without requiring extensive kludges like the Linux/Solaris
implementations have.  A two-file model would also require a large
amount of ad-hoc kludgery to work well enough.


  reply	other threads:[~2007-08-31  9:07 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-16  9:30 [9fans] " jsnx
2007-08-16 10:42 ` maht
2007-08-16 11:47   ` Charles Forsyth
2007-08-17  8:41   ` [9fans] " jsnx
2007-08-16 12:39 ` [9fans] " Francisco J Ballesteros
2007-08-16 14:01 ` David Leimbach
2007-08-16 14:39   ` erik quanstrom
2007-08-16 15:58   ` maht
2007-08-16 17:45     ` David Leimbach
2007-08-16 19:01       ` ron minnich
2007-08-16 19:37         ` Robert Sherwood
2007-08-16 20:49           ` David Leimbach
2007-08-17  8:42             ` Douglas A. Gwyn
2007-08-17 13:00               ` ron minnich
2007-08-17 13:24                 ` erik quanstrom
2007-08-17 13:35                   ` plan9
2007-08-17 14:22                     ` ron minnich
2007-08-17 14:29                       ` David Leimbach
2007-08-17 14:29                         ` Richard Miller
2007-08-17 14:49                         ` ron minnich
2007-08-17 17:49                           ` David Leimbach
2007-08-17 18:09                             ` Charles Forsyth
2007-08-20  8:48                   ` Douglas A. Gwyn
2007-08-20  8:48                 ` Douglas A. Gwyn
2007-08-20 14:29                   ` Douglas A. Gwyn
2007-08-20 14:53                     ` Francisco J Ballesteros
2007-08-20 15:02                     ` Rob Pike
2007-08-21  8:48                       ` Douglas A. Gwyn
2007-08-21  8:47                     ` [9fans] " jsnx
2007-08-21  8:47                 ` jsnx
2007-08-23  8:50                   ` Douglas A. Gwyn
2007-08-24  8:39                 ` jsnx
2007-08-29  9:06                   ` Douglas A. Gwyn
2007-08-30  8:35                 ` jsnx
2007-08-30 13:18                   ` David Leimbach
2007-08-31  9:07                     ` Douglas A. Gwyn [this message]
2007-08-31 18:04                       ` Joel C. Salomon
2007-09-01 12:07                         ` Uriel
2007-09-02  1:11                           ` Joel C. Salomon
2007-09-02  2:14                             ` erik quanstrom
2007-09-02  5:01                               ` Anthony Martin
2007-09-02 13:00                             ` Uriel
2007-09-02 16:53                               ` Joel C. Salomon
2007-09-03  7:50                                 ` Uriel
2007-09-03 16:40                                   ` Joel C. Salomon
2007-09-03 19:51                                     ` Uriel
2007-09-09 21:41                                   ` roger peppe
2007-09-03  9:27                             ` Douglas A. Gwyn
2007-09-03 11:03                               ` Charles Forsyth
2007-08-17 14:27               ` [9fans] " David Leimbach
2007-08-17  4:11           ` Skip Tavakkolian
2007-08-17  8:42     ` [9fans] " jsnx
2007-08-17 13:25       ` erik quanstrom
2007-08-17  0:39   ` [9fans] " Uriel
2007-08-17  8:59     ` matt
2007-08-17 12:05       ` erik quanstrom
2007-08-20  8:47       ` [9fans] " jsnx
2007-08-20  9:00         ` Francisco J Ballesteros
2007-08-20 11:34           ` Tom Lieber
2007-08-20 11:40             ` erik quanstrom
2007-08-20 13:33               ` Uriel
2007-08-20 17:36             ` Paweł Lasek
2007-08-20 18:26               ` erik quanstrom
2007-08-20 18:48                 ` Paweł Lasek
2007-08-20 19:52               ` Dave Eckhardt
2007-08-20 21:28                 ` Robert William Fuller
2007-08-20 21:40                   ` erik quanstrom
2007-08-20 22:05                     ` Robert William Fuller
2007-08-21 11:29                       ` Brantley Coile
2007-08-21 17:54                       ` Robert Raschke
2007-08-22  7:38                         ` andrey mirtchovski
2007-08-20 22:12                     ` David Leimbach
2007-08-21  0:37                       ` dave.l
2007-08-21  1:14                         ` David Leimbach
2007-08-21  1:25                           ` Uriel
2007-08-21  1:44                             ` David Leimbach
2007-08-21  8:48                             ` app
2007-08-22  8:47                             ` jsnx
2007-08-22  9:54                             ` app
2007-08-22 11:22                               ` roger peppe
2007-08-22 11:30                               ` erik quanstrom
2007-08-23  8:49                             ` jsnx
2007-08-21  1:26                         ` Roman Shaposhnick
2007-08-21  1:28                           ` Uriel
2007-08-22  8:47                     ` jsnx
2007-08-20 21:57                   ` Uriel
2007-08-20 22:08                     ` Robert William Fuller
2007-08-21  8:48             ` jsnx
2007-08-20 11:17         ` erik quanstrom
2007-08-20 17:40         ` Roman Shaposhnick
2007-08-20 17:52           ` Uriel
2007-08-23  8:49           ` jsnx
2007-08-23 10:35             ` Steve Simon
2007-08-24  8:40             ` jsnx
2007-08-24  8:57               ` Martin Neubauer
2007-08-24 10:55               ` David Leimbach
2007-09-06  4:06                 ` Roman Shaposhnik
2007-08-29  9:06               ` jsnx
2007-08-30  1:41                 ` Uriel
2007-09-06  5:06                 ` Roman Shaposhnik
2007-08-29  9:06             ` jsnx
2007-08-23 15:29           ` Douglas A. Gwyn
2007-08-21  8:48         ` jsnx
2007-08-21 11:22           ` Uriel
2007-08-21 15:05           ` Skip Tavakkolian
2007-08-20  8:48     ` [9fans] " Douglas A. Gwyn
2007-08-17  8:42 ` [9fans] " jsnx

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=46D7360E.A05C1C2E@null.net \
    --to=dagwyn@null.net \
    --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).