Managed File System

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
User avatar
54616E6E6572
Member
Member
Posts: 47
Joined: Tue Aug 18, 2009 12:52 pm
Location: Kansas City

Managed File System

Post by 54616E6E6572 »

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.
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!"
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

Re: Managed File System

Post by earlz »

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
User avatar
54616E6E6572
Member
Member
Posts: 47
Joined: Tue Aug 18, 2009 12:52 pm
Location: Kansas City

Re: Managed File System

Post by 54616E6E6572 »

earlz wrote:most OSs will probably implement your system but not allow \0 in filenames
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.

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!"
Post Reply