This situation is similar to situation in modern graphics hardware.
The best solution I know is GGI project.
Let me propose the GFI - General File Interface:
// user space
1. Modern software will communicate with file system
through the thin wrapper - libGFI.so
2. libGFI will redirect common requests to the "targets":
libEXT3, libFAT, libNTFS, libBFS...
using common features on ALL file systems.
(for example permitions on VFAT can be stored as in UMSDOS)
3. Old applications uses wrappers to libGFI:
for example libc4GFI.so instead of libc.so
3a. Note: _FEW_ applications such as 'cp' must be patched.
4. advanced libGFI functionality achieved by extensions:
libGFI-config ('registry'-like API based on FS! Dance, 'registry'
lovers!)
libGFI-DBS
libGFI-Type
etc...
// kernel space
The following operations can not be done in user space:
5. security
a) Even ACL is a regular fork,
it must be handled in kernel only.
b) directory locks (see 6b)
6. optimization for fork storage (ext3)
a) allow some small files must be stored in 1 inode
like BFS small nodes, NTFS resident attributes...
b) open directories.
use preallocated directory inode to open
"/very/long/directory/name/..../file"
as (inode)/file
May be I missed something, but I like and even need this
solution.
What is your opinion?
Best regards.
Alexander.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/