portable filesystem by simplicity?
Posted: Thu Feb 19, 2009 3:51 pm
I know this isn't an OS design... but I figured this could go here..
I have been thinking recently about how incompatible filesystems were..
I was thinking about making a file system supporting nearly nothing, but the way it is designed, being very extensible.
Base support is:
only up to 4G size files
Unix permissions(including mode, uid, gid)
directories
256 character names(ascii)
My problem with the design is the index. If I have it include an index(or FAT or whatever) then it makes it less extensible, and more complicated to implement. But without an index it would be awful slow.
By not having an index, that would be the first sector of the data section would be the first file. at the beginning of the sector is things like how big the file is, if its a file, directory, or special, mode/gid/uid stuff... etc, and the next file would be after that block for that file. So, navigating among a lot of small files would be horribly slow... plus directories wouldn't work well like that.
Another(better) idea is to have each directory(include /) contain a separate index.
anyway though..
the key point is that its so simple. If a index node were marked somethign other than directory or file, that would mean it was special. Special nodes are where extensions are used. Extensions that could be a better index for searching, or a compressed/encrypted file, or just about anytihng. But another OS could implement this Filesystem and still read most of the disk, even with 3rd party extensions used on it. If there are compressed files or something, then of course the other OS will not be able to read those files, but it will be able to read the rest of it because the standard calls for all the extensions to conform so that they can be ignored...
Does anyone see any flaw in this idea?
I have been thinking recently about how incompatible filesystems were..
I was thinking about making a file system supporting nearly nothing, but the way it is designed, being very extensible.
Base support is:
only up to 4G size files
Unix permissions(including mode, uid, gid)
directories
256 character names(ascii)
My problem with the design is the index. If I have it include an index(or FAT or whatever) then it makes it less extensible, and more complicated to implement. But without an index it would be awful slow.
By not having an index, that would be the first sector of the data section would be the first file. at the beginning of the sector is things like how big the file is, if its a file, directory, or special, mode/gid/uid stuff... etc, and the next file would be after that block for that file. So, navigating among a lot of small files would be horribly slow... plus directories wouldn't work well like that.
Another(better) idea is to have each directory(include /) contain a separate index.
anyway though..
the key point is that its so simple. If a index node were marked somethign other than directory or file, that would mean it was special. Special nodes are where extensions are used. Extensions that could be a better index for searching, or a compressed/encrypted file, or just about anytihng. But another OS could implement this Filesystem and still read most of the disk, even with 3rd party extensions used on it. If there are compressed files or something, then of course the other OS will not be able to read those files, but it will be able to read the rest of it because the standard calls for all the extensions to conform so that they can be ignored...
Does anyone see any flaw in this idea?