Gobo Linux Article Index for
Gobo
 

Information About

Gobo Linux




GoboLinux's filesystem changes have also led to other changes, such as an entirely new boot system that doesn't use System V or BSD style init systems, and a package system based upon the lack of need for a package database in lieu of relying on the filesystem itself acting as a package database.


THE GOBOLINUX HIERARCHY


The design of GoboLinux is influenced by earlier systems such as NeXT , AtheOS and BeOS , which adopted original filesystem structures while still maintaining a considerable degree of compatibility with Unix. At the root of the GoboLinux tree, there are six directories: Programs, Users, System, Files, Mount and Depot. The contents of each are described below.

  • /Programs/ - Under this directory, there is one per program installed in the computer. Each program directory, on its turn, contains one or more version directories, and optionally, Settings and Variable subdirectories. Examples of paths under programs are /Programs/Bash/3.0/bin/bash and /Programs/Xorg-Server/Settings/X11/xorg.conf.

  • /Users/ - The users' home directories. Let's say you have a user on your system called will. The will home directory will be /Users/will. Even the superuser (typically called root) has its home under /Users. It's possible to put /Users in a separate partition, so you won't have to worry about moving your personal files around when reinstalling/formatting, though in typical systems it's easier to keep the whole system in a single partition so that managing free space is easier.

  • /System/ - Crucial system files. Most are managed by system applications (e.g. /System/Settings/passwd) and GoboLinux scripts (e.g. /System/Links).

  • --- Links/ - Contains "links" directories that index the files under /Programs.


  • -- Environment/ - Links to environment files. These are compiled into a Cache file and loaded by the shell, allowing programs to register their own environment variables.


  • -- Executables/ - Contains links to files from the programs' bin and sbin directories.


  • -- Headers/ - This directory contains links to files from the programs' include directories.


  • -- Libraries/ - Links to files from the programs' lib directories.


  • -- Manuals/ - Contents of manuals and info directories.


  • -- Shared/ - Links to files from the programs' share directories.


  • -- Tasks/ - Links to the programs' boot tasks from their Resources/Tasks directories.

  • --- Settings/ - Configuration files and links to files from the programs' Settings directories.


  • -- BootScripts/ - Scripts used during system boot. This is a symlink to Settings/BootScripts/ under /Programs/BootScripts.

  • --- Variable/ - Multi-purpose log, temporary, transient and spool files.


  • -- tmp/ - Temporary files.

  • --- Kernel/ - Kernel-related directories.


  • -- Boot/ - Programs and configuration files used during operating system bootstrap. This is where the kernel image and bootloader configuration files are located.


  • -- Devices/ - Device files (managed by Udev).


  • -- Modules/ - Contains the various kernel modules, organized by the kernel release.


  • -- Objects/ - Provides a view of the kernel's device tree (introduced with the sysfs filesystem in the kernel 2.6 series).


  • -- Status/ - Kernel status files (managed by the proc filesystem ).

  • /Files/ - Files hold structured data that are used by programs but that are not part of the programs themselves. Those files are usually stand-alone entities, like fonts, codecs and plugins (and as such, do not require package management). Additionally, applications may define subdirectories of their own to store site-specific data -- Compile , the GoboLinux package compilation front-end tool, uses it.

  • /Mount/ - mounting point for additional local or remote filesystems. Common subdirectories are CD-ROM, Floppy and Zip.

  • /Depot/ - repository for users' files. This repository is meant to be organized as the user sees fit. No subdirectories of /Depot are considered part of the standard GoboLinux hierarchy.



DIFFERENCES BETWEEN GOBOLINUX AND TRADITIONAL DISTRIBUTIONS


In the GoboLinux hierarchy, files are grouped by their functional category in an index-like structure using symbolic links, rooted at /System/Links: all executables are accessible under /System/Links/Executables, all libraries are accessible under /System/Links/Libraries and so on. There are symbolic links relating most of the usual Unix directories to the GoboLinux tree. Therefore, one can find directories such as /etc, /var/log and /usr/bin in the expected places. These symbolic links point to the functional equivalent under /System/Links, so that crucial pathnames such as /bin/sh and /etc/passwd are resolved correctly. These compatibility directories are concealed from view using a custom kernel modification called ''GoboHide'' -- this modification, which implements support for hidden files in Linux, is used for aesthetic reasons only and is optional.

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 there are a few files that command the entire boot procedure: BootUp and Shutdown run at system boot and shutdown, respectively; additionally, it is possible to define "runlevel" scripts to specify different ways the system can be initialized (e.g., Single and Multi for single and multi-user, Graphical for boot into graphic mode, etc.) and control that from the boot loader menu. The /System/Settings/BootOptions file separate site-specific settings from the rest of the scripts. Application-specific tasks can be found at /System/Links/Tasks and called by the boot scripts.


RELEASES


Releases are numbered using the version numbers (since a leading zero is the indicator for octal numbers in the C language); it has no dots, hence there are no "point releases"; and it is a play on the " Version Bump " phenomenon as, when read as a decimal numbers, octal numbers will cause a deterministic bump each eight releases.

  • 012 - June 6 , 2005 : introduced ''Manager'', a graphical system management tool.

  • 011 - June 7 , 2004 : intoduced ''Compile'', the GoboLinux package compilation tool.

  • 010 - desktop environment.

  • 007 - October 22 , 2003 : added a per-package metadata directory called Resources.

  • 006 - ed installation of programs.

  • 005 - 2003 : first release published online.

  • Releases prior to 005 were used by the initial group of developers only.


As of March 2006, Gobolinux is officially made for the platform (among other architectures).


SEE ALSO



EXTERNAL LINKS