lkml.org 
[lkml]   [2000]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: NTFS-like streams?
    On Sat, 12 Aug 2000, Alexander Viro wrote:
    > On Sat, 12 Aug 2000, Linus Torvalds wrote:
    >
    > > The UNIX notion of "everything is a file" is a thing of beauty. Plan-9
    > > took it further, and I'm a staunch believer in things like /proc etc. I
    > > don't think resource forks are anything special.
    >
    > Unlike Plan 9 we have a userland that Should Not Be Broken(tm). And we
    > have this "POSIX-compliant" thing too... Linus, POSIX has a lot of nasty
    > words about mixing files and directories. And I'm afraid that saying "no,
    > foo is file, it just happens to have children" won't work - that way you
    > are going to screw a lot of userland stuff.
    >
    > Again, the _real_ problem is to give a reasonable semantics to unlink(),
    > remove-on-last-close, rename() and rmdir() for these beasts. Give me that
    > and I'll do VFS support Real Fast(tm). I propose a cop-out - let mount()
    > do the job. Then _all_ problems go away, since dubious operations are
    > automatically prohibited. If you have something better in mind - go ahead,
    > tell what you want.

    How about having each stream show up as a different file, i.e.:

    /mnt/ntfs/file
    /mnt/ntfs/file:otherstream
    /mnt/ntfs/file:streams

    The three can each be open()ed, cat'ed, rm'ed etc. like normal files. The
    only proviso is that deleting "file" will also remove "file:*", which may
    surprise a few utils?

    Upside:

    Say I install a thumbnail viewer, gnail. This creates "gnail" streams to
    each image it processes, leaving me with:

    /home/mine/tux.jpg
    /home/mine/tux.jpg:gnail
    /home/mine/daemon.jpg
    /home/mine/daemon.jpg:gnail

    If I then get rid of gnail, I can simple "rm -f ~/*:gnail", and the
    thumbnails have gone. If I "rm -f ~/tux.jpg", the thumbnail goes too.

    If I then want to move daemon.jpg to another directory, I can use mv:
    it simply moves all the streams one after the other. Even if I move to an
    ext2 partition, it works as expected: the gnail stream becomes a distinct
    file. When I move the files back, the stream is reunited.

    Seems a pretty logical approach, IMO?


    James.


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:58    [W:0.027 / U:90.252 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site