GoboLinux is a Linux distribution I heard about from a friend who said that it looked interesting for its flagship property - a simpler file structure. I decided to check it out.
I downloaded the distribution ISO from their website, which was easy enough, and booted up VirtualBox with that ISO mounted as a drive.
Installation was simple enough for an intermediate user to do. Instead of Ubiquity or another similar installer, the Gobo folks have opted for a custom piece of software.
I booted to the live CD's desktop environment. You must manually run startx to kick on the X server from the live CD. This is a good and bad thing, depending on who you are. I believe that this Linux is designed for mid-to-high levels of Linux experience, so if you have that, this should be no big deal, especially since the first output tells you exactly what to type to get things done. For novices, this would be confusing and unappealing, though not insurmountable. I doubt that newbies are the target audience for Gobo.
I had to boot to the desktop environment because the command line installer will not run without having already partitioned your drive. While I'm sure there was a command line partitioner available, I am not familiar with any of them, so I opted for the desktop install. Even from that environment, ease of install is hindered by the fact that the installer errors out if your drive is not already partitioned. Partitioning must be done separately, then the installer can be run.
The installer itself is easy to understand, if a bit unsightly. Again, this won't be attracting novice users, but anybody who knows a bit about computers will be able to figure it out in no time.
Installation was quick, even for the full package. My VM took care of it in 10 minutes or so on low-grade hardware, once I got through the install configuration sections.
Trying to reboot from the desktop environment was not possible without using the terminal. I exited my session and was spat out into a terminal still executing from the live CD image. I gave the reboot command and finally got to boot into the OS, ready for action.
The bootloader allows for three options, as shown here:
So far, I have only booted to the Graphic Desktop option, but it's nice to have those other options available. Yet another sign that this is not for your average Joe the Plumber, this screen requires the user to make a selection before it will boot. I waited for quite some time, and it never timed out.
The boot is noisy until it hits runlevel 2, then it starts a slightly quieter boot process.
The default desktop environment for Gobo is KDE 3.5. I've never personally been a fan of KDE, but I could install Gnome on here if I wanted to.
The login process is more or less the same as any other KDE login:
The default desktop wallpaper is pretty lame, but most Linuxes tend to use their own logo by default. Fortunately, a collection of good photographs and textures are available, and you can, of course, add more as desired.
Three icons greet you, Home, Trash, and Manager. Manager is the applications management frontend for Gobo. It's recipe-based, and is supposed to provide users with a list of available versions of various software packages. Software can be enabled, disabled, and linked (more on linking later). The distro's website contains a decent collection of recipes for various products. It's poorly organized, but it's there all the same. The search feature helps to find what you're looking for.
Manager itself executes in a terminal, then creates an additional window for the GUI frontend. Naturally, closing the terminal closes the GUI as well. That's a bit unrefined, but not a killer problem.
The control panel allows you to change your settings well. The standard control panel for KDE is what exists.
As mentioned before, Manager is the GUI frontend to Gobo's software installation system. That system is a very good one that solves some problems. There are tons of different ways to install software. Gobo looks at the problem from the perspective that compiling from source is the best way to ascertain the most recent version of software, and addresses it by using a custom program called Compile.
Compile combines the functionality of various other compilation programs like compileprogram, makefile, and xmkmf to always compile source code correctly. It also adapts the file paths of those source compilers to match the specialized file structure of Gobo.
Compile uses recipes to know where to get the source code, what version it is, what the checksum is for download verification, and how the compiler should react to the download. This turns the terminal command for installation into something as simple as "Compile foo" or "Compile bar 1.1" for a specific version. If properly managed, this is a great and easy way to get the job done.The Flagship
So far, Gobo is a pretty mediocre distribution of Linux, but it does one thing extraordinarily well, and the devs flaunt it rightly. The file structure has been completely reworked. This is the root directory:
Seven directories. That's it. All of the POSIX stuff is still there, but only in the sense of symlinks that point to various locations. All the details about how they do it can be found here, but here are the important parts:
"GoboLinux is a modular Linux distribution: it organizes the programs in your system in a new, logical way. Instead of having parts of a program thrown at /usr/bin, other parts at /etc and yet more parts thrown at /usr/share/something/or/another, each program gets its own directory tree, keeping them all neatly separated and allowing you to see everything that's installed in the system and which files belong to which programs in a simple and obvious way."
Here's the breakdown alphabetically:
- Depot - This is a shared directory for all users. The devs call it a "community area" or an all-users home folder.
- Files - This is a shared directory for applications. Files that are needed by multiple programs, but are not necessarily owned by those programs are kept here, such as fonts and wallpapers.
- lost+found - This is your standard ext3 filesystem lost+found directory.
- Mount - All mountable devices (CD-ROMs, floppies, flash drives) are mounted here.
- Programs - Each program gets its own directory here wherein it can install all of its files and folders.
- System - Here are the critical system files, the ones that make Gobo work. These include the Linux kernel, boot software, initialization scripts, settings for various software (/etc content, in other words), and all the symlinks that make the new file structure work (and compatible with other Unix-like file structures).
- Users - This is the /home replacement, and that's more or less all it is.
Really, the system is quite intuitive. Hisham Muhammad, the ringleader for the GoboLinux development community, makes some very convincing arguments regarding the new file structure on the GoboLinux website. He makes a very good case for change and explains how, despite the deviance from the standard Unix/Linux file architecture, it is still compatible with that old Unix format, if not more so.
"Through a mapping of traditional paths into their GoboLinux counterparts, we transparently retain compatibility with the Unix legacy. There is no rocket science to this: /bin is a link to /System/Links/Executables. And as a matter of fact, so is /usr/bin. And /usr/sbin... all "binaries" directories map to the same place. Amusingly, this makes us even more compatible than some more standard-looking distributions. In GoboLinux, all standard paths work for all files, while other distros may struggle with incompatibilites such as scripts breaking when they refer to /usr/bin/foo when the file is actually in /usr/local/bin/foo."
After many years of Linux use, I have come to find what I like and do not like about Linux-based operating systems. I want a system that I can install quickly and easily, without much hassle. I love the repository-centric installation and updating of software packages, but I could probably adapt to a recipe-based installation system. I much prefer the Gnome desktop environment to KDE, XFCE, Enlightenment, or any other that I have come across. In these respects, GoboLinux fails to meet most of my expectations of a Linux OS.
But don't let that fool you. This is a perfectly stable OS with a lot of benefits. Most importantly, Mr. Muhammad has a really great idea going with this retooling of the file structure. It's user-friendly, system-friendly, and Unix-friendly. It's simple and clean. It goes a long way toward simplifying Linux for average computer users. While many aspects of the OS are more difficult to use and while I believe the new structure could use some further improvement, Gobo makes a great point with this. Many Linux users will disagree, and that's fine. That's why we have communities and a multitude of distributions. I personally wish that Ubuntu or Fedora would adopt a system like this. It could take those other distros a long way.
I won't be using GoboLinux on a regular basis, but I'll be checking back in on it in a year or two to see how far it's come. This is a distro with major potential.