1 |
Michael, |
2 |
|
3 |
I've actually already implemented something like this for a school |
4 |
project. I built a metadata "database" on top of file system using ext2 |
5 |
and extended attributes. I modified the ext2 kernel module and built two |
6 |
userspace utils for getting and setting the metadata. I also patched |
7 |
portage to set the metadata when installing packages. While designing and |
8 |
building this system I ran into a number practical issues, such as |
9 |
extended attributes are currently only allowed 1 block on disk. Because of |
10 |
this I use a lot of hashing tricks and only store 32bit integers on disk. |
11 |
My user space utils translate between ascii names and integers. My basic |
12 |
goal was to distribute the portage database through the file system so |
13 |
that disk the database represents the actual state of the disk, rather |
14 |
than the state at the time you emerged something. This allows for packages |
15 |
to have files added and removed, while not accumulating cruft over time. |
16 |
|
17 |
Rather than going into too much detail, I suggest that you read the paper |
18 |
that I wrote on it. I haven't had time to get organized, but I can make |
19 |
the source code available soon too. If anyone is interested in working on |
20 |
it please let me know. |
21 |
|
22 |
The paper: |
23 |
http://people.brandeis.edu/~rossgir/pkgman.ps |
24 |
|
25 |
cheers, |
26 |
ross |
27 |
|
28 |
p.s. it should be noted that this project was my first adventure into |
29 |
kernel programming, so it's quite amateurish and could use the guide of a |
30 |
wise sage :). |
31 |
|
32 |
|
33 |
-- |
34 |
gentoo-dev@g.o mailing list |