DragonFly kernel List (threaded) for 2004-03
Package VFS (was: Daemon's advocate article)
[new subject since we're veering onto a fun tangent]
In article <200403012005.i21K5hFg077822@xxxxxxxxxxxxxxxxxxxx>,
Matthew Dillon <dillon@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
> 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
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