linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alex Belits <abelits@phobos.illtel.denver.co.us>
To: "Ihar 'Philips' Filipau" <filia@softhome.net>
Cc: trelane@digitasaru.net,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"Theodore Ts'o" <tytso@mit.edu>
Subject: Re: Things that Longhorn seems to be doing right
Date: Thu, 30 Oct 2003 10:23:38 -0700 (MST)	[thread overview]
Message-ID: <Pine.LNX.4.58.0310301007340.11170@sm1420.belits.com> (raw)
In-Reply-To: <3FA0F1B7.7000409@softhome.net>

On Thu, 30 Oct 2003, Ihar 'Philips' Filipau wrote:

> >>Keep in mind that just because Windows does thing a certain way
> >>doesn't mean we have to provide the same functionality in exactly the
> >>same way.
> >>Also keep in mind that Microsoft very deliberately blurs what they do
> >>in their "kernel" versus what they provide via system libraries (i.e.,
> >>API's provided via their DLL's, or shared libraries).
> >
> > Indeed, although certain things could be half-kernel, half-user
> >   (OK, 0.01% kernel, 99.99% user, e.g. userspace daemon that
> >   intercepts certain writes).  Of course, at that point, you might
> >   make a special library to interact with the daemon directly, although
> >   it's then not at all like just calling write().
> >
>
>    I beleive this is 100% user space issue.
>
>    And I think if one really want to do something like this - Gnome's
> VFS is a good candidate for this. They already have all abstractions in
> place.

  Why not just provide a general-purpose interface for:

1. Userspace-visible transactions. A userspace process can mark a set of
fd, inodes, files, or "whatever this set of processes did since now", and
tell the filesystem to keep a log of changes to that. Journaling will then
mark relevant changes (and possibly create an additional log depending on
the design, or pass the log-related information to another userspace
program), and treat them as a transaction, with the possibility of
rollback on kernel-originated error, userspace request, or, possibly, a
transaction manager daemon, that may have its own reason to fail the
transaction.

2. Update notifications. A set of files or directories, or whatever a
certain set of processes accesses, is being monitored, and the list
of changes (pages, byte ranges, lists of created/deleted directory
entries) is somehow maintained and being passed to a set of processes.
Processes can have passive monitoring (they will know what has been
changed -- good for indexers and other kinds of application-specific
daemons) or intrusive pass-through monitoring (the change is not applied
until the process confirms it, and transaction interface applies to this
if enabled -- this will be a performance hit, and can be done for, say, a
distributed transaction manager).

3. Pluggable directory generator -- a userspace process can tell the
system to make an object that looks exactly like a directory, except that
its contents are provided by the process, that is being queried when the
directory is accessed.

Obviously, the need for performance/asyncronous access and security
requirements should be addressed in the implementations of those things,
however relatively small scope of the interfaces can allow to do that in a
more or less sane manner. Then userspace can have all kinds of indexing
monstrosities, transaction-using databases, transaction managers, etc.

