Hello, On Tuesday May 22, 2007, Miklos Szeredi wrote:I work for a similir goal in my bachelor's theses. But my approach is a little bit different. Instead of: I do: 'foo.zip^/foo/bar' or 'foo.zip^/contents/foo/bar' where foo.zip is a ZIP file. See the little '^' in the pathname: it's an escape character. I have a kernel patch which modifies a lookup resolution function and when a normal lookup fails ('foo.zip^/foo/bar' dosn't exist) and the pathname contains '^' it *redirects* the lookup to a FUSE mount. So say we have a FUSE vfs server (called 'RheaVFS') on '/tmp/shadow'. When a process tries to access '/home/xx/foo.zip^/foo/bar' it is in-kernel transparently redirected to '/tmp/shadow/home/xx/foo.zip^/foo/bar' and the vfs server handles all the extraction/compresion/semi-mounting/semi-umounting/whatsoever... Advantages: * 99.9% imho backward compatible. No problems with clever programs doing stat() before open()/opendir(). * you can easily and transparently stack filesystems one on top of another with a clear semantic. Say we have 'foo.tar.gz'; then: 'foo.tar.gz^' is a decompressed TAR *file*; 'foo.tar.gz^^' is a directory * you can pass additional parameters to the vfs server after the '^', eg. 'foo.zip^compresslevel=1/foo/bar' * works with symlinks too Drawbacks: * users must/should be aware of the special escape char '^' * usually only single vfs server per user handles all "virtual" directories --> single point of failure. (But I implemented a quirk which allows restarting the FUSE vfs server with only minor problems) * probably tons of others I don't know.... The project tarball is at: http://veverka.sh.cvut.cz/~sykora/prj/rheavfs-20070523-1239.tar.gz The kernel patch is in the tarball and for your viewing pleasure I've attached it to this email. The patch is againts 2.6.20.1 and works with 2.6.21.1 too. There are two minor failed hunks for 2.6.22-rc2 which I hadn't time to correct. My project is not completed, there's almost no documentation etc. Maybe I will put together some simple README/HOWTO in a few days. I wouldn't present the project at this time, but seeing your post I've thought my approach might be interesting for the discussion. Jara -- I find television very educating. Every time somebody turns on the set, I go into the other room and read a book.
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Ingo Molnar | Re: [BUG] New Kernel Bugs |
| Tony Lindgren | [PATCH 42/90] ARM: OMAP: Tabify mux.c |
| Roland Dreier | Re: Integration of SCST in the mainstream Linux kernel |
git: | |
| Martin Langhoff | Re: pack operation is thrashing my server |
| Andreas Ericsson | Re: VCS comparison table |
| Ingo Molnar | [OT] Your branch is ahead of the tracked remote branch 'origin/master' by 50 commi... |
| Nicolas Vilz 'niv' | git + ssh + key authentication feature-request |
| Richard Stallman | Real men don't attack straw men |
| Darren Spruell | Re: About Xen: maybe a reiterative question but .. |
| Nick Holland | Re: 4.1 on ALIX.1C - recommendations? |
| Lord Sporkton | Re: low-MHz server |
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Mark Lord | Re: 2.6.25-rc8: FTP transfer errors |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Brandeburg, Jesse | RE: e1000 full-duplex TCP performance well below wire speed |
