This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

Feature: Linux

Introducing GoboLinux 012

By Rui Lopes on November 03, 2005 (8:00:00 AM)

Share    Print    Comments   

One major problem with the Linux world is the overwhelming number of redundant distributions, especially in the desktop-oriented area. It's rare to see a new distribution that isn't a Debian or Red Hat clone in disguise with an extra feature or two, or that dares to take a bold departure from the status quo. One of those rarities, however, is GoboLinux.

Contrary to most Linux distributions, GoboLinux chooses not to follow the Free Standards Group's Filesystem Hierarchy Standard. Gobo's authors thought the traditional Unix directory tree was unsuitable for a modern desktop Linux distribution and decided to take the path that another desktop-oriented operating systems has been following for years -- namely, Mac OS X.

Along with a more logical, intuitive, filesystem hierarchy, GoboLinux also took another common concept employed in other desktop OSes: All the applications are installed into the same place, and in turn, each application is self-contained within its own directory. This makes it easier to install, remove, and keep track of new programs.

Installation and other trivial points

There are three ways you can try out GoboLinux. You can burn it to a CD and install it to a hard drive, or you can run it as a live CD. The third option is a little unconventional but very interesting: You can download a rootless Gobo, which is "a minimal installation of the scripts and directory hierarchy inside your home directory." This means you can recreate a mini-Gobo system inside the home directory of another Linux distro. You can also install packages inside the home directory. This is handy for people who need to use a restricted system (university students, for instance), but who want to be able to install their own applications. And it fits on a single diskette.

When you boot your GoboLinux CD, you're given the option of starting X -- and with that a live CD session -- or installing the system on the hard drive through a text installer. You can also start a graphic installer from the live CD session. Both the graphic and text installers are the epitome of simplicity, and you can happily get your GoboLinux system installed in less than 10 minutes without breaking a sweat.

The few applications Gobo includes are enough for you to get down to business. Gobo follows the minimalist approach of "one app per task." This release comes with KDE 3.4.0 as the default desktop environment -- no GNOME. If you want something lighter, WindowMaker 0.80.1 also comes bundled. It comes with X.Org 6.8.1, and the kernel is 2.6.11.9. When you boot up, you get the same desktop environment as with the live CD (take a look at the screenshots on their Web site). The applications included by default with the system are standard OpenOffice.org, the Gimp, XMMS, Firefox, and so on. KDE was unusually responsive on my slower box, and even OpenOffice.org ran fairly well. After trying the distro for a few weeks, I've yet to see it crash. Gobo correctly detected and configured the hardware on both my test systems (a 350MHz Pentium II with 128MB of RAM and an Athlon 1800+ with 768MB).

Something that normally isn't worth mentioning is the console. Gobo uses a customized zsh for the console, and it's one of the best I've seen in any distro.

The tree

And now, the juicy stuff. The directory structure at root level in Gobo looks like this:

/Depot -- a storage area where you can put your personal files (documents, media). It can also serve as a public area in a system with lots of users, similar to the /pub directory in other distros.

/Files -- non-essential files related to the system, such as Documentation, Codecs, Packages, Fonts, and Plugins.

/Mount -- take a guess.

/Programs -- all the applications installed on the system. Resembles the "Program Files" of Windows or the "AppFolders" of Mac OS X.

/System -- contains files vital for the system, such as the kernel source, headers, devices, and settings.

/Users -- the /home directory equivalent. Note that the superuser also resides here.

Simple, isn't it? If you don't know where to find something, you can get there using almost nothing but intuition. Files and folders are organized into functional categories. The most complex directory in the Gobo tree is /System, where you've got what once used to be /boot, /usr, /etc, /dev, and others all gathered under one roof; since they're separated by logical directories, even here things start to make a lot of sense after a little usage. Although some people may frown when reading this, the layout is nice and clean.

However, under that pretty facade, Gobo has a little secret. The developers had to maintain the traditional Unix tree, for legacy reasons. (The same thing happened with Mac OS X, which also uses a similar "dirty trick" to hide it.) You can still access the old tree, and even configure the system to show only the directories you want, by using a kernel patch called GoboHide.

Package system

The creators of GoboLinux used the Linux From Scratch procedure to assemble the distribution, and they took the opportunity to personalize more than just the directory structure. They wrote simple scripts to deal with most of system tasks a power user may wish to handle. For instance, the boot process isn't BSD or System V: Gobo has a set of native scripts to deal with the initialization procedure, located at /System/Settings/BootScripts. The same goes for installing and compiling applications.

