I really like FUSE, the filesystem in userspace that facilitated the creation of gcfuse. I think the killer app for FUSE is sshfs. It’s a minor miracle that if you have an SSH server running on a machine you can use sshfs to mount a filesystem from another machine. Authentication, encryption, all taken care of. None of that NFS or Samba configuration hassle.
I started wondering what else I might be able to use FUSE for. There is the small issue of Sega Dreamcast disc images. These games contain a lot of multimedia encoded with Sofdec’s middleware tools. For the most part, these discs use an ISO-9660-like filesystem that’s just a little different and doesn’t operate with Linux’s ISO-9660 module. Perhaps a FUSE/ISO-9660 module that can also handle the modified Dreamcast variant? Actually, I see that the big FUSE app directory lists an app appropriately named fuseiso which can load an ISO-9660 filesystem. It might be worth a look.
Thinking bigger, what about a FUSE module that mounts a DVD and presents it in some interesting manner? For starters, it will transparently decrypt the data. Then, present the contents of the DVD as a series of chapters or tracks or menu options. Since a DVD is not necessarily a strict hierarchy, perhaps organize the different viewing options in different directories. Or a /proc-like special filesystem that allows tinkering with the audio and subtitle options. It’s late and I’m just tossing out ideas here. Feel free to jump in.
FUSE is quite nice, but it shows that the guys who implemented it never heard of Plan9 and its
core protocol 9P. ;-) Its like that old LISP saying states — if you don’t know LISP you bound
to reimplement it, poorly!
But I’m not complaining — as everything that has this “we’ve just invented this cool thing”
flavor to it FUSE attracts a lot folks and that’s all goodnes. sshfs is quite nice too, but
I feel bad about p9fs being late to the show, because it actually is a much nicer thing from
a protocol standpoint.
And of course, the sad conspiracy surrounding Plan9 is dowright depressing. I wish more people
could realize that a system on which you can do:
$ ssh myname@remotehost u9fs -a none -u myname /srv/remotehost
and from now own /srv/remhost is a communication endpoint with u9fs on a remote machine:
$ mount /srv/remotehost /n/kremvax
has a few tricks it can teach the “big boys” like Solaris and Linux.
Oh, well, I guess its just me an old curmudgeon — but ist’s so much easier
to write your own serviced as filesystems on Plan9:
P.S. And, yes, I do want my private namespaces on LINUX and Solaris!
Random aside: For the Windows world there’s an app called “AnyDVD” which does at least one of the things you mentioned, it transparently decrypts (CSS) DVDs. It also removes the region lock-in and other types of copy protection (macrovision).
Something like that would definitely be handy on Linux. Each individual application would no longer have to implement a CSS decrypter, as it would all be handled at a low level before the application even got to the dvd.