[OpenAFS-devel] Re: openafs / opendfs collaboration

Luke Kenneth Casson Leighton lkcl@lkcl.net
Fri, 21 Jan 2005 11:01:06 +0000


On Fri, Jan 21, 2005 at 10:27:33AM +0100, Ivan Popov wrote:

> If you mean a more general "cache bookkeeping library", then possibly yes,
> but still you'll get differences depending on how FSs and OSs distribute
> functionality between kernel and user space in a filesystem client.

 i believe stephen is referring to storing NT authentication
 "session keys", which are required to perform DCE/RPC signing and
 sealing, that sort of thing.

 i believe stephen envisages a situation where a user logs in with a
 program (or uses a modified version of a pam module) that performs
 NT-style authentication, and then the program or pam module
 communicates the response to the kernel, which caches it "safely"
 somehow.

 then, should other programs or kernel modules (such as a
 filesystem module, or a user-space service, or smbclient,
 or REGEDT32.EXE running under Wine) require access to those
 cached credentials, they may do so immediately and via a
 well-defined interface.


 this may get rid of the need, for example, for smbmount to
 use an ioctl to communicate with smbfs.ko which passes over
 the SMB username+password.  that sort of thing.



 personally, i think the whole idea of having complex filesystem
 clients inside the kernel is utterly insane, and that userspace
 filesystems like fuse (not so hot), lufs (much better) where you
 write a  userspace helper daemon is much better, and that
 application-level plugins for desktop systems like KDE (which even
 has a webdav filesystem plugin), and simple command-line tools
 like smbclient and ftp should be used instead.

 you _really_ want to port dce/rpc client-side code into the linux
 kernel???

 and you've _really_ ported the AFS client-side code into the linux
 kernel??

 *shriek*!!! :)


 the gnu/hurd has the right approach to this issue: the kernel
 "helps" you to "publish" a userspace service via well-known interfaces
 such that other programs may use your "service" as system calls.

 ironically (given the people on this list i think you'll
 appreciate this), in order to achieve this, the gnu/hurd team
 had to write _their own_ RPC system - including an IDL compiler
 - from the ground up and utilised Mach kernel message-passing
 as the transport.

 now, if you proposed that the linux kernel gained
 message-passing, or similar features to gnu/hurd to achieve
 the same effect, or you proposed improvements to the linux
 filesystem structures such that lufs and fuse don't end up
 locking large critical structures, i'd say "GREAT!"
 
 ... but instead, i'm going to say "good luck" :)

 l.