File systems

5 views
Skip to first unread message

Andrew Wilcox [maintainer]

unread,
Nov 2, 2006, 4:22:23 AM11/2/06
to AWOS-devel
First of all, should we make the file system interface "plugable"?
Sort of like IFS on Windows, the file system drivers implement so many
functions and then anybody can write drivers. Or should it be more a
kernel-only thing, and to have other people write a file system driver,
they must insert it in to the kernel?

I also think this is the time we should start to think about what kind
of file systems we want to support. Obviously we must support FAT and
ext[2/3] so that we can all beta test them. Probably we should include
NTFS. But any others? We can browse
<http://en.wikipedia.org/wiki/Category:Disk_file_systems> Wikipedia for
ideas for other systems.

The current plan is to implement, in this order:

FAT
ext2
ext3
NTFS
ReiserFS
<others go here>

Best regards,

Andrew

d4rk...@gmail.com

unread,
Nov 2, 2006, 4:16:15 PM11/2/06
to AWOS-devel

Andrew Wilcox [maintainer] wrote:
> First of all, should we make the file system interface "plugable"?
> Sort of like IFS on Windows, the file system drivers implement so many
> functions and then anybody can write drivers. Or should it be more a
> kernel-only thing, and to have other people write a file system driver,
> they must insert it in to the kernel?

I don't know IFS but it seems a good thing. Concretely how is it
implemented, how does it work?

>
> I also think this is the time we should start to think about what kind
> of file systems we want to support. Obviously we must support FAT and
> ext[2/3] so that we can all beta test them. Probably we should include
> NTFS. But any others? We can browse
> <http://en.wikipedia.org/wiki/Category:Disk_file_systems> Wikipedia for
> ideas for other systems.

Starting with FAT is a good idea as it the simplest one to implement
(FAT12 then 16 then 32...), and once FAT and ext2 are ready it will be
time to wonder what other FS should be implemented but I think it's
going to take some time to do those first ones.

--
d4rk

Andrew Wilcox [maintainer]

unread,
Nov 2, 2006, 4:32:25 PM11/2/06
to AWOS-devel

d4rk...@gmail.com wrote:
> I don't know IFS but it seems a good thing. Concretely how is it
> implemented, how does it work?
For all intents and purposes, the driver exports certain functions and
then the OS interfaces to it when it is accessing a file system of that
type. For example

FsChangeDirectory()
FsListDirectory()
FsReadFile()
FsWriteFile()

Something like that.

> Starting with FAT is a good idea as it the simplest one to implement
> (FAT12 then 16 then 32...),

Right, I was already thinking of that. I have the starts of a header
for the FAT driver already there (driver/fat.h).

> and once FAT and ext2 are ready it will be
> time to wonder what other FS should be implemented but I think it's
> going to take some time to do those first ones.

Okay.

Best regards,

Andrew

thematrixeatsyou

unread,
Nov 2, 2006, 10:38:02 PM11/2/06
to AWOS-devel
> First of all, should we make the file system interface "plugable"?
> Sort of like IFS on Windows, the file system drivers implement so many
> functions and then anybody can write drivers. Or should it be more a
> kernel-only thing, and to have other people write a file system driver,
> they must insert it in to the kernel?
Yes, pluggable, but some should be inbuilt. Read on...

> Starting with FAT is a good idea as it the simplest one to implement
> (FAT12 then 16 then 32...)

I believe that FAT12 is actually a little *harder* than FAT16, though I
also believe that FAT12 should be implemented *first* as it is the
floppy disk standard. A FAT12 driver should be built into the kernel as
FAT12 is the floppy disk standard (and has been for the last 15 years).
Screw VFAT support and implement that in a pluggable driver.
Securitywise, I think pluggable hard-disk drivers should be in a
special format, not assembler - rootkits, anyone?

