Hello there,

Having yet another hard disk crashed today, I started feeling unlucky
and decided to commit this thing before my modifications also get lost
;-)

The set of patches commited to the CVS allows one to compile programs
against /System/Index using a new parameter to ChrootCompile,
'--new-names'. When given that option, the generated tree uses that
hierarchy, union-linking chrooted programs' contents inside
/System/Index, much faster than using LinkOrExpandAll. A new script
named UnionSymlinkProgram has been added to perform this task.

Currently, UnionSymlinkProgram depends in UnionFs 1.x, which
unfortunately isn't available for newer kernels. Their development
branch, 2.x, is slowly merging features such as dynamic manipulation
of branches (unionctl --add/--remove) so that these options can be
passed directly in the mount command instead. It looks like they've
already started working on this, so maybe in one or two weeks we'll
have that integrated to the Linux recipe.

Ok, on to the problems: being a real file system, UnionFS has some
limitations for us. Since it has its own cache mechanism internally to
the file system, one is only allowed to perform writes directly in the
mount point, or else cache coherency problems can appear and make some
damage to the files (currently they let the kernel to oops when such
situation is going to happen).

In practice, this means that if we have /Programs/Foo/1.0 and
/Programs/Bar/2.0 mounted in the top of /System/Index, one cannot
modify files directly in /Programs/{Foo/1.0,Bar/2.0}. Since this is a
big limitation here, we have two possibilities:

1) Work in the UnionFS code to implement an option to disable its
cache in the mount command;
2) Switch to a userspace implementation based on FUSE. Being in the
top of a unique real files system, such alternative doesn't suffer
from that problem.

I don't have any real preference here. I was going to work a little
bit with some FUSE variants today, but as my hard disk crashed at work
I wasn't able to do that -- and probably won't be until the end of the
week, except for the time dedicated in the night.

I'm pretty much inclined to take a look at the UnionFS code, so if
anyone have the time I would appreciate some tests with FUSE
alternatives, such as performing big mounts of everyone at /Programs
in a unique place and do some read/write/find there. These two
implementations seems to be interesting, and probably deserve some
testing:

    http://funionfs.apiou.org/
    http://podgorny.cz/moin/UnionFsFuse

Thanks,

-- 
Lucas
powered by /dev/dsp
_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to