Linked by Thom Holwerda on Mon 18th Aug 2008 23:33 UTC, submitted by Charles Wilson
Editorial GoboLinux is a distribution which sports a different file system structure than 'ordinary' Linux distributions. In order to remain compatible with the Filesystem Hierarchy Standard, symbolic links are used to map the GoboLinux tree to standard UNIX directories. A post in the GoboLinux forums suggested that it might be better to turn the concept around: retain the FHS, and then use symbolic links to map the GoboLinux tree on top of it. This sparked some interesting discussion. Read on for more details.
Thread beginning with comment 327274
To read all comments associated with this story, please click here.
MacTO
Member since:
2006-09-21

It's all fine and dandy to talk about better names and structure making it easier to understand the layout of the filesystem. But I think that there is a more important reason to use bundles (to borrow from Mac OS X parlance): FHS creates problems that are difficult to solve, and the solutions create complexity outside of the filesystem.

The classic example here is the need for package managers. Now package managers serve several purposes, like managing dependencies and helping users find software. But they serve another important role: keeping track of files and avoiding conflicts. Both of these functions are essential while installing, updating, or removing packages. They are also completely irrelevant in distributions like Gobo because Gobo keeps things separate.

Not, I'm not saying that FHS is pointless. There is a rational behind the structure. Having /etc and /home house most of the modifiable files simplifies backups. /bin and /sbin are separate from /usr/bin and /usr/sbin, with the former directories being of primary value to system management and recovery. the bin and sbin directories are separate because they reflect the distinction between user applications and system management applications (either because you want to keep /sbin out of the user's path, or because you're paranoid and want to force the administrator to type /sbin/su -- or whatever).

That being said, a lot of those reasons aren't relevant to your typical home computer user.

Reply Score: 3

Delgarde Member since:
2008-08-19

Both of these functions are essential while installing, updating, or removing packages. They are also completely irrelevant in distributions like Gobo because Gobo keeps things separate.


Not entirely true. It might keep the files separate - but then it goes and symlinks everything back into the old locations for compatibility with the rest of the world. The Gobo package management tools may have an easier job of tracking which files belong to a package, but they're in just as big a mess maintaining a tree of symlinks. If two versions of Bash are installed side-by-side, something presumably is tracking which one is the default...

Reply Parent Score: 2

hobgoblin Member since:
2005-07-06

the filesystem is.

the structure is like this:

/Programs/bash/version-number/"bin and friends"

inside /Programs/bash there will be a symlink called Default that point to one of the version-number dirs.

that Default symlink again is the target for the symlinks found under /System/Links. (the subdirs of Links is the basis for the compatiblity symlinks btw)

note that at any given time you can specifically call on one of the bash versions by entering the full path, like say /Programs/bash/x.y.z/bin/bash.

Reply Parent Score: 2