All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Young <scottyoung@gmail.com>
To: Jan Engelhardt <jengelh@linux01.gwdg.de>
Cc: Amit Gud <amitgud1@gmail.com>,
	linux-kernel@vger.kernel.org, reisefs-list@namesys.com,
	Hans Reiser <reiser@namesys.com>
Subject: Re: file as a directory
Date: Tue, 30 Nov 2004 21:44:52 -0500	[thread overview]
Message-ID: <ee3a8d4a04113018445a4f84f4@mail.gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.53.0411301935240.9193@yvahk01.tjqt.qr>

On Tue, 30 Nov 2004 19:39:15 +0100 (MET), Jan Engelhardt
<jengelh@linux01.gwdg.de> wrote:
> >My suggestion is to add a framework, an infrastructure, in the VFS
> >wherein a simple plugin can be written to poke into the file as if it
> >were a directory. So with that framework in place, I can write a
> >plugin for archive support (treating the .tar files as directories),
> >Peter could write a plugin for poking into /etc/passwd (treating it as
> >a directory), and Jon Doe could write a plugin for sendmail.cf

The biggest problem I see with adding the complicated stuff to VFS is
the bloat and risk to system stability.  However, some things cannot
be done in userspace, such as good caching.  How is one userspace
library supposed to keep a transparent cache of, for example, an index
for a tar file, not clutter up the on-disk representation of the
cache, effectively manage space utilization, and  be able to
efficiently detect changes to files in order to invalidate the cache? 
This would become orders of magnitude easier if a ubiquitous
filesystem interface were in use.  However, the only ubiquitous
filesystem interface is VFS, which shouldn't have to take all the code
bloat.

Maybe something crazy could work.  Let's take some concepts from the
Aspect Oriented Programming paradigm.  Whenever a program is loaded
into memory, calls in the program to the vfs interface are modified to
instead call new userspace functions that have all of the desired
functionality, and those userspace functions eventually call the real
system functions.  The kernel wouldn't have to take the bloat, plus it
would be able to do things the userspace libraries wouldn't be able to
do efficiently.  It's the best of both worlds, with a little insanity
thrown in (It'd be neat to see the loader bootstrap its own code to
weave in the caching of the pre-woven binaries).


> That's something I could live with, but how do you want to tag a file being
> "tar" so that tar_ops is used instead of the "default file" ops?
> 
> You could not do so without an extra function, and once you use that extra
> function to tag a certain file being "tar" -- you know that extensions are
> kinda "worthless", and, especially, unrealiable -- you could also have used tar
> -tvf.
> 
> Did I mention tar is not the perfect format? It's because it is lacking an
> index and letting the kernel wade through a GB-sized tar file just to perform
> and readdir (yet imagine reading the last file of it) would be a hell of
> skipping. Keeping a non-persistent index in memory may solve the problem, but
> hey, I also do not want to spend too much memory just for a single tar file.

It would also be nice to have an interface which can build, maintain,
and cache on the disk a persistent index into a tar file on the disk,
and then be able to delete this index when space is running low. 
Plus, this index could be generated by streaming the file through
memory, so you don't need to consume too much memory for a single
file.


