GoboLinux Rethinks The Linux Filesystems
dolbywan_kenobi writes "GoboLinux is an alternative Linux distribution which redefines the entire filesystem hierarchy. In GoboLinux we have paths such as /Programs/XFree86/4.3/ and /System/Settings/BootScripts/Reboot." By design, GoboLinux is quite a bit different from most Linux distributions, and -- notably -- is a live ISO, always nice.
or does this smack of M$ windows???
While we're at it, let's rename all the streets so we all have to relearn how to get where we want to go! Excellent!
That's not a soda... it's a caffeine delivery device!
First Link:
:-)
/usr/bin, and so on), but remember that they all point to the same place. This is a huge advantage, as it means, for example, that you'll never have to search for a library throughout your filesystem again -- it will always be in /lib (and in /usr/lib, because they point to the same place! -- no worries about compatibility). /etc, /var/log and /usr/bin in the expected places. However, some directories, such as the users' directories, didn't need to be linked to their "legacy" locations. This way, for a given user called "joe", you'll have, instead of /home/joe, /Users/joe. Notice also that the superuser's directory is no different than the ones from the other users, so, gobo's directory is at /Users/gobo. Mount points are under /Mount, not /mnt. /System/Settings/BootScripts you will find a few files that command the entire boot procedure: Init and Done run at system boot and shutdown, respectively; Single and Multi are used after Init for initialization of single-user and multi-user modes. Halt and Reboot are used after Done for each specific kind of finalization. The Options file separate site-specific settings from the rest of the scripts, and Tasks serves as a function library.
/Programs/XFree86/4.3/ and /System/Settings/BootScripts/Reboot. Like it? Read more...
/System/Links/Shared, FiboSandbox, and last but never the least, GoboHide. As usual, the ISO is compiled for i686 and is a "live CD" so you can try out GoboLinux without actually installing it, so you have no reason not to check it out. :)
Differences between GoboLinux and a traditional Linux system
Once you installed GoboLinux, your experience will be greatly improved if you are aware of the following facts...
* In the GoboLinux hierarchy, files are grouped by their functional category (executables, libraries, and so on). There are links at the classic directories you are used to (/bin,
* A little known UNIX rule states that what defines the superuser is its user id (which is zero), not its name. Through the years, there has been a convention to call the superuser "root". In GoboLinux, we chose to choose the superuser's name. It's called "gobo". It's fun, less ambiguous and even a bit more secure (since most crackers will try to login in your machine as root, you can setup a dummy, easy-to-break "root" account that will serve as a cracker-trap). In any case, if you wish to change the superuser's name back to "root", it is easy to do so.
* There are symbolic links relating most of the usual UNIX directories to the GoboLinux tree. Therefore, you will find directories such as
* Another major difference between GoboLinux and most Linux distributions is that it does not use a BSD nor a System V initialization procedure. Instead, it has its own. At
Second Link:
Overview
GoboLinux is an alternative Linux distribution which redefines the entire filesystem hierarchy. In GoboLinux we have paths such as
News
It's official: GoboLinux 006 is out!
May, 9th, 2003 at 1:05
Five months after the first alpha version, GoboLinux version 006 is now the official stable release. There are too many improvements to list here, the greatest ones being
Existing users don't need to reinstall from scratch (actually the idea is to never have to reinstall from scratch!). An upgrade mini-HOWTO will soon be posted on our mailing list.
To-do list: ideas for the future
May, 2nd, 2003 at 17:04
GoboLinux is all about cool ideas. A lot of them float around in the mailing list, but end up buried in the archives. Now gobolinux.org has a place to store them, with an optimistic name of To-do List. It is part of the documentation section.
New GoboLinux webpage u
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
I've always held that the filesystem organisation in linux is the primary reason that new users find it hard to get to grips with. Names like etc, bin, var, usr, are meaningless to newbies, and novice users can get confused with /usr/local/share vs. /usr/share
Hopefully gobo have also sorted the Installing-a-program bomb-blast, i.e. as soon as you install something it scatters a million files all over the filesystem in different directories that makes it impossible to keep track of and (sometimes) impossible to completely remove if you compiled it rather than used a package manager.
It's about time this was re-vamped if linux is to become a viable desktop OS.
Good thing about SQL core file systems is that you can have any god damn view you want, want to make it look like unix? not a problem. Define youre own View. Linux lagging behind? forsure. BeOS and now Longhorn have SQL cores.
Nice idea, though not really new. I frequently use my own directory structures on my systems to organize things better.
:)
My only comment: the directories should be lowercase. Why? Because it's easier to type, no other reason!
Bryan
This is a terrible idea... It makes a complete mess of the Unix filesystem, just so that the distro maker doesn't need to edit /etc/ld.so.conf to include /usr/lib as well as /lib
The only minor problems I have EVER experienced with libs/headers is that some will install themselves in a subdirectory, and software that uses it expects it to either not be in a subdirectory, or expects the subfolder to be in the LD/C/CPP path. That is easilly fixable, and this distro doesn't address that issue at all.
Hey, why make a mess out of the Unix filesystem anyhow??? If you want is a bit less complex, throw in a few symlinks. No need to cause all sorts of #%@^ to happen with this type of hack.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
in other locales will the directory structure still be in english?
Now would anyone care to guess how many knee-jerk posts there will be, like "if you like a sane directory hierarchy, use OS X, ya weenie!" or "if it's not broke, don't fix it!" To which I respond, where do you keep your Mozilla plugins?
Much applause to the guys who were willing to think a little more critically about what we can do to make Linux just a little better.
Kuro5hin also has a good article on GoboLinux.
In GoboLinux, we chose to choose the superuser's name. It's called "gobo". It's fun, less ambiguous and even a bit more secure (since most crackers will try to login in your machine as root, you can setup a dummy, easy-to-break "root" account that will serve as a cracker-trap). Remember to set the roots prompt to PS1="C:\>" for the ultimate cracker-trap! :)
--
One by one the penguins steal my sanity...
Yeah,, yeah, standards are good, you have many to choose from.
sgis ddo ekil t'nod i
I know the unix file hierarchy well, but I've always thought it was arranged haphazardly. Why are there six different places for system executables? (/bin, /sbin, /usr/bin,/usr/sbin, /usr/local/bin, /usr/local/sbin)? That's not even counting the alternative directories that some programs like to be installed under like /opt, or X11 programs.
The one thing I don't like is that they renamed root to gobo. While root doesn't have much inherent meaning to it, gobo has even less. If you're going to rename root, why not pick something more meaningfull like administrator, admin, superuser, BigManWithTheTopHat, etc? I guess I haven't checked recently, but is linux still limited to 8 characters for the username?
AccountKiller
If you think the Unix filesystem isn't a mess currently, then either you have to look again, or you're using a floppy distro under 2 meg in size.
Even when you know what each directory is meant to have in, which the rather excellent LFS is good at doing, it's still an awful system. In fact, if you know where everything goes and why, it's even harder not to consider it a bad system. Unix was alright in its day, and certainly better than some other popular operating systems around now, but I'd hardly claim that the standard filesystem for Unixes is anything but a hack upon a hack upon a hack.
Personally, I really liked the idea of reorganising directory structure. Unix isn't perfect, and can, in many, many, many ways be improved.
The website gobolinux.org is currently hosted on a very "humble" server. If anybody is able to make any mirrors (especially for the ISO image), please do so. We were arranging some mirrors when we posted on Kuro5hin, but as probably always happens to everyone, we were not ready for Slashdot yet. If you want to help, drop a message to lucasvr(at)terra.com.br and we'll arrange something. Thanks!
Allow me to expand a little on why this is the case:
Case-insensitivity is a complicated business as soon as you leave the simple domain of the english language, and this is the reason you usually only head english-speaking people wanting case-insensitive file systems.
An example: German has a letter ß, which in upper case becomes SS. tchüß -> TCHÜSS. Now, when lowercasing, you can't just map SS to ß, instead it becomes ss. I.e. TCHÜSS -> tschüss.
Do you start to realise the implications this has on a case-insensitive file system? (the question to answer is: is "tchüß" and "tschüss" considered to be the same file?)
It gets worse. In french, as spoken in france, the letter ë is converted to uppercase E. I.e. citroën -> CITROEN. But in Canadian french, it becomes Ë. I.e. citroën -> CITROËN.
When you start to bring in other languages, for example the Japanese full-with and half-width latin characters it starts to get really messy.
In order to handle all of this in a case-insensitive file system the file system itself needs not only to be aware of the intricate details of character encodings and casing for different languages, every single file system operation would also have to look at the currently selected locale in order to determine wether two names are equivalent or not. If you believe this is simple, read the FAQ's at the Unicode site and you will never again suggest that the file system should be case-insignificant.
However, making a user application work independently of case in file names is a reasonable idea. However, it would have to be specified by the UI framework, for example Gnome. I'm not sure exactly if that idea would work at all since I haven't given it much thought.
I'm so happy the Unix file system is case-significant.
/sbin utilities needed to get the the system to a booted state
/bin bare essential utilities needed to manipulate the system once booted or before multi-user mode
/usr/sbin system control programs needed to manage or alter a system once in multi-user mode
/usr/bin/ programs for interacting with a multi-user system
/usr/local/sbin/ system control programs that don't come from the os/hardware vendor
/usr/local/bin/ other programs that don't come from the os/hardware vendor
.org, .net and .com have lost their meanings.
Of course many modern lunix distributions break this by placing files wherever people think is cute, much like how the
--- I do not moderate.
There are many more important areas that could be improved, like a consistent clipboard, working drag & drop, unique hotkeys in menus (or: hotkeys at all!), KDE's Start menu in most distributions containing literally dozens of programs, etc. etc.
If somebody uses the Linux shell, remembering that /dev means "devices" and what /usr/bin is for is the least of his worries...
Martin Kotulla SoftMaker Software GmbH
SoftMaker Office for Windows|Linux|Android
Just what we need. Linux distributions named after Fraggles.
This is interesting, but it really doesn't get there. Mind you, I have always been a large advocate of changing the unix file structure: It is a messy, disguisting frankenstein of combinations from the old unix system days, that even experienced unix hackers get messed up in. Hell, until I got a book on porting unix software, -I- didn't know how the unix file structure was defined, and I've been doing this for 5 years!
/usr/local for BSD, the same one is supposed to be in /opt/bin for SysV. It's a mess!
As for the "Frankenstein" description, consider this: When a file is supposed to be in
What needs to happen is that a new STANDARD needs to come out, and everybody needs to support it. Of course, nobody will ever support new standards, so that's out of the question, but if you really want to improve the unix file structure you have to do that. Anything less than that, and you're simply adding to the fragmentation problem.
Finally, there are two technical problems with this guy's method, too. Firstly, all the directories use Capital letters, which is unneccessary for clarification, AND makes it harder to type. Same goes for the full name of the folders: reducing "Executables" to "exe" would be just as recognizable, AND a lot easier to deal with in a shell command.
You have no right to judge how people live their lives. Disagree if you want, but don't go feeling all smug and supperior because you're doing something that other people aren't. That's just ego stroking over your hobby.
Do you understand anything about people? Different people are different in different ways. While you may like to think that people don't want to sit down and understand are stupid, you're ignoring people who don't have time for things, or simply aren't interested in learning something. Part of how humanity has moved forward (besides designing tools that reduce work by not forcing you to spend years in university for every appliance you own), is by specialization. I can't know everything about everything if I want to get anywhere in life. As early as grade 9 I need to start specializing the classes I take towards an eventual career if I want to be in that career by my mid-20s.
If thinking you're better than other people because you know about computers is how you base your fragile ego, I really want you to go outside into the real world and do some growing up. Your intollerance is disgusting. Grow up. No one is better or worse than anyone else because of what they know, people are only better or worse because of how they act. Your actions leave much to be desired.
People like you are the reason that most people stop reading Slashdot or Kuro5hin.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
In my town we have a mirrored setup, 4th street and south 4th. That way we can expand all that we want too. I once lost control on south 4th and dove over the median, the other lane, and down a hill, while spinning around. And then drove through a fence.
autopr0n is like, down and stuff.
GoboLinux Rethinks The Linux Filesystem
Filesystem Hierarchy Standard has included the BSDs since 1995 - it's more than just Linux. I'm all in favor of questioning the assumptions to avoid getting caught on a local maxima, and I think this one is a dead end. FHS has some historical baggage, but it also has the strength of years of tempering.
Stop-Prism.org: Opt Out of Surveillance
I've been suggesting this for a long time, and I usually only get blank stares. I have yet to find ONE good reason to maintain the "traditional" unix filesystem layout on a desktop machine (well, even server, but let's not go there).
/apps/[appname]
/apps/[bin,lib,doc,conf] if you wish, like Stow does.
/sbin) live in a mirror structure at: /sys/[appname]
/sys dir.
/etc.
The Unix tradition of splitting up applications by *type of content* instead of *application* is crazy. Thre are two bad reasons: 1) "Hey, I can throw every little binary in 'bin', go me!" 2) "Hey, I can throw every little library in 'lib', go me!". Parts of an application are hardly ever dealt with seperately. Does anybody install only the binaries of an app, and not, say, it's libraries?? or it's docs? No, these all belong to a cohesive unit that should be installed, uninstalled, moved, and run together.
As for #1, when your primary interface to the OS is a GUI desktop, having every piddly executable on your system in one directory doesn't really confer any benefit. As for #2, not all applicatinos need to use all other applications to begin with, and for those who do, why should those libraries not then be considered reusable common libraries, and then and only then, linked or put in a common place?
The system i'd propose would look something like this:
all applications have a structure like:
[appname]/[bin,lib,doc,conf]
All user applications live in:
You may choose to symlink the nested app dirs into
All "system" apps (e.g. stuff that is typically in
Again, any utility binaries or common libs *may* be symlinked into the base
Application configuration would live with each app, no more throwing every fscking config file into the mud pit of
Things like 'man' would index *into* the seperate app dirs, not the other way around.
It's 10 PM. Do you know if you're un-American?
Not just for newbies. Here's the question: is there ANYTHING inherently "better" about the old UNIX filesystems compared to possible alternatives?
What advantage is there to /usr/lib and /lib over "/libraries"??
None.
The staunch unwillingness here to seriously consider alternatives makes me think the Linux community is not NEARLY as "forward-thinking" as claimed.
I use Linux too. I dual-boot a Linux (Gentoo) and a Windows (which one depends on speed of PC) on all my machines except my LAN server (that's Linux only). Linux is my main OS. I've learned the file system. But I will not pretend that it's intuitive or something that we should fight to preserve.
Bitch bitch bitch bitch bitch. Wow, I'm really suprised at the venemous reaction from you guys. Now, no matter what you think of this idea, some of the things I've seen posted here are disgusting.
All this is is a different filesystem in ONE distro. It's not being federally mandated, nor is it going to become a standard that you have to deal with. It's one group's solution to what they perceive is a problem. If you don't want to use GoboLinux, then don't. There's no reason for everybody to pull out their pitchforks and torches.
I even read some post where the guy said something along the lines of I hope they die a quick and painful death. That's fucking pathetic.
"Freedom is letting people do things that you don't like." -Linus Torvalds
Maybe distro developers could try creating better ways of teaching the Linux directory structure instead of changing it. For example, a sidepane that appears in folder windows, describing the purpose of the folder currently being viewed. Or perhaps Windows-esque "tooltips" appearing over color-coded system folders that provide similar information. Both methods would be infinitely more convenient than constantly referring to documentation.
The directory structure in Linux is one of the biggest shocks to experienced Windows users who are accustomed to navigating the files and folders of Windows, and its complexity is a major area that needs to addressed if Linux is to make gains in the desktop arena.
Personally, I think it sounds like a great idea. If you're putting together a desktop system, there's really no need to carry around the old UNIX cruft. Honestly. And as much as the fanboys jizz all over OS X, I'd think this would be a welcome change. I suppose if this came with a system capable of real translucency and drop shadows, the l33t boyz would be jizzing instead of bitching, eh?
Stating on Slashdot that I like cheese since 1997.
>>I even read some post where the guy said something along the lines of I hope they die a quick and painful death. That's fucking pathetic
This is why Linux will never succeed on the desktop. The guy is making a change that could improve usability. It may work. It may not. But before it is given a chance to succeed, all sorts of losers come out of the woodwork and denounce him for even trying.
During the 80s, the UNIX with the biggest user base was... XENIX (made by none other than Microsoft), which was later sold to SCO, and which was one of the systems used as a basis for the POSIX standard. NT (and, subsequently, W2K and XP) does comply with a big chunk of the POSIX standard (I suspect one of the reasons was to make it easier to port software from Xenix to NT - Microsoft didn't want to lose market share to the other UNIXes). In some ways, though, NT is closer to VMS than to XENIX.
D =97&ArticleID=4500
D =97&ArticleID=449
Two old but interesting articles about the evolution of NT:
http://www.winntmag.com/Articles/Index.cfm?IssueI
http://www.winntmag.com/Articles/Index.cfm?IssueI
NTFS has other nice features such as symbolic links, named streams, non-continuous files, etc.. I learned a few tricks a couple of years ago in a newsgroup discussion from a guy working at Microsoft. Some of these features appear to be completely undocumented (or at least the documentation is very well hidden).
RMN
~~~
I think that most of the resistance to gobolinux has to do with the fact that it's different, not on any merits or faults of these differences. There are a whole bunch of UNIX geeks out there, especially in the university environment, who would lose their jobs if UNIX were easier to use and more intuitive. Just because you're semi-autistic and can manage to hack out UNIX commands and use the CLI doesn't mean that you're smart, or elite or anything else other than that you have a memory for arcane trivia.
/home to /Users. This is not less confusing, only confusing in a different way. Why would a user be looking for his files under a directory called Users (even supposing he was browsing from / to begin with?)? To the kind of nonsavvy person this is supposed to cater to, Users is not going sound like a place for users personal files, it just sounds like it from the perspective of engineers who are used to thinking in such terms. An average joe is much more likely to descend into a directory called home to see if it's his home or not.
/Users and not /users? The capital letter wont really matter to your desktop users, but it sure as hell matters to a command line junkie. Tab completion is case sensetive (even on OS X where the filesystem is not) and over time it's a LOT more effort to hit SHIFT+U than it is to hit u.
I think most of the people cheering gobolinux on are doing it out of ignorance. A few probably are well aware of what it all means, and I am eager to hear their reasoned opinions.
It's got little to do with it just being different. Okay, some (ie "It's different but not better so why change it at all?"), but not much.
Gobolinux proposes changing
And notice the difference here... why
I could continue like this, but I'm sure you get the idea. There are good reasons for the way things are, it's not simply a matter of intertia (although, admittedly, a lot of it is) and it is most certainly not simply a desire of the elite to keep themselves in power.
I once advocated radical changes such as gobolinux proposes, but then I investigated why things were. And once you know why, it becomes very hard to argue to change. You become aware of what kinds of problems must be taken into account. I am sure most Linux distro's have had someone do what I did, and they seem to mostly reach my conclusion: It's hard to change, there are too many technical reasons why it might be a disaster, too many personal feelings are involved, and the system as it is Works Now. If it aint broke (or at least if it aint real broke) don't fix it.
I want my Cowboyneal
in fact, libraries are a new thing... in those days everything was statically linked. i really dont see how this relates to RAM being cheap though... or how you see gobo as being 'logical' when the *NIX filesystem is the perfect example of a logical FS heirarchy. if you dont see it as logical, then you don't understand it.
It was called "SCO OpenServer 5", and I first used it in 1994. It was hideous. Any time you installed a traditional unix program you shat all over the symlink hierarchy and generally hosed something.
It made mangement of vendor supplied packages slightly simpler, but the whole point of open systems is that you are not locked into dependence on your OS vendor!
-- veni vidi nuclei deceri --- I came, I saw, I dumped core.
The BitTorrent for GoboLinux is available at:
http://f.scarywater.net/GoboLinux-006.iso.torrent
(those using the gobolinux.org torrent are advised to switch to the scarywater.net torrent, since the gobolinux.org one is based on a bttracker running on a machine with a dynamic IP)
Are you suggesting that anyone needs more than 640KB...?
RMN
~~~
This is already off-topic, but NT is has some POSIX compatibility so that Microsoft can sell it to the government. The US government requires POSIX compatability for all its OS's. And, btw, the POSIX subsystem in NT is totally broken -- MS made sure it will never run anything but the most basic stuff.
Hopefully GoboLinux and LinuxStep will join the the MHS standard so that this kind of improvement can start to spread to other distros.
/bin => /System/Commands /sbin => /System/Commands /boot => /System/Boot /dev => /System/Devices /etc => /System/Config /lib => /System/Libraries /proc => /System/Process /mnt => /Mount /opt => /Apps /tmp => /Temp /home => /Users /usr/bin => /System/Executables /usr => mostly placed under /System /var => mostly placed under /System
/Apps directory rather than cramming everything into /usr.
http://mhs.sf.net
The goal of the MHS project is to define a Modern Hierarchy Standard for UNIX-like operating systems which will further enable them to evolve, innovate, grow, and compete with Windows and other modern OSes.
Specifically, MHS technology will provide the following benefits:
100% Application Directory Oriented
Internationalization of Directory Names
More Intuitive Directory Names
Fewer Root Directories
Support for Case-Insensitive File Systems
Full Coexistence with Legacy FHS
Increased System Flexibility
A new hierarchy will be a big enough change to make distributions switch to application directories.
Set of environmental variables pointing the location of major system directories.
Applications would no longer need to hard code directory names.
System level directories grouped together under a common directory. (/System)
Currently, the directories are expected to be moved to the following locations:
All paths will be lower-case on a case-sensitive file system. As shown otherwise.
Application developers and distribution makers will need to use the
The autoconf family of tools will be patched to support the new hierarchy which will make most applications translate easily.
Although it can still be done, MHS will not support the same level of shareability (i.e. mounted over a network) as the legacy FHS standard.
FHS can be emulated via symlinks and MHS can be emulated on existing FHS systems. A kernel/file system hack of some kind may be done to have the legacy directories disappear in directory scans, to help improve user friendliness.
In addition to the standard, the project is developing a set of scripts that will setup the new hierarchy on existing FHS compatible systems.
The standard will not be finalized until a Linux distribution ships based upon it.
Bryan
CT