mudança da estrutura de diretórios padrão do Unix [closed]

0

É possível alterar a estrutura de diretórios padrão do Unix / Linux? Quero dizer, por configuração e sem necessidade de alterar o kernel. Ou se o kernel tiver que ser editado, quão difícil é essa tarefa? A estrutura de diretórios padrão (todos esses /usr , /bin , /etc diretórios) está codificada no kernel?

O que eu preciso é ter um diretório raiz ( / ), onde cada usuário estará livre para criar seus próprios arquivos / diretórios e um diretório /Linux , onde todos os arquivos do SO existirão (provavelmente na estrutura original ) incluindo todos os arquivos de configuração. Não deve haver nenhum diretório "Home" e todos os arquivos de configuração devem ser os mesmos para todos os usuários editáveis apenas pelo administrador do sistema.

    
por johnfound 18.09.2013 / 14:35

5 respostas

3

Sim, é possível. Mas requer muitos esforços para alcançar o que você deseja.

Para detalhes, você pode verificar o projeto Gobo Linux .

GoboLinux is a free and open source operating system whose most prominent feature is a reorganization of the traditional Linux file system. Rather than following the Filesystem Hierarchy Standard like most Unix-like systems, each program in a GoboLinux system has its own subdirectory tree, where all of its files (including settings specific for that program) may be found. Thus, a program "Foo" has all of its specific files and libraries in /Programs/Foo. According to the GoboLinux developers, this results in a cleaner system.

    
por 18.09.2013 / 15:02
2

Is the default directory structure (all these /usr, /bin, /etc directories) hard coded in the kernel?

Não, a maior parte não significa muito para o kernel. No entanto, ele preenche os sistemas de arquivos montados em locais padronizados, como /proc e /dev .

Is it possible to change the default Unix/Linux directory structure?

Absolutamente não. A razão pela qual existe um padrão para o sistema de arquivos raiz é porque esses diretórios têm uma finalidade definida e são identificados pelo caminho . Não faz muito sentido dizer: "Bem, prefiro que meu diretório /etc seja chamado de /masterconf ". Se você quiser acessar o que todos e todo o resto consideram /etc as /masterconf , você é bem-vindo para adicionar um link simbólico ln -s /etc /masterconf , mas deixe /etc como praticamente todo mundo e tudo o mais estará procurando por isso.

Por analogia, alguém poderia dizer: "Gostaria de renomear todos os utilitários padrão - mkdir , ls , cd , etc. - para que eles existam apenas pelos nomes que eu deu-lhes ". Novamente, você pode ligá-los simbolicamente, mas criar um padrão que permita ao sistema configurar nomes para utilitários padrão no lugar dos normais seria:

  1. Muito mais complicado.
  2. Quase certamente adicionar sobrecarga como utilitários instalados teria que constantemente passar por algum tipo de pesquisa para resolver o seu esquema de nomenclatura de romance.
  3. Completamente inútil por 99,9999% + dos usuários.

Os pontos 1 e 2 são inconvenientes significativos que não podem ser justificados à luz do 3, razão pela qual não existe tal sistema. Da mesma forma, o WRT renomeando partes do sistema de arquivos padrão.

What I need is to have...

Mais uma vez, você pode fazer o que quiser com links simbólicos ou hardlinks (veja man ln ), e então você pode usá-los se preferir. Mas não estrague o padrão do sistema de arquivos, não é opcional .

    
por 18.09.2013 / 14:57
1

Em geral, a estrutura de diretórios não é imposta pelo Kernel Linux, é imposta pelos Padrões de Sistema de Arquivos como este: Padrão de hierarquia do sistema de arquivos . O artigo da Wikipedia com o mesmo nome faz um trabalho decente de explicá-lo também.

Para sua pergunta sobre mover / mudar isso. Eu diria que isso é altamente desencorajado, embora possível, da mesma forma que em um sistema Windows eles têm locais padrão como:

  • C: \ Windows
  • C: \ Usuários e configurações
  • C: \ Arquivos de programas
  • etc.

Existe um valor inerente em fazer com que os sistemas pareçam semelhantes do ponto de vista da embalagem para desenvolvedores de software e usuários de tais sistemas.

    
por 18.09.2013 / 15:09
1

Is the default directory structure (all these /usr, /bin, /etc directories) hard coded in the kernel?

As outras respostas ainda não cobriram: sim, os caminhos são de fato codificados - não no kernel, mas nos próprios executáveis. Só é possível alterar esses caminhos codificados ao recompilar os executáveis, o que geralmente é realizado com o argumento --prefix para configure . O padrão para prefixo para executáveis compilados manualmente é geralmente /usr/local :

./configure --prefix=/usr/local

enquanto os executáveis destinados a serem distribuídos com algum gerenciador de pacotes geralmente usam o prefixo /usr :

./configure --prefix=/usr

Existem vários argumentos adicionais que você pode usar para um controle mais refinado, conforme documentado aqui: link

    
por 18.09.2013 / 15:46
1

Muitos distos de acordo com as circunstâncias mudaram as estruturas de diretórios, até mesmo seus nomes, Microtic é um dispositivo de acordo com o GNU / Linux Mas seu kernel é apenas Linux.

Se você quiser fazer isso, siga as etapas abaixo:

  1. altera o código do kernel
  2. mude o código do seu processo de inicialização ou escreva um. como upstart
  3. altere ou implemente o diretório de runlevels ou, se estiver usando o UNIX de acordo com os arquivos rc, configure-os.
  4. Deixe o gerenciamento de pacotes ou cada diretório de uso de software. Isso é muito importante. Você não esquece isso.
  5. finalmente altere a estrutura de diretórios.
por 18.09.2013 / 15:50