For filesystems, that is a good arrangement. I have Win 2000 with FAT32
partitioning (dual boot with Mandrake 10.0 FYI), so for those who use
NTFS, you'll just have to wait.
FAT - it's so standard
- FAT12 - floppy disk standard ;)
- FAT16 - hardly used these days, but should still be implemented (up
to 2GB :) )
- FAT32 - still common, and 2TB is more than enough :D
extFS:
- ext2 - it's so standard, and it's open source - support the penguin!
- ext3 - it's becoming standard, and it's open source
VFAT - ugly standard 256-char hack for filenames, but it works
NTFS - relatively standard, but complex and closed source - that's why
you suck, Microsoft
ReiserFS - Haven't really heard of it. Is that the Mac one? We're not
programming for Macs, are we? Then again, there are those Intel Macs,
so it could be done.

<others go here>
- If we can come up with a better filesystem than the ones in
existence, we'll probably use it.

NOTE: All are just suggestions only.
(o_
//\
V_/_

Andrew Wilcox [maintainer]

unread,
Nov 6, 2006, 4:56:50 AM11/6/06
to AWOS-devel
thematrixeatsyou wrote:
> I believe that FAT12 is actually a little *harder* than FAT16,
Not true, I read and they are the exact same structure wise. The only
difference is the size of the tables, which is easy enough to correct
for.

> though I
> also believe that FAT12 should be implemented *first* as it is the
> floppy disk standard.

Correct.

> A FAT12 driver should be built into the kernel as
> FAT12 is the floppy disk standard (and has been for the last 15 years).

And I don't really think ext2 disks will catch on :D

> Screw VFAT support and implement that in a pluggable driver.

Hmm, but it's kind of a part of FAT. You are suggesting that, when we
have a mount, there should be a difference between 8.3 FAT and 255 FAT.

> Securitywise, I think pluggable hard-disk drivers should be in a
> special format, not assembler - rootkits, anyone?

Um, in a hard disk driver? or file system driver? Either way, a user
shouldn't be using AWOS if he's dumb enough to install a file system
*driver* from junk mail.

Maybe that's not what you meant. I digress.

> For filesystems, that is a good arrangement. I have Win 2000 with FAT32
> partitioning

Good, because I can't get my FAT32 system to export it's boot sector.

> (dual boot with Mandrake 10.0 FYI),

yay Linux!


> so for those who use
> NTFS, you'll just have to wait.

That includes me. Rawr.

> FAT - it's so standard
> - FAT12 - floppy disk standard ;)

yay floppies! And Mr Gate$ said they were dead in 2003....

> - FAT16 - hardly used these days, but should still be implemented (up
> to 2GB :) )

Oh yeah, I still have FAT16 partitions even on my XP laptop.

> - FAT32 - still common, and 2TB is more than enough :D

True. and yes, many people still use 9x and some like you use 2000
with it.

> extFS:
> - ext2 - it's so standard, and it's open source - support the penguin!

yay penguin! But I feel the better standard is:

> - ext3 - it's becoming standard, and it's open source

It's already the standard. Journaling made everyone switch. ext2 is
kind of a historic footnote now.

> VFAT - ugly standard 256-char hack for filenames, but it works

Yes, and yes. :)

> NTFS - relatively standard
Yes.


> , but complex and closed source

Yes.


> - that's why
> you suck, Microsoft

Yes.

> ReiserFS - Haven't really heard of it. Is that the Mac one?

No, actually it was the standard for Linux systems between ext2 and
ext3. SuSE 9.1 defaulted to it at least. Journaling just like ext3.
But I've been warned on an Ubuntu place that ResierFS is not as
reliable as ext3.

> We're not
> programming for Macs, are we?

Um, no. I do not like PowerPC assembly, and do not own any Macs
either. :)

> Then again, there are those Intel Macs,
> so it could be done.

True, didn't think of that. But they can run Windows unaltered too.
So it's really nothing too special.

> <others go here>
HPFS (High Performace File System - OS/2)? ext1 (before ext2)? MINIX
(I know, I know, but there's a new MINIX 3 coming out)?

> - If we can come up with a better filesystem than the ones in
> existence, we'll probably use it.

ugh...another file system? We don't need ANOTHER file system.

Though AWFS does sound a *lot* like Office.

> NOTE: All are just suggestions only.

NOTE: All are taken as suggestions only.

> (o_
> //\
> V_/_
yay! another penguin!

Reply all
Reply to author
Forward
0 new messages