Right, so I'm gonna try to explain why GFS with an analogy. Why, because it popped into my mind, and I thought, "Damn, that's a good analogy." That's why. (Besides, its kinda funny to think about.)

So then: GFS, The Card Game.

First, in simple terms, a file system is just a set of rules. Just like card games are just a set of rules. People play the games, according to the rules. Most of the time they think it is fun. ^_^

This game has one very interesting feature, this feature pretty much affects every rule in the game. This is a very important feature. The feature is that the game never ends. Ever. (Well, not completely true, but that is one of the main goals.) This immediately creates two noticeable oddities. No player can play forever, and cards wear out and fall apart over time. So too keep the game going, we need to be able to replace cards and players.

But we don't just want to keep the game from completely stopping, we'd like to not even have to slow down for new players or cards. So we have to setup the rules so that a player can join, and leave, at anytime. Why leave? Because the act of replacing is the joint acts of leaving and joining. This is interesting. We now have a game where the players can leave, and join, at anytime. So long as there is at least one player and some cards, the game continues.

We should start a game. At the very beginning, some cards are dealt out into hands. The rest put into the center. The center is the free space, the unused cards. Each player holds a few cards, and has a area in front of them where cards are layed. Any player can lay cards in this area, not just the area in front of them. In short, all cards on the table are accessible by all players.

Now, just because there are a couple of hands dealt, doesn't mean we need player for them. We need at least one player. This player can make moves, and access any of the cards. At any time here on, others can sit down, and start playing a hand. At any time, a player can make a closing move, set their hand down, and leave. If for some reason they cannot make the closing move (say their car is getting towed, or something), one of the other current players or a new player can make it for them. The game does not stop, though it may shutter a bit.

Say we've got four hands out, and a fifth person comes and wants to play. They ask one of the current players, and if there is enough cards, that player makes a move that adds the new person. We now have five players. We can keep adding hands until we don't have enough extra cards. There doesn't necessarily need to be new players, but really, why add hands when there is no one to play them? There also, may be at some time some rules to take extra hands out.

Now, we still have cards that get worn out. So again, at anytime, a player can make a move that will add new cards to the pile of free ones in the center. Likewise, cards can be removed from the game by a move the takes them out of the free pile. This lets us replace old cards. We do this because, again, we don't want this game to end.

Now, since we want this game to keep going, we will add some rules for ejecting players forcibly. Just in case someone starts cheating or something. This way the other players can keep playing. We hope not to need this, but the must go on.

Now this does open us up for some evil things, like dealing out all the free cards into hands. Or someone removing all of the free cards. Or players starting to eject each other without reason. Maybe at sometime we'll have rules for these things. In the mean time, we hope for common sense.