-
Notifications
You must be signed in to change notification settings - Fork 0
FS.Difficulties
It is extremely simple to write an FS implementation, so long as kept logical and simple. This is a problem when you want to try to provide a certain set of features, and want to also make the filesystem simple and efficient. Sometimes something being easy is a problem, and this is one of those cases. This refers to the FS drivers, not the block device drivers (which are separate).
The issue is that it is easy to end up redesigning the FS on disk structure, and implementing each one to test it. In the end you end up writing a great number of different filesystems, each different, each accomplishing the same goals. In the case of YFS I have implemented 15 different Filesystems so far, each of which accomplishes all the needed goals for what is needed, each of which is efficient and simple in design. And I have finally had to tell myself that if I keep it up there will not be a long term compatible FS that is simple enough to be usable for extreme long term computing, so I need to pick one and stick with it without changing the on disk structure. Thankfully the API for using the FS has never changed among all these changes (at the low level it is an AmigaDOS like API (extended to handle multiple stream files), at the OS level its API is determined by the API of the Operating systems being cloned).
So it is that some things being too easy to accomplish can make these things more difficult. The FS is not the only place this issue has popped up in the development of YASDOE, though it is a big one.