Package VFS (was: Daemon's advocate article)

William A. Carrel william.a at carrel.org
Mon Mar 1 21:37:47 PST 2004


[new subject since we're veering onto a fun tangent]
In article <200403012005.i21K5hFg077822 at xxxxxxxxxxxxxxxxxxxx>,
 Matthew Dillon <dillon at xxxxxxxxxxxxxxxxxxxx> wrote:

> :Egads!  Matt, put down the painkillers!!    8-)
> :
> :I can just see it now...  right next to 'page faults', we've got
> :'package faults'.  We could even have a package pager, to
> :automatically do LRU analysis on packages, and delete them when we get
> :tight on space (of course, weighing in the speed of the network
> :connection).
> 
>    And 'pkglock' to lock a package in so it isn't deleted by the LRU.
> 
>    Really, though, I think this might be a great idea whos time has come.
>    Kinda like having an NFS mount over the internet, but with added security
>    (local MD5 file for comparisons, multiple servers, load distribution, etc).
> 
>    Perfect for a userland VFS.

This is sure a fun train of thought to follow.  Pardon the stream of 
consciousness here...

Thinking about how to deal with the package flavors, a weakness of 
nearly every existing package system that I've laid my hands on. How do 
you tell the system that for one execution of say "httpd" you mean 
"Apache 1.3.x" and by the other one you mean "Apache 2.0.y".  Or 
moreover, by one execution you mean "Apache 2.0.y compiled with -O2 
-funroll-sleeping-bag" rather than "Apache 2.0.y compiled with -g and my 
mod_dav disk free patch"?

There would have to be some sort of hinting obviously to deal with some 
of these issues, but I'm not sure if hinting alone would do the trick.  
That package vfs is going to get awful crowded.  

Maybe the vfs would let me clone the apache pkg directory somehow 
locally.  I could insert my patch for the source into it and then when I 
went to execute my /pkg/apache-clone/bin/httpd it would see the patch, 
see that the cached executable is not up-to-date w.r.t. the patch, 
recompile, then execute.  (Bonus: if the user was a registered package 
maintainer or some such it could send the package back to the server 
signed after some sort of brief prompting.)  If the Apache package I 
cloned from got updated by a maintainer, how would I merge those changes 
to my cloned directory?  Similar questions flow from dependency and 
other update handling.

Still more questions about preserving local config changes and what not, 
but this is fun to think about. 
-- 
William A. Carrel





More information about the Kernel mailing list