2014-11-24 14:06:03

by Nicolas George

[permalink] [raw]
Subject: Using kernel filesystems as userland libraries

Hi.

With the libraries present in e2fsprogs, it is possible to open a plain file
(or any other reasonable storage) as an EXT2 filesystem and manipulate files
inside it.

Is it possible to use the implementations in the kernel to do the same thing
with any supported normal filesystem?

Obviously, it is theoretically possible, but my question is whether it has
been done in practice. I suppose it would require writing userland
replacement for the kernel APIs (memory management, access to block devices,
scheduling) and either rebuilding the kernel source as userland code or
loading the modules directly.

Regards,

--
Nicolas George


Attachments:
(No filename) (640.00 B)
signature.asc (819.00 B)
Digital signature
Download all attachments

2014-11-25 07:35:30

by Clemens Ladisch

[permalink] [raw]
Subject: Re: Using kernel filesystems as userland libraries

Nicolas George wrote:
> With the libraries present in e2fsprogs, it is possible to open a plain file
> (or any other reasonable storage) as an EXT2 filesystem and manipulate files
> inside it.
>
> Is it possible to use the implementations in the kernel to do the same thing
> with any supported normal filesystem?

mount -o loop /plain/file /where/to/mount

2014-11-25 07:47:02

by xun ni

[permalink] [raw]
Subject: Re: Using kernel filesystems as userland libraries

Hi, George:

is there any reason to do this? we still need to copy files from
userspace to kernel.

Thanks,
Xun

2014-11-24 21:12 GMT+08:00 Nicolas George <[email protected]>:
> Hi.
>
> With the libraries present in e2fsprogs, it is possible to open a plain file
> (or any other reasonable storage) as an EXT2 filesystem and manipulate files
> inside it.
>
> Is it possible to use the implementations in the kernel to do the same thing
> with any supported normal filesystem?
>
> Obviously, it is theoretically possible, but my question is whether it has
> been done in practice. I suppose it would require writing userland
> replacement for the kernel APIs (memory management, access to block devices,
> scheduling) and either rebuilding the kernel source as userland code or
> loading the modules directly.
>
> Regards,
>
> --
> Nicolas George

2014-11-25 08:34:12

by Richard Weinberger

[permalink] [raw]
Subject: Re: Using kernel filesystems as userland libraries

On Mon, Nov 24, 2014 at 2:12 PM, Nicolas George <[email protected]> wrote:
> Hi.
>
> With the libraries present in e2fsprogs, it is possible to open a plain file
> (or any other reasonable storage) as an EXT2 filesystem and manipulate files
> inside it.
>
> Is it possible to use the implementations in the kernel to do the same thing
> with any supported normal filesystem?
>
> Obviously, it is theoretically possible, but my question is whether it has
> been done in practice. I suppose it would require writing userland
> replacement for the kernel APIs (memory management, access to block devices,
> scheduling) and either rebuilding the kernel source as userland code or
> loading the modules directly.

Regarding the interfaces, we have FUSE.
But there is no tool which can automagically convert kernel filesystem code
into FUSE userland code. It has to be done by hand.
For some filesystems we have already FUSE implementations.

--
Thanks,
//richard