# GoboLinux

GoboLinux é uma distribuição Linux criada no Brasil, atualmente mantida por uma comunidade de usuários de todo o mundo.
GoboLinux é uma distribuição alternativa, que redefine toda a hierarquia do sistema de arquivos. Ao invés de obedecer ao padrão FHS tradicionalmente usado por sistemas operacionais de tipo Unix, esta distribuição traz uma hierarquia de arquivos própria. O principal enfoque desta hierarquia é armazenar todos os arquivos pertencentes a uma aplicação em sua própria árvore de diretórios. Assim, o arquivo executável de um programa como o LibreOffice Writer encontraria-se em /Programs/LibreOffice Writer/3.4.0/bin, enquanto suas configurações encontrariam-se em /Programs/LibreOffice Writer/Settings. Em comparação, sistemas Unix tradicionais distribuem os componentes de um mesmo programa por diversos diretórios do sistema, como /usr, /bin e /etc. O GoboLinux garante a compatibilidade de sua hierarquia de arquivos com programas do ecossistema Unix através de links simbólicos que simulam a hierarquia de arquivos Unix.
Para possibilitar que o sistema encontre esses arquivos, eles são agrupados de forma sistemática em diretórios como System/Index/bin, que contém os links para todos os arquivos executáveis dentro da hierarquia dos programas.
O GoboLinux introduz algumas outras mudanças, como um sistema de scripts de inicialização novo, diferente dos padrões System V e BSD, e um sistema de pacotes baseado diretamente no sistema de arquivos, sem a necessidade de utilizar uma base de dados. A ferramenta Compile utiliza "regras de compilação" que especificam como cada programa deve ser compilado.

## Hierarquia de Arquivos

Na raiz da árvore de arquivos do GoboLinux, encontram-se seis diretórios: Programs (Programas), Users (Usuários), System (Sistema), Data (Dados), e Mount (Montagem). Os conteúdos de cada um desses diretórios dão descritos abaixo:
* /Programs/ - Contém um diretório para cada programa instalado no sistema. Cada um desses diretórios, por sua vez, conterão subdiretórios para as diversas versões do programa e, opcionalmente, subdiretórios para configurações (Settings) e variáveis (Variables). Exemplos de endereços de arquivos sob /Programs/ são /Programs/Bash/3.0/bin/bash e /Programs/Xorg-Server/Settings/X11/xorg.conf.
* /Users/ - Contém os diretórios de usuário do sistema, dentro dos quais, tradicionalmente, são armazenados arquivos os pessoais.
* /System/ - Contém os arquivos cruciais do sistema.
** Index/ - O índex do sistema de arquivos. Contém links para diversos componentes de programas instalados.
*** bin/ - Links para os diretórios bin/ de cada programa.
*** include/ - Links para os diretórios include/ de cada programa.
*** lib/ - Links para os diretórios lib/ de cada programa.
*** share/ - Llinks para os diretórios share/ de cada programa.
** Environment/ - Links para arquivos de variáveis de ambiente.
** Tasks/ - Links para as tarefas de boot de cada programa, presentes em seus diretórios Resources/Tasks/
** Settings/ - Arquivos de configuração e links para os diretórios Settings/ de cada programa.
** Kernel/ - Arquivos e diretórios relacionados ao kernel.
** Aliens/ - Arquivos administrados por administradores de pacotes de linguagens de programação.
* /Data/ - Diretório que armazena dados que são usados por programas, porém não fazem parte de nenhum programa em si. Usualmente inclui fontes tipográficas, codecs e plugins.
* /Mount/ - Diretório no qual sistemas de arquivo adicionais ou externas são montadas.