Linked by Thom Holwerda on Sat 23rd Aug 2008 15:37 UTC
Editorial Earlier this week, we ran a story on GoboLinux, and the distribution's effort to replace the Filesystem Hierarchy Standard with a more pleasant, human-readable, and logical design. A lot of people liked the idea of modernising/replacing the FHS, but just as many people were against doing so. Valid arguments were presented both ways, but in this article, I would like to focus on a common sentiment that came forward in that discussion: normal users shouldn't see the FHS, and advanced users are smart enough to figure out how the FHS works.
Thread beginning with comment 327763
To read all comments associated with this story, please click here.
Relation and Abstraction
by jack_perry on Sat 23rd Aug 2008 22:22 UTC
Member since:

I'm sure this isn't my idea, but perhaps it's time to dump the directory tree altogether and replace it with a relational database. Files can be associated with various tags that denote not their "location" but their purpose. Files that have multiple purposes can be given several tags. If you want to find a file, you don't have to remember which directory it's in, only which tags are associated with it. Hasn't someone already done this successfully, or studied it?

That said, I don't entirely agree with this statement you made:

Developers have stacked layer upon layer upon layer just to make it possible for ordinary people to use these complex beasts we call operating systems. Funnily enough, by providing all these layers, developers actually flat-out admit operating systems are anything but designed for users. If they were actually designed for users from the ground up, they wouldn't need all those layers.

As long as you're talking about the file system layout, I can agree with you. As a general remark about operating systems, however, I disagree strongly. The general layers sitting upon layers--say, KDE sitting on QT and X, or Gnome sitting on gtk sitting on X--is a matter of abstraction and/or code reuse. Developers are taking something that is inherently complicated and messy and distilling it into something simple and accessible. The same can be said for many, many of the layers involved in an OS. That's very different from the layout of a typical *nix file system, which essentially looks like the long accretion of various practices that grew up in the absence of standards, or for historical reasons that, as others have pointed out, no longer apply.

I don't think you meant that, but it seemed as if you were making a general comment about OS design in general.

Reply Score: 3

RE: Relation and Abstraction
by Adam S on Sun 24th Aug 2008 16:28 in reply to "Relation and Abstraction"
Adam S Member since:

I'm sure this isn't my idea, but perhaps it's time to dump the directory tree altogether and replace it with a relational database.

I've yet to see a truly persistent relational database that doesn't live in a file itself. You still need a file system underneath your database if you want it to store data anywhere besides RAM. The actually database application needs a binary somewhere too, and the contents of the file has to be dumped to disk if you want it to persist.

And, by the way, Microsoft has been trying to do this since Windows 95 with "Cairo," through 2003 with "WinFS," and they've yet to get it working. No one has been able to actually move to a RDBMS for file storage at all, let alone for an entire filesystem (which, to be frank with you, doesn't make a lot of sense anyway). WinFS ended up being much like Google Desktop, Spotlight's database, or Beagle - they're just indexes on top of an optimized filesystem.

Reply Parent Score: 1

google_ninja Member since:

WinFS isn't done yet, what we got with vista was Windows Desktop Search. Aparently they are still working on Winfs, although as you already mentioned, they have been working on that on and off since 95.

Seth Nickell started a project a few years ago to do a similar thing on linux, but to my knowledge it never really got anywhere

Reply Parent Score: 2

axilmar Member since:

In order to turn a raw file system to a RDBMS, the raw file system must be informed about the types of entities and their relations.

That's something that clearly belongs to the application domain, not the operating system domain. No two applications can agree on the binary schema of things in a file system.

And that's the reason WinFS has never materialized: even Microsoft applications could not agree between themselves on what schema each file should have.

For example, Word may require doc files to have schema X, whereas Excel may require doc files to have schema Y, for interoperating with Word.

Edited 2008-08-25 17:25 UTC

Reply Parent Score: 1

RE: Relation and Abstraction
by ari-free on Sun 24th Aug 2008 17:19 in reply to "Relation and Abstraction"
ari-free Member since:

"I'm sure this isn't my idea, but perhaps it's time to dump the directory tree altogether and replace it with a relational database"

This was actually tried in an early version of BeOS:

"At the time, the BeOS managed extra information about files (e.g., header fields from an email message) in a separate database that existed independently of the underlying hierarchical file system (the old file system, or OFS for short). The original design of the separate database and file system was done partially out of a desire to keep as much code in user space as possible. However, with the database separate from the file system, keeping the two in sync proved problematic. Moreover, moving into the realm of general purpose computing brought with it the desire to support other file systems (such as ISO-9660, the CD-ROM file system), but there was no provision for
that in the original I/O architecture."

Edited 2008-08-24 17:19 UTC

Reply Parent Score: 2