Gobo's package installation system is called Compile, which its authors say resembles Gentoo's Portage or FreeBSD's ports, but is much more minimalist in design. As happens with the FreeBSD ports, there are two ways to use the package system: Install the desired application using binary packages, or compiling it from source. The binary packages for Gobo are simply good old .tar.bz2 or .tar.gz archives. When compiling packages from source, you use "recipes," which are small files containing URLs and compilation instructions. Let's say you want to install XMMS. Just type Compile xmms and voilà! Compile should download a recipe for XMMS from the repositories to compile and install the application, with the required dependencies if needed. The process is neither otherworldly nor new, but it's efficient. You can also find a centralized way of dealing with all the scripts for installing and removing packages in a graphical tool called Manager.

The list of packages available from Gobo's repositories isn't impressive, but it keeps growing every day. If there's no package for a program you want, you can download the source of the program from the Net and compile it with the Gobo scripts so that it's installed like a Gobo package. The program will be listed in the Manager, and you can even remove it as though it were a Gobo package without leaving a mess behind in the filesystem.

Packages are installed in /Programs and kept in separate, self-contained directories that take into account their version (e.g. /Programs/Amarok/1.1.1). This allows you to keep track of all the versions of an application installed on the system. Another small sample of the convenience of the Gobo package system: You can turn an app "off," removing the executables from the execution path and headers and libraries from the lookup path, using the DisableProgram script. That way you can install a newer version of an application and test it without causing conflicts with the older version already installed. To remove a package from the system, you can use RemoveProgram, or, given the way the Gobo was designed, just remove the program directory with a simple rm -rf.

Conclusion

The authors of GoboLinux claim that it isn't a distro aimed at newcomers to the Linux world, but rather at power users who are tired of the limitations and dogmas of traditional distributions, or who simply want to try something new. I've used the word "simple" throughout this article to describe GoboLinux, but don't mistake this for "user-friendliness." Its simplicity is more suited to experienced users with a good understanding of Unix and Linux, where it can save them a great deal of time. Gobo could give away some of that "complex simplicity" to become more user-friendly, but I wouldn't want that. Instead, some of the bigger desktop distributions for whom user-friendliness is a paramount concern should take some ideas from Gobo. The traditional Unix tree may be well suited for server environments, but the same is not true for general-purpose desktop distros and the average home user.

That aside, I was impressed by the way GoboLinux handled. This distribution clearly has a well-defined identity of its own, and the authors' philosophy shows in every detail of the system. The system is fast, without a grain of bloat in it. For such a young project, it's also very stable. It doesn't feel like a mess, as some people have pointed out to me; instead, it feels like a mixture of Slackware with the usability and convenience of desktop OSes such as Mac OS X, Windows, or BeOS. It's not Ubuntu, or Gentoo, but rather fills a nice niche in between them for the seasoned user.

Rui Lopes is a Portuguese Web designer and filmmaker who has a wide range of interests in the technology field.

Share    Print    Comments   

Comments

on Introducing GoboLinux 012

Note: Comments are owned by the poster. We are not responsible for their content.

what problem?

Posted by: emk on November 03, 2005 10:33 PM
the author writes:

" One major problem with the Linux world is the overwhelming number of redundant distributions..."

This is a common opinion but<nobr> <wbr></nobr>.. whats the problem?
Should we have only a couple distributions?

Let me rephrase the author's statement:

" One major problem with the Beer Industry is the overwhelming number of redundant beers..."

Think about that as you walk down the beer aisle. I think one major problem with Linux pundits is the overwhelming number of claims they make that there are too many Linux distributions.

emk

#

And does not meet standards

Posted by: Anonymous Coward on November 03, 2005 10:50 PM
Since this distribution doesn't meet standards, it will immediately eliminate the generic application installations...

Which use the LSB paths in<nobr> <wbr></nobr>/opt or<nobr> <wbr></nobr>/usr/local, or sometimes<nobr> <wbr></nobr>/usr/bin,<nobr> <wbr></nobr>/usr/lib,<nobr> <wbr></nobr>/usr/etc...

Not a very usefull distribution.

#

Re:And does not meet standards

Posted by: Joseph Cooper on November 04, 2005 01:03 AM
Generic application installations?

