Become a fan of Slashdot on Facebook


Forgot your password?
Linux Software

GoboLinux Rethinks The Linux Filesystems 859

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.
This discussion has been archived. No new comments can be posted.

GoboLinux Rethinks The Linux Filesystems

Comments Filter:
  • by evilviper ( 135110 ) on Saturday May 10, 2003 @01:54PM (#5926442) Journal
    First Link:

    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, /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).
    * 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 /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.
    * 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 /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.

    Second Link:

    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. Like it? Read more...
    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 /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. :)

    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 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
  • Another article... (Score:5, Informative)

    by illsorted ( 12593 ) on Saturday May 10, 2003 @02:08PM (#5926541)
    Kuro5hin [] also has a good article [] on GoboLinux.
  • by zephc ( 225327 ) on Saturday May 10, 2003 @02:08PM (#5926543)
    this is why you type out part of the name, then hit [TAB] to autocomplete the name. I use it in the OSX command line all the time.
  • Re:Is it just me, (Score:5, Informative)

    by Rui del-Negro ( 531098 ) on Saturday May 10, 2003 @02:13PM (#5926572) Homepage
    Are there any Microsoft tools for de/compressing normal archives (like ZIP, RAR, TAR.GZ, etc.)? Maybe in XP? I just use W2K + WinRAR.

    Anyway, there's nothing wrong about treating compressed files as directories (especially if they have more than one file inside them). Technically, there isn't a big diference between, say, a ZIP file and a directory with file compression enabled.

    Windows' default directory structure is reasonable, but I find some of the names too long (you can change them, BTW; programs will still install in the right places). I don't like drive letters at all, I would prefer drive / device names. It's possible to implement it with shares (ex., "boot:\\" instead of "c:\"), but some programs have problems with it.

    On NTFS drives you can also mount volumes as directories (ex., mount your CD drive as c:\cdrom instead of e:, or whatever). NTFS is actually quite civilised.

  • by Zak3056 ( 69287 ) on Saturday May 10, 2003 @02:18PM (#5926607) Journal
    One of the only thing Gates did right from the beginning was to enforce file extensions, thus enabling a user to know that "this is a directory, this i can't execute". On Unices nobody can really tell.

    Err, what do you mean "no one can really tell?"

    If the file has an execute bit set, it's probably executable. If the file has a directory bit, it's a directory.

    Yeah, you need to understand the system before you can use it, but learning that system is trivial.

    drw-rw-rw- tells you everything you need to know.
  • by paranoidd ( 575058 ) on Saturday May 10, 2003 @02:24PM (#5926636) Homepage
    The website 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) and we'll arrange something. Thanks!
  • by paranoidd ( 575058 ) on Saturday May 10, 2003 @02:28PM (#5926651) Homepage
    Actually this doesn't slows down the efficiency of tab-expansion. ZSH, the default GoboLinux shell, does handle graciously tab expansion, so it is possible to press 'p', tab, and you will be in /Programs.
  • Explanation. (Score:5, Informative)

    by juuri ( 7678 ) on Saturday May 10, 2003 @02:40PM (#5926698) Homepage
    I'll help you out here.

    /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

    Of course many modern lunix distributions break this by placing files wherever people think is cute, much like how the .org, .net and .com have lost their meanings.

  • Different locales (Score:1, Informative)

    by Anonymous Coward on Saturday May 10, 2003 @02:42PM (#5926713)
    Since the site is down, I can't give you a link, but one of the files used when installing GoboLinux allows you to set the directory names for everything.

    They did this because originally GoboLinux was ment to run in user space. I can have an entire goboLinux install in my home directory. So in that case, I'd set:

    $GOBO_PROGRAMS_DIR = ~/MyPrograms

    To simplify a long story, all they did to make it a real linux distro was to change the one file that set all these variables. So the new line would be:

    $GOBO_PROGRAMS_DIR = /Programs

    Of course, if you live in Germany, and you can change that line to:

    $GOBO_PROGRAMS_DIR = /Programme Dateien

    (I used BabelFish, so excuse the translation of "Program Files". The system variable name isn't $GOBO_PROGRAMS_DIR either, but again, the site was down.)

    So yes, GoboLinux does support multiple locales.
  • by Anonymous Coward on Saturday May 10, 2003 @02:47PM (#5926734)
    Hint: try "cd Doc*" in command prompt (w2k/xp)

  • Re:Is it just me, (Score:2, Informative)

    by c4Ff3In3 4ddiC+ ( 661808 ) on Saturday May 10, 2003 @02:51PM (#5926753)
    Hmm, are you talking about those self-rearranging drive letters Windows uses ? Have you tried adding a second disk and see all your old drive letters suddenly change ?

    Fortunately, in Windows 2000/XP and higher, you can assign drive letters however you want. Check Control Panel->Administration Tools->Computer Management->Disk Management. I'm not sure if you have to be using NTFS though.
  • by martin-k ( 99343 ) on Saturday May 10, 2003 @02:51PM (#5926757) Homepage
    Please... spend your energy on improving general Linux usability, not on just renaming a few folders.

    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

  • by Tim C ( 15259 ) on Saturday May 10, 2003 @03:25PM (#5926929)
    Under Windows XP, you can just type m[tab] - the capitalisation, insertion of double quotes, etc, is all done for you. Just keep hitting [tab] until you get to the one you want.

    You don't even have to delete the closing double quote if you want to specify a file within the dir - just add on the backslash, press the first letter, and hit [tab], and it's all taken care of for you.
  • by Bob9113 ( 14996 ) on Saturday May 10, 2003 @03:28PM (#5926946) Homepage
    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.
  • Re:Is it just me, (Score:2, Informative)

    by Bunji X ( 444592 ) on Saturday May 10, 2003 @03:36PM (#5926987)
    Nah, just sounds like someone read this article [].
  • True, but... (Score:3, Informative)

    by msobkow ( 48369 ) on Saturday May 10, 2003 @03:40PM (#5927008) Homepage Journal

    Technically true, and useful most of the time, but try something like merging a couple old small drives to a large one. You'll have no choice but to partition that beefy drive to end up with the same drive letters, or else do some serious registry surgery.

    Good luck if one of those moved drives contains DLLs or utilities that the system expects to access during startup (I have had that situation. Ugly. Very, very ugly.)

  • by Q Who ( 588741 ) on Saturday May 10, 2003 @03:40PM (#5927009)

    Perhaps you're looking at it incorrectly. It seems to me that the real solution would be to make tab-expansion case-insensitive.

    complete (+)

    If set to `enhance', completion 1) ignores case and 2) considers periods, hyphens and underscores (`.', `-' and `_') to be word separators and hyphens and underscores to be equivalent.
  • by smcv ( 529383 ) on Saturday May 10, 2003 @03:44PM (#5927023) Homepage
    /usr/share/plugins /usr/share/netscape/plugins /usr/share/mozilla/plugins

    Well, share is for platform-independent data, so that's out. (A Mac and a PC with the same Linux distro and packages should be able to use the same NFS-mounted /usr/share tree, hence the name "share"; this matters more on traditional Unix hardware than it does now).

    The rest are all possibilities, depending on whether you or your distribution vendor installed Mozilla, and whether you or they consider Mozilla to be a monolithic "black box" (like Windows apps) or an integrated part of the system (so it's easy for Galeon or other Gecko-based browsers to embed it).

    It's valuable to have /usr/local and /usr separate - that way you, the local sysadmin (installing self-compiled stuff to /usr/local) and your package management system (installing to /usr) will never get in each others' way. /opt vs. /usr/local is a bit more subtle - you're meant to use /opt for identifiable "modules" which could be removed without side effects (I use it for games), and /usr/local for things which fit into the traditional Unix hierarchy (if you installed Mozilla in /opt the executable should be something like /opt/mozilla/mozilla or /opt/mozilla/bin/mozilla, if you installed in /usr/local it should just be /usr/local/bin/mozilla). Some distros don't have even have a /opt directory in the default install (Debian doesn't).

    I realise it's not ideal, particularly with some of the more subtle points (share vs. lib, /usr/local vs. /opt), but it's pretty much standardized by now.

    (I wish all my dotfiles followed a similar hierarchy, actually - I've started using symlinks to get the caches in ~/.tmp and the important config files in ~/.etc, so I can leave out .tmp when I do backups)

    Some of the merging Gobolinux does seems like overkill; for instance, the benefit of having the /usr hierarchy is that you can put all the critical system files (/bin, /lib, ...) on a separate, smaller partition, which can sometimes even be read-only, guaranteeing that you have a bootable system.
  • by Anonymous Coward on Saturday May 10, 2003 @04:20PM (#5927179)

    Customizing bash []


    # Ignore case while completing
    set completion-ignore-case on
  • by Anonymous Coward on Saturday May 10, 2003 @04:38PM (#5927250)
    I'm an English expatriate living in Boulder, Colorado, USA. There are four of five roundabouts that I'm aware of in the state. All on small backroads, single-lane, lots of warning signs. Horrible traffic lights at 99% of the junctions, particularly the larger ones.

    You end up choosing routes through the town based on the probability of hitting a red light - going in a particular circular flow because you know there's a chance you'll have a 2 minute wait if you go the other and need to make a left-turn through traffic.

    The only slightly redeeming feature is that right-turn-on-red (equivalent of left-turn in the UK) kicks ass. Permitting undertaking and not having to drive on the right (left in the UK) on a multi-lane highway is sheer torture if you get stuck behind slow-moving traffic blocking both lanes.

    For the love of god, I never thought I'd miss roundabouts so much. They solve so many traffic conjestion problems at junctions. But they couldn't build the damn things here because the average beginning American driver has a level of driver's ed that makes me blush and would crash and burn at the first complex multi-lane roundabout they encountered. Sigh.
  • Re:Is it just me, (Score:1, Informative)

    by bhtooefr ( 649901 ) <[gro.rfeoothb] [ta] [rfeoothb]> on Saturday May 10, 2003 @05:00PM (#5927373) Homepage Journal
    Actually, as of NT 3.1 (1993). NT 3.1 used HPFS or NTFS (not sure which, but NTFS was based on HPFS). Both had LFN support long before VFAT appeared (HPFS appeared in 1991).
  • Re:um.. (Score:5, Informative)

    by pcardoso ( 132954 ) on Saturday May 10, 2003 @05:07PM (#5927415) Homepage

    Only Windows XP has tab completion enabled by default. Windows 2000 and NT (IIRC), have this capability in CMD.EXE but it's disabled by default.

    To enable it (which I do all the time in win2000), do this:
    1. Hit the "Start" button
    2. Select "Run"
    3. enter "regedit", hit OK
    4. Expand "My computer" (by clicking the little [+] beside it)
    6. Expand SOFTWARE
    7. Expand Microsoft
    8. Expand Command Processor
    9. Double-click "CompletionChar"
    10. Replace the value that's there with 9 (which is the ASCII equivalent of the TAB key)
    11. Click OK

    I found this here []. I just googled for "windows 2000 tab completion" and yes, I felt lucky.. :)

  • by rafasgj ( 194835 ) on Saturday May 10, 2003 @05:16PM (#5927463) Homepage
    We are providing a .torrent in

    The link for the .torrent is: is o.torrent

    Spread it.

    -- Rafasgj
    -- GoboLinux Scripts Maintainer
  • by MCZapf ( 218870 ) on Saturday May 10, 2003 @05:38PM (#5927578)
    There's also the little tidbit that the current Windows file systems (whether VFAT or NTFS) are case sensitive--just like Unix, you can store BlahBlah.doc, and it remembers it was BlahBlah.doc, rather than BLAHBLAH.DOC.

    What you are describing is case preservation, not case sensitivity.

  • by Anonymous Coward on Saturday May 10, 2003 @06:01PM (#5927687)
    It's there, and comes by default in GoboLinux.
  • by detsch ( 672436 ) on Saturday May 10, 2003 @07:43PM (#5928090)
    The BitTorrent for GoboLinux is available at: []
    (those using the torrent are advised to switch to the torrent, since the one is based on a bttracker running on a machine with a dynamic IP)
  • Re:Is it just me, (Score:4, Informative)

    by moncyb ( 456490 ) on Saturday May 10, 2003 @09:14PM (#5928456) Journal

    Where the hell are you people getting this BS about it being in the windows directory?!

    Probably because that's where it used to be. Back when I was using Windows, programs would either put config files in the windows directory, or their program directory. All of the system config files were in the windows directory too.

    Where is your config file for samba? Well, I don't quite know. It's somewhere in the /etc directory I'm sure. Is it in it's own subdirectory?

    I don't know about samba specifically, but to follow good conventions, it should be called /etc/samba.conf or for multiple files be under the /etc/samba directory. Problem is, too many programs don't follow good conventions. This happens with MS Windows too.

    if I had to come up with where KDE stores it's default menu, I would have no f*cking clue. Somewhere in /usr I guess? Might depend on the distro..

    I suppose it depends whether the programmers think of it as a config file (/etc) or data file (/usr/share). Then again, considering we are talking about KDE/GNOME programmers, who knows. I don't think they get *nix type systems in the first place.

    The Linux tree makes more sense to me. If all the programs would follow the conventions, then backing up /etc, /usr/etc, and /usr/local/etc saves all the global config info. /home contains all user files and config info. /var/log contains the logs (Can be skipped if you're not paranoid). If you're running a server, parts of /var/spool may need to be backed up, but probably not for a desktop machine. Everything else can be ignored. bin, lib, share are already saved with your software disks. When backup time comes, this tree is quite easy, and has been standard for quite some time.

    The main problems occur when programs don't follow the conventions. Lynx puts the config file /usr/lib/lynx--probably because the project started on a different system (DOS I think). I think Apache used to put all their stuff in /var.

    The worst offenders seem to be developers who just came from a home computer background (MS DOS/Win, Amiga, Atari, whatever). They don't get the directory structure, so things go in the wrong places. When I first started with Linux, I had the same problem. I was so bad, I even wrote my own search program because I didn't know about grep.

  • Re:Is it just me, (Score:3, Informative)

    by shyster ( 245228 ) < minus city> on Saturday May 10, 2003 @10:06PM (#5928627) Homepage
    Okay, here's the gospel on where My Documents lives. In 9x, it defaulted to C:\My Documents. But, if profiles were enabled (a Bad Idea(tm)) and seperate My Documents were created, it could bei n C:\WINDOWS\PROFILES\USERNAME\My Documents. This makes sense, since Win9x is not a true multi user system, that it would be on the root of the drive. Of course, it was also a special shell folder that lived at the top of the drive structure so that users would not have to know where it was located.

    In NT4, it lived in C:\WINNT\PROFILES\USERNAME\. This makes sense because it needed to be seperate from other user's. And, of course, it was still a special shell folder directly accessible. And why in WINNT? Because the profiles directory contains a lot of stuff you shouldn't mess with. If you can navigate directly to the My Documents folder, then hopefully you know what you're doing. Most people use the shell icon.

    In 2000 and XP (unless it's an upgrade from NT) it's now in C:\Documents and Settings\username. Probably to calm down /.'ers that couldn't understand why it was in WINNT. Now they've hidden a bunch of the system files, however, so as to make you less likely to play with them. And XP has a handy C:\D&S\All Users\Shared Documents for everyone to access...and it has it's own shell folder too. Isn't that nice?

    Oh, and every Windows since 95 has the ability to easily and/or programmatically change the location of the My Docs. Usually to a mapped (or unmapped) network drive. And profiles in the NT vein are accessible by the simple run command of %userprofile% without having to know the location of it.

    Why do /.'ers (in general) speak so highly of the flexibility of *nix, but never bother to find the flexibility in Windows? Don't like the Program Files location? Change it! Don't like the My Documents location? Change it! Don't like Explorer as the shell? Change it!

  • NT and POSIX (not) (Score:2, Informative)

    by jamezilla ( 609812 ) on Sunday May 11, 2003 @03:12AM (#5929626) Homepage
    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.
  • Re:Figures (Score:3, Informative)

    by jmorris42 ( 1458 ) <`gro.uaeb' `ta' `sirromj'> on Sunday May 11, 2003 @12:32PM (#5931072)
    Somebody hasn't learned how things work. If you want to know where Apache is try "rpm -ql apache" (or the appropriate Debian equivelent) and if you want to know which library an executabe will use you would use ldd. As for which library is in which directory, that should never be a problem. If you get a library in /lib and /usr/lib you have done something wrong and if you are building new versions from source into /usr/local/lib you should know what you are doing, because that is an advanced task.

    Your last statement looks like the classical political split moved to software. The conserative says, "It has worked well for years. Any proposed change should be approached with great care to avoid lossage." The progressive shouts, "Revolution! It's old and too complex for me to understand so lets tear it fucking down!"

    The truth, as always is between the two extremes, and that is pretty much where things are in UNIXland. There HAS been a fair amount of change in the filesystem layout over the years, just not enough to suit the revolutionaries like yourself.
  • by spitzak ( 4019 ) on Monday May 12, 2003 @04:07PM (#5938931) Homepage
    Putting a piece of the GUI at such a low level as the file system is A VERY VERY BAD IDEA.

    On Unix a filename is a sequence of bytes. The only rule is that the sequence cannot contain a zero byte and cannot contain the byte that happens to be the ASCII character '/'. If you want to see if a given string of bytes refers to the same file as another string of bytes, you check each byte for EQAUALITY. There are no other rules.

    On "case insensitive" filesystems there are LOTS of rules. You may think it is trivial but it is not. Do we assumme ISO-8859-1? What about the german double-s? What about the characters microsoft assigned to 0x80 to 0x9F? What about Unicode, or UTF-8, where many pages of codes have not even been assigned?
    In fact even MicroSoft has given up on this, case-insensitivity is officially limited to the original 8-bit characters in ISO-8859-1 and possibly their C1 additions. There have already been plenty of viruses and exploits which rely on programs failing to check if two files are the same.

    Anybody who thinks a low-level system interface should treat a multi-byte random length block of data like filename as anything other than binary bits is a moron with no experience programming systems.

    Now conversely there is no reason why user interface programs, including shells, cannot be smarter. Case-insensitive filename completion would be a great addition (many Unix shells already do this but it is not on by default). Even better would be spelling correction, correct handling of UTF-8, correction of zero and 'o' and different numbers of spaces and other things that people also confuse, and so on. Oddly enough one of the biggest impediments to these sorts of shells is the need to talk to case-insensitive filesystems, this greately complicates the algorithims as there is more than one correct target string to match.

    Maybe when the people arguing for (and against) "case insensitive" realize that this is a GUI issue that should not affect the file system at all, we might see some real "innovation". But until case-insensitive is actually removed from all file systems I am afraid this is not going to happen.

3500 Calories = 1 Food Pound