-- 
Alex

  reply	other threads:[~2003-10-30 17:31 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <LUlv.31e.5@gated-at.bofh.it>
     [not found] ` <M7iG.41B.7@gated-at.bofh.it>
     [not found]   ` <MagC.82U.7@gated-at.bofh.it>
     [not found]     ` <Maqe.8l3.9@gated-at.bofh.it>
2003-10-30 11:10       ` Things that Longhorn seems to be doing right Ihar 'Philips' Filipau
2003-10-30 17:23         ` Alex Belits [this message]
2003-10-31  1:46           ` Daniel B.
2003-10-31  1:57             ` Philippe Troin
     [not found]     ` <Mcig.2uf.1@gated-at.bofh.it>
     [not found]       ` <Mcs2.2FJ.5@gated-at.bofh.it>
2003-10-30 12:04         ` Ihar 'Philips' Filipau
     [not found]     ` <Mg2B.7wf.9@gated-at.bofh.it>
     [not found]       ` <Mh8n.BT.9@gated-at.bofh.it>
     [not found]         ` <MhLf.1pF.9@gated-at.bofh.it>
2003-10-30 12:16           ` Ihar 'Philips' Filipau
2003-11-02 13:11 Brian Beattie
2003-11-02 17:15 ` Valdis.Kletnieks
2003-11-03 19:35   ` Brian Beattie
2003-11-03 20:17     ` Richard B. Johnson
2003-11-03 20:23       ` Valdis.Kletnieks
2003-11-03 20:54         ` Richard B. Johnson
2003-11-03 21:01           ` Valdis.Kletnieks
2003-11-03 22:06             ` Måns Rullgård
2003-11-04  8:47           ` Michael Clark
2003-11-04 12:47             ` Richard B. Johnson
2003-11-04 14:02           ` Brian Beattie
2003-11-03 20:55         ` Roland Dreier
2003-11-04  0:35     ` Daniel B.
2003-11-04 14:05       ` Brian Beattie
  -- strict thread matches above, loose matches on Subject: below --
2003-10-29  8:50 Hans Reiser
2003-10-29 22:42 ` Erik Andersen
2003-10-29 23:03   ` Hans Reiser
2003-10-29 22:25     ` Dax Kelson
2003-10-30  0:20       ` Joseph Pingenot
2003-10-30  0:54         ` Neil Brown
2003-10-30  1:34           ` Joseph Pingenot
2003-10-30  2:54             ` Bernd Eckenfels
2003-10-30  2:58               ` Arnaldo Carvalho de Melo
2003-10-30  3:16               ` Joseph Pingenot
2003-10-30  5:28                 ` Jeff Garzik
2003-10-30  5:56                   ` Valdis.Kletnieks
2003-10-30  3:16             ` Neil Brown
2003-10-30  3:39               ` Joseph Pingenot
2003-10-30 10:27             ` Thorsten Körner
2003-10-30 21:28             ` jlnance
2003-10-30 22:29               ` Måns Rullgård
2003-10-31  2:03                 ` Daniel B.
2003-10-31  1:04               ` Clemens Schwaighofer
2003-10-30  2:09         ` Alex Belits
2003-10-30  3:12           ` Joseph Pingenot
2003-10-30  4:21             ` Scott Robert Ladd
2003-10-31 16:42               ` Timothy Miller
2003-10-31 19:15                 ` Hans Reiser
2003-10-30  9:52             ` Ingo Oeser
2003-10-30  4:06           ` Scott Robert Ladd
2003-10-30  1:52   ` Theodore Ts'o
2003-10-30  2:03     ` Joseph Pingenot
2003-10-30  9:23       ` Ingo Oeser
2003-10-30  3:57     ` Scott Robert Ladd
2003-10-30  4:08       ` Larry McVoy
2003-10-30 13:46       ` Jesse Pollard
2003-10-31  4:50       ` Stephen Satchell
2003-10-30  7:33     ` Diego Calleja García
2003-10-30  8:43       ` Giuliano Pochini
2003-10-30  8:05     ` Hans Reiser
2003-10-30  8:17       ` Wichert Akkerman
2003-10-30 11:59         ` Hans Reiser
2003-10-30  9:14       ` Giuliano Pochini
2003-10-30  9:55         ` Hans Reiser
2003-10-30 17:48       ` Theodore Ts'o
2003-10-30 19:23         ` Hans Reiser
2003-10-30 20:31           ` Theodore Ts'o
2003-10-31  7:40             ` Hans Reiser
2003-10-31 19:30               ` Theodore Ts'o
2003-10-31 20:47                 ` Hans Reiser
2003-10-31 13:59                   ` Herman
2003-10-31 21:23                     ` Richard B. Johnson
2003-11-01 18:30                       ` Hans Reiser
2003-10-31 21:08                   ` David S. Miller
2003-11-02 21:42                     ` Hans Reiser
2003-11-03 12:42                 ` Nikita Danilov
2003-11-03 16:58                   ` Timothy Miller
2003-11-04  8:13                     ` Hans Reiser
2003-11-05 13:51                       ` Ingo Oeser
2003-11-05  2:07                         ` Hans Reiser
2003-10-31 11:01         ` Kenneth Johansson
2003-10-31 13:52           ` Jesse Pollard
2003-10-30 11:21     ` Felipe Alfaro Solana
2003-10-30  7:25 ` Christian Axelsson
2003-10-30  8:10   ` Hans Reiser
     [not found] ` <200311011731.10052.ioe-lkml@rameria.de>
     [not found]   ` <3FA3FF46.7010309@namesys.com>
2003-11-03 10:55     ` Ingo Oeser
2003-11-04  8:10       ` Hans Reiser

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=Pine.LNX.4.58.0310301007340.11170@sm1420.belits.com \
    --to=abelits@phobos.illtel.denver.co.us \
    --cc=filia@softhome.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=trelane@digitasaru.net \
    --cc=tytso@mit.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).