What generic application installations?

The LSB does not define anything for graphical software or practically anything useful. You can't make a gtk program LSB compliant because gtk isn't even in the LSB.

You know that Linux binary compatability is hell... Period.

Anyway, it explained the system for compiling and installing things. It's a closed network.

Besides, you can install things manually from source anyway, you just use --prefix to put it in the right place.

Now, find me a useful program that's
a) Easy to install from a binary
and
b) Not already included in most distributions.

and I'll accept that you may have a point.

Otherwise, I'm tired of people who say things to the effect of, "Don't come up with an easy way to install software, cause it might break the retro system contrived in the 60s that's a pain in the ass and isn't applicable to desktops."

Getting stuck on stupid like that is the first step towards sucking.

#

Re:And does not meet standards

Posted by: Anonymous Coward on November 05, 2005 12:13 AM
Otherwise, I'm tired of people who say things to the effect of, "Don't come up with an easy way to install software, cause it might break the retro system contrived in the 60s that's a pain in the ass and isn't applicable to desktops."


But how does the GoboLinux way make software easier to install ? AFAIK, it's just renaming and shuffling directory around. It does not touch the issue of binary compatibility, distribution format or human interface to software installation.



And how is the traditionnal way of doing thing "not applicable to desktop" ?

#

Re:And does not meet standards

Posted by: Anonymous Coward on November 04, 2005 01:06 AM
From the article:

'However, under that pretty facade, Gobo has a little secret. The developers had to maintain the traditional Unix tree, for legacy reasons. (The same thing happened with Mac OS X, which also uses a similar "dirty trick" to hide it.) You can still access the old tree, and even configure the system to show only the directories you want, by using a kernel patch called GoboHide.'

It may be that this GoboHide thungy works around this. If so, great. If not, I'd agree: not very useful.

#

Nothing like Mac OS X filesystem

Posted by: Anonymous Coward on November 04, 2005 10:41 AM
Gobo's authors thought the traditional Unix directory tree was unsuitable for a modern desktop Linux distribution and decided to take the path that another desktop-oriented operating systems has been following for years -- namely, Mac OS X.

Gobo's approach and the Mac OS X approach are vastly different. It's only the end result, a simplified filesystem for the casual user, that's similar.

