-
Notifications
You must be signed in to change notification settings - Fork 1
File Systems
So what is a file system, other than a bunch of pointers? What is anything ever anymore? Life is just a bunch of pointers. Or is it a graph? I don't know anymore.
~ Caterina
I experienced delight that I had not experienced programming prior when working on Ext2 in the intro OS class (CS 439). For my final project I implemented writing, and it kicked off my rediscovery of the joys of peer programming because I liked working with my partner so much.
The major requirement for this file system is that it should be distributed to support our (hopefully one day) single image OS. Because I was familiar with RAFT and the log of changes to ensure consistency, my first idea was to merge this idea with the journal in non-distributed file systems.
Having some level of RAFT consensus should not be hindered that far by the slowness of networks, as reading and writing from disk is already fairly slow. (This is me speculating).
However, before we even start to think about multiple machines, we first need some kind of file system to launch a basic user program. That is how the Baby File System was born. It is a pared down version of my Ext2 implementation from 439, which can be built up further as we add more requirements to our system.