Custom UNIX Filesystem in C/C++

For my CS393/Operating_Systems class, we had to design and create our own custom UNIX-like filesystem in either C or C++. I opted to do most of mine in C++, but eventually decided to implement directories on top of my professor's provided C implementation. The filesystem consists of a master block, a block map, inodes, an inode map, and directories (which are just special inodes). All of this data is written in single bits to a file. There is a shell wrapped around this filesystem to easily test functionality and allow it to eventually become useful. This project taught me a lot about C and filesystem architecture - it also taught me that you should always establish what the total scope of a project will be before you begin. The longer the project went on, the more it widened scope, and the more hacked together my C++ implementation became. This is why I implemented directories on a C code base - my C++ code base was in no way equipped to support that kind of functionality. https://github.com/SciKarate/Custom-UNIX-Filesystem

There is way too much code to post here. https://github.com/SciKarate/Custom-UNIX-Filesystem