[CVALE] How do you design a file system?
Dennis Baker
mtbogre at gmail.com
Tue May 8 13:40:52 PDT 2007
Isn't there a userspace filesystem kernel module now? I seem to recall
reading about being able to write a file system in Python... a little crazy
there.
The Linux file systems (XFS, ext2/3, ReiserFS, etc) are almost all written
in C, I know some file systems are written in C++ but I don't believe any
that are included with Linux. None that I know of currently are written in
assembly. Most filesystems are written so they are compatible across
architectures so while you don't have to write a complete version for each
architecture there are some coding differences that you need to take into
account to make it cross platform compatible (don't ask me exactly what
these are).
As for utilities, it depends on which ones. Things like fsck have to be
built for each file system, other tools like mv and cp run on top of the OS
and make OS level calls which your file system has to know how to handle.
All current Linux file systems are available as either kernel modules or can
be compiled into the kernel.
00 Dennis
On 5/8/07, Landon Blake <lblake at ksninc.com> wrote:
>
> Its time for one of my really ignorant and purely theoretical questions:
> How do you design a computer file system?
>
>
>
> Some common file systems are FAT16, FAT32, Ext2, and Ext3. I know they all
> do basically the same thing, store files on some sort of storage medium.
>
>
>
> If you wanted to design a new file system, how would you go about it?
> Would it have to be written specifically for each processor type? Could it
> be written in a programming language like C, or would it have to be
> implemented at a lower level by using some sort of assembly language? Is a
> file system simply a format specification? (For example, the name of the
> file goes in this 50 bytes, the length of the file in the next 10 bytes…) Or
> does a file system contain tools, utilities and functions?
>
>
>
> How would one add support for a new file system to Linux? Could you do
> this with what is called a kernel "module"?
>
>
>
> I'm not saying I'd actually want to implement a new file system, since
> there is already a lot of existing file systems that work just fine, but I'm
> curious as to how this would work.
>
>
>
> What is on the cutting edge of computer file system design? What new
> concepts are they exploring?
>
>
>
> Landon
>
>
>
>
> *Warning:
> *Information provided via electronic media is not guaranteed against
> defects including translation and transmission errors. If the reader is not
> the intended recipient, you are hereby notified that any dissemination,
> distribution or copying of this communication is strictly prohibited. If
> you have received this information in error, please notify the sender
> immediately.
>
> _______________________________________________
> cvale mailing list
> cvale at lists.fire2wire.com
> http://lists.fire2wire.com/mailman/listinfo.cgi/cvale
>
>
--
Dennis Da-Ogre http://ogrehut.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.fire2wire.com/pipermail/cvale/attachments/20070508/8094b975/attachment-0001.html
More information about the cvale
mailing list