Brendan wrote:
One of the problems with UTF8 is that characters are in groups according to the type/s of language/s that use them, and the encoding means that a character consumes between 1 and 4 bytes. This means that for English 20 characters take 20 bytes, for Byelorussian 20 characters typically take 40 bytes, for Chinese 20 characters typically take 60 bytes, etc.
BFS is limited to 14 byte file names and doesn't support directories. This works out to 4 Chinese characters or 7 Byelorussian characters, and is too limited to do "pretend" directories (i.e. by prepending the path to the file's name).
The entire file system is also limited to 4 GB, which isn't important at the moment, but may become a problem in the future - (e.g. storing a few high defininition videos or something).
Also (and I may be completely wrong here), the super block is stored at the very beginning of the disk and the first 32 bits (at offset 0) is used for a magic number. This makes it difficult to use bootable 80x86 media where the BIOS is hard coded to jump to magic number. BFS is designed for booting, so perhaps I've overlooked something.
That's pretty much limiting enough for it in its current form to be unusable. However, the driver for it is clear and similar to what we're trying to do, so I'm hereby volunteering to make a linux driver for our FS. Makes testing your OS a lot easier, when you have a simple filesystem you can write to (esp. if it isn't patented from here to japan and back). Also, it makes for practice for my own fs in linux (which'll be quite a lot harder to make).
Maybe I'm just too fussy...
Surely not. Still, compared to other drivers and filesystems (procfs, cramfs, ext2, fat, romfs, ramfs) it's the closest I could find, and it's pretty clean. It was more about either using the fs itself (which I didn't know up to now, so that's a no-no) or using the driver as basis for our own.
Then there's the point of a driver for Windows and one for MacOS X. I might be able to do the windows one in some time, but I can't make a MacOS driver. The Linux one will be PD, the Windows one as far as I can make it also, I would prefer the MacOS one to be PD as well. That way the filesystem is entirely open and free in any form of meaning so people can use it just as easy as FAT (sometimes easier). I'd also prefer if somebody wrote an OS-independant version in multiple languages (I'll help translate to some), among which at least pure C and assembly, since these are used by quite some people doing OSdev that are not specifically going to try to support it.
As a final point, we'll need a public website that carries out the message and content, publication on technical magazines (write to linux magazine, slashdot etc) and we could use some active approaching of flashdisk device manufacturers and flashdisk manufacturers for support of the file system.
I've noticed the short name SFS is still free. It could be used for StarFS, but I think we'll stick with the long one, so it could be used for this one. Two suggestions: Slim (as opposed to FAT) or SimpleFS (or just SFS).