> >struct file_operations ops = {
> >   .read            = tar_readdir,
> >   .readdir        = tar_readdir,
> >   ......
> >};
> >
> >register_file_type("tar", &ops);
> 
> Jan Engelhardt
> --
> ENOSPC

  reply	other threads:[~2004-12-01  2:45 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-22 13:54 file as a directory Amit Gud
2004-11-22 14:37 ` Martin Waitz
2004-11-22 15:34   ` Zan Lynx
2004-11-22 17:18     ` Martin Waitz
2004-11-22 18:16   ` Jan Engelhardt
2004-11-22 14:38 ` Al Viro
2004-11-22 15:04 ` Helge Hafting
2004-11-22 17:15   ` Tomas Carnecky
2004-11-22 18:48     ` Hans Reiser
2004-11-24  9:16       ` Peter Foldiak
2004-11-24 14:05         ` Jan Engelhardt
2004-11-24 15:02         ` Paolo Ciarrocchi
2004-11-24 15:25           ` Peter Foldiak
2004-11-26 16:13             ` Hans Reiser
2004-11-24 16:11           ` Christian Mayrhuber
2004-11-25 10:50             ` Peter Foldiak
2004-11-26 18:19               ` Hans Reiser
2004-11-26 21:13                 ` Christian Mayrhuber
2004-11-27 11:09                   ` Peter Foldiak
2004-11-27 13:14                     ` Christian Mayrhuber
2004-11-29 21:20                       ` Horst von Brand
2004-11-29 22:59                         ` Peter Foldiak
2004-11-29 23:35                           ` Kevin Fox
2004-11-30  8:54                             ` Peter Foldiak
2004-11-30 16:28                               ` Kevin Fox
2004-11-30 16:42                                 ` Jan Engelhardt
2004-11-30 17:35                                   ` Jesse Pollard
2004-11-30 17:49                                     ` Jan Engelhardt
2004-11-30 18:26                                       ` Amit Gud
2004-11-30 18:39                                         ` Jan Engelhardt
2004-12-01  2:44                                           ` Scott Young [this message]
2004-12-03  9:58                                           ` Amit Gud
2004-11-30 14:51                           ` Horst von Brand
2004-11-30 15:29                             ` Peter Foldiak
2004-11-30 16:31                               ` Horst von Brand
2004-11-30 17:03                                 ` Hans Reiser
2004-12-14 16:58                                   ` Peter Foldiak
2004-12-14 17:21                                     ` Jan Engelhardt
2004-12-14 18:11                                       ` Peter Foldiak
2004-12-14 18:16                                         ` Jan Engelhardt
2004-12-14 17:24                                     ` Hans Reiser
2004-12-14 21:27                                       ` Peter Foldiak
2004-12-15  4:47                                         ` David Masover
2004-12-15  5:28                                           ` Hans Reiser
2004-12-16  0:16                                             ` David Masover
2004-12-16 18:52                                               ` Hans Reiser
2004-12-17 15:58                                                 ` David Masover
2004-12-17 16:52                                                   ` Hans Reiser
2004-12-18  1:52                                                     ` Horst von Brand
2004-12-20 17:21                                                       ` Hans Reiser
2004-12-21  3:40                                                         ` Alexander G. M. Smith
2004-12-21  5:31                                                           ` David Masover
2004-12-21 13:16                                                             ` Alexander G. M. Smith
2004-12-21 16:29                                                           ` Horst von Brand
2004-12-22  0:47                                                             ` Alexander G. M. Smith
2004-12-15  9:27                                           ` Peter Foldiak
2004-12-15 23:56                                             ` David Masover
2004-12-16 18:48                                               ` Hans Reiser
2004-12-16 19:01                                                 ` Peter Foldiak
2004-12-17 18:09                                                   ` Hans Reiser
2004-12-18  0:20                                                     ` David Masover
2004-12-17 16:02                                                 ` David Masover
2004-12-17 16:54                                                   ` Hans Reiser
2004-12-15  5:19                                         ` Hans Reiser
2004-12-14 19:30                                     ` Horst von Brand
2004-12-15  4:52                                       ` David Masover
2004-12-15  5:31                                         ` Hans Reiser
2004-12-15  5:10                                       ` Hans Reiser
2004-12-15 13:28                                         ` Horst von Brand
2004-12-15 16:57                                           ` Hans Reiser
2004-12-15 19:11                                             ` Markus   Törnqvist
2004-12-15 19:11                                               ` mjt
2004-12-15 20:57                                               ` Hans Reiser
2004-11-30 17:03                                 ` Peter Foldiak
2004-11-30 17:50                                   ` Horst von Brand
2004-11-30 18:23                                   ` Dr. Giovanni A. Orlando
2004-11-29 23:11                         ` Peter Foldiak
2004-11-30  5:53                         ` prymitive
2004-11-30 16:04                   ` Martin Waitz
2004-11-27 12:49                 ` Markus   Törnqvist
2004-11-27 12:49                   ` mjt
2004-11-29 15:41                   ` Hans Reiser
2004-11-26 17:43         ` Hans Reiser
2004-11-27 11:50         ` Tomasz Torcz
2005-05-10  9:39         ` Peter Foldiak
2005-05-10 14:53           ` Hans Reiser
2005-05-10 15:32             ` Peter Foldiak
2005-05-10 16:30               ` Sean McGrath
2005-05-10 17:25                 ` Hans Reiser
2005-05-10 17:39                   ` Sean McGrath
2005-05-10 18:52                     ` Hans Reiser
2005-05-10 19:39                       ` Sean McGrath
2005-05-10 20:11                         ` Hans Reiser
2005-05-16 12:32               ` Leo Comerford
2005-05-17  1:25                 ` Alexander G. M. Smith
2005-05-17 22:51                   ` David Masover
2005-05-17 23:57                     ` Alexander G. M. Smith
2005-05-18 11:46                   ` Leo Comerford
2005-05-18 11:50                   ` Leo Comerford
2005-05-10 15:14           ` Valdis.Kletnieks
2005-05-10 15:38             ` Peter Foldiak
2005-05-10 17:20               ` Hans Reiser
2005-05-11 10:23               ` Helge Hafting
2004-11-23  6:20   ` Amit Gud
2004-11-24 10:32     ` Helge Hafting
2004-11-24 11:07       ` Amit Gud
2004-11-25 23:09   ` Pavel Machek
2004-11-28 18:53     ` Helge Hafting
2004-11-28 19:01       ` Pavel Machek
2004-11-22 17:59 ` Valdis.Kletnieks
2004-11-22 18:24   ` Jan Engelhardt
2004-11-22 18:24     ` Jan Engelhardt
2004-11-22 18:52   ` Hans Reiser
2004-11-22 19:05     ` Jan Engelhardt
2004-11-23  9:46       ` Amit Gud
2004-11-23 14:00         ` Jan Engelhardt
2004-11-23 14:17           ` Amit Gud
2004-11-23  9:11     ` Dirk Steinberg
2004-11-23  9:37       ` Markus   Törnqvist
2004-11-23  9:37         ` mjt
2004-11-23 19:00       ` Hans Reiser
     [not found] <fa.imi6gu8.1e7qkqc@ifi.uio.no>
     [not found] ` <fa.hcr9rb0.k6egam@ifi.uio.no>
2004-11-26  4:11   ` Bodo Eggert

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=ee3a8d4a04113018445a4f84f4@mail.gmail.com \
    --to=scottyoung@gmail.com \
    --cc=amitgud1@gmail.com \
    --cc=jengelh@linux01.gwdg.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=reisefs-list@namesys.com \
    --cc=reiser@namesys.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.