Edit: Thank you to whoever moved this to the correct forum board.
Edit: Added in a alpha draft of the specification that really needs improvement but is better than this explanation.
------------------------------------------------------------------------------------------
Ok, so I've come up with another completely stupid idea that I'm going to provide and is going to end up completely wrong. I am writing a draft specification, followed by a small driver for this file system and welcome complete teardown of my idea. This is just a basic explanation of the idea and is by no means the current stage of my idea.
The Managed File System started out as me implementing the Simple File System (SFS) and then giving it an entire makeover to make it simpler, speed it up, etc...
It has the same general layout with only a couple of things changed in the Boot Block, what was changed was the Index Area
The Index Area contains 4 linked list heaps, A String, Extension, Index, & Directory Heap
String Heap - Length Prefixed UTF-8 Strings, Allowing at 255 Single-Byte or 63 Four-Byte UTF-8 Character strings for Filenames, directory names, and extension names. This method also allows ANY character to be used in a file name
Extension Heap - Index into the string heap for the extension name, and an index into the file heap specifying what program to open the extension with
File Heap - Index into Directory Heap for parent directory, index into string heap for name, index into extension heap for file extension, file offset into data area in blocks, size of file in blocks, time stamp, file atttributes
Directory Heap - Index into Directory Heap for Parent Directory, index into string heap for name, number of child directories, number of child files, time stamp, directory attributes
The file system allows for fragmentation by using one of the attribute bits to specify whether or not the first X-Bytes of it's data in the data area specify the next block number and it's length. This design should allow for quick file searching, smaller overhead, etc.
Managed File System
- 54616E6E6572
- Member
- Posts: 47
- Joined: Tue Aug 18, 2009 12:52 pm
- Location: Kansas City
Managed File System
- Attachments
-
- MFS.txt
- The Alpha Draft Specification in txt format
- (2.94 KiB) Downloaded 114 times
The 2nd Doctor: "I have no doubt that you could augment an earwig to the point where it could understand nuclear physics, but it would still be a very stupid thing to do!"
Re: Managed File System
Um, can't comment on most of your design..
But the whole "Allow any character in a filename" bit may sound great on paper but when you trying to display file name "My \0 Awesome \r\r\n\n File that is \b awesome" it's just going to be hell. Supporting Unicode characters is one thing, but supporting \0 will really screw over every OS design and most OSs will probably implement your system but not allow \0 in filenames
But the whole "Allow any character in a filename" bit may sound great on paper but when you trying to display file name "My \0 Awesome \r\r\n\n File that is \b awesome" it's just going to be hell. Supporting Unicode characters is one thing, but supporting \0 will really screw over every OS design and most OSs will probably implement your system but not allow \0 in filenames
- 54616E6E6572
- Member
- Posts: 47
- Joined: Tue Aug 18, 2009 12:52 pm
- Location: Kansas City
Re: Managed File System
That is quite fine, there is no restriction on that either, their is the option of having that character in your filename though and OSs that choose not to implement that character can simply display the standard [] unknown symbol, it's what we do anyways if we open a text document that has some foreign character not recognized by the file system.earlz wrote:most OSs will probably implement your system but not allow \0 in filenames
Just want to throw it out there that '/' or '\' would be the only character not truly allowed as it would be used as a delmiter when representing the full path of a file.
The 2nd Doctor: "I have no doubt that you could augment an earwig to the point where it could understand nuclear physics, but it would still be a very stupid thing to do!"