OS X uses a very traditional (though not completely FHS compliant) Unix file hierarchy, with a few additions (like<nobr> <wbr></nobr>/Applications for appfolders). It also sets up a set of standard folders in your home directory (~/Music, ~/Pictures, etc.). The traditional Unix directories like<nobr> <wbr></nobr>/usr are present, but hidden in the default user interface (get to a terminal and you'll find them). So Unixish software will compile and run without special tweaking, but typical non-expert users get a simple, readable, understandable file system - Applications, Music, Pictures, etc.

Gobo doesn't keep an FHS hierarchy at all, nor anything resembling one. It uses its own, custom, simplified hierarchy from top to bottom. Many, many programs refuse to compile or run with that odd hierarchy. So Gobo patches the programs. To help massage some particularly stubborn apps into running on Gobo, invisible symlinks named after a few standard locations like<nobr> <wbr></nobr>/sbin are used which link to the real locations. But they don't actually exist, and only a few directories are simulated in this way.

Two very different approaches. Many would say that Gobo's approach is more "pure" and attempts to fix, rather than hide, the confusing nature of the Unix filesystem for non-technical users. But it's a troublesome, unfamiliar mess for developers - and, point of fact, it breaks software (though Gobo probably has a point that apps shouldn't be relying on hardcoded paths anyway, even if they are standard Unix paths relied upon for decades). Perhaps Apple's approach, while it is a bit more of a kludge or paint-job, is a better idea. Sure, it's less "pure," but there's no muss or fuss for developers or technical users compiling apps. All the traditional stuff is still there, in the traditional locations, just hidden from the prying eyes of inexperienced users. The author's seeming unawareness of this difference is perhaps the best evidence of Apple's success in creating the illusion of a simplified hierarchy.

#

Re:Nothing like Mac OS X filesystem

Posted by: Anonymous Coward on November 07, 2005 08:53 PM
Many, many programs refuse to compile or run with that odd hierarchy. So Gobo patches the programs.


Not true: the idea is not to patch but to pass appropriate options to configure and/or make, and to link anything of the "odd hierarchy" against a legacy hierarchy to make sure that harcoded path don't get application to complain.

To quote Hisham H. Muhammad (a main developer of gobolinux):
"We persuade them to cope with the GoboLinux tree with compilation options whenever possible. However, there are many programs that can't cope completely, featuring hardcoded paths in their sources and whatnot. Ultimately any free software can be patched to cope, but I'm not sure if we have enough manpower for such a task and maintain it afterwards. It would be, at the very least, a big hassle, and I generally like to reduce the applied patches to the minimum (btw, the patches I normally apply are those related to compilation with GCC3 and security patches in the base packages, usually from Linux From Scratch)."

"Experience has shown that very few applications need to have their Makefiles dissected in order to cooperate."

"we strive for each project to keep its own identity. Whenever possible, we ship every application with unmodified sources."

#

relief joint

Posted by: Anonymous Coward on May 28, 2006 07:17 PM
[URL=http://painrelief.fanspace.com/index.htm] Pain relief [/URL]

  [URL=http://lowerbackpain.0pi.com/backpain.htm] Back Pain [/URL]

  [URL=http://painreliefproduct.guildspace.com] Pain relief [/URL]
[URL=http://painreliefmedic.friendpages.com] Pain relief [/URL]
[URL=http://nervepainrelief.jeeran.com/painrelief<nobr>.<wbr></nobr> htm] Nerve pain relief [/URL]

#

Re: relief joint

Posted by: Anonymous Coward on March 29, 2007 01:57 AM
You can substantially reduce or even completely eliminate many kinds of chronic pain with a special diet that's rich in certain carbohydrates, and low in fats, protein and sugar.

Substantially increase your consumption of complex carbohydrates, these include foods such as wholegrains, ( with the exclusion of corn), beans vegetables and fruits, so these make up 70-80% of your food intake.

Avoid refined carbohydrates, such as sugar, honey, and syrups, and cut your total sugar intake by at least 40%.

Avoid all fats and oils including butter, margarine, meat fats and lard, as much as possible. Also avoid fatty meats, whole milk, cheese with more than 1% fat content, and egg yolks.

Give both caffeine and alcohol a miss.

Take an amino acid supplement called tryptophan, this is converted by the body into serotonin, a pain relieving chemical.

The combination of the special diet and the tryptophan should dramatically elevates your pain tolerance.
<a href="http://www.nice-priceuk.com/" title="nice-priceuk.com">http://www.nice-priceuk.com/</a nice-priceuk.com>

#

Re:Nothing like Mac OS X filesystem

Posted by: Anonymous Coward on February 15, 2007 08:22 PM
"So Gobo patches the programs."

This is an incorrect statement.

Personally I am disappointed to read a comment that
is, in the end, not accurate.

Please people, before mistakes like these happen, DO TAKE the time to find out whats going on. Just lurk on the mailing list for some weeks, come on IRC, chat and so forth.

#

Gobolinux

Posted by: Anonymous Coward on December 02, 2005 03:14 PM
sounds a lot like djb's slashpackage packaging system. I think it's cool that someone implemented this idea on a grand scale and found that, for the most part it works.

#

Fascinating!

Posted by: Administrator on November 04, 2005 12:03 AM
I really like this.

This makes so much more sense and, I do dislike the idea of throwing all the program files in a bin directory. Can't have multiple versions, things could conflict, etc...

Personally I already do something like this, I have a ~/Programs/ directory in my home dir and I install all non-RPM programs into individual subdirectories in my Programs dir.

None of that going to root stuff to install programs, plus if I keep my home directory when I upgrade the rest of the distro, all my programs are retained.

#

Dammit!

Posted by: Administrator on November 04, 2005 12:11 AM
I've been working on a similar system now for about a month! Oh well, either I can learn from their mistakes and incorporate their successes, or I can join their team. Perhaps both! hehehehe

#

If you have to have an experimental distro

Posted by: Administrator on November 03, 2005 10:38 PM
That one seems more interesting than anything I've read about in a long while. when I get round to get XEN going (on SUSE 10, it shouldn't be too hard), I'll defintely have that one going in a virtual machine somewhere.

#

For those of you interested...

Posted by: Administrator on November 04, 2005 02:01 AM
Be sure to read <a href="http://www.gobolinux.org/index.php?lang=en_US&page=doc/articles/clueless" title="gobolinux.org">this</a gobolinux.org>, it's good stuff.

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya