O POSIX limita o número de diretórios na raiz do sistema operacional?

11

Estou tentando aprender o padrão POSIX. Ao usar o Unix, eu tenho /bin , /etc , /dev , /media e geralmente /opt , mas isso é padronizado ou até sua implementação de especificação? Poderia haver muitos diretórios na raiz ou é limitado pelo padrão?

    
por Niklas Rosencrantz 15.07.2016 / 01:41

4 respostas

16

De acordo com o padrão publicado do The Open Group , os únicos diretórios necessários são:

  • /
  • /dev , que contém console , null e tty
  • /tmp , garantido gravável, mas não necessariamente preservado.

A Linux Foundation mantém um Padrão de Hierarquia do Sistema de Arquivos (FHS), que estende isso para incluir o diretórios que você normalmente verá em um sistema Linux:

  • /bin: Essential user command binaries
  • /boot: Static files of the bootloader
  • /dev: Device files
  • /etc: Host-specific system configuration
  • /home: User home directories (optional)
  • /lib: Essential shared libraries and kernel modules
  • /lib<qual>: Alternate format essential shared libraries (optional)
  • /media: Mount point for removable media
  • /mnt: Mount point for a temporarily mounted filesystem
  • /opt: Add-on application software packages
  • /root: Home directory for the root user (optional)
  • /run: Run-time variable data
  • /sbin: System binaries
  • /srv: Data for services provided by this system
  • /tmp: Temporary files
  • As well as the /usr hierarchy and the /var hierarchy

O FHS foi projetado para ser o mais genérico possível, para permitir a incorporação em qualquer sistema UNIX. Os diretórios adicionais provavelmente existem em qualquer sistema razoável, mas isso não é exigido pelo POSIX.

No entanto, observe que o The Open Group também declara que

Strictly conforming applications shall not assume the ability to create files in any of these directories, unless specified below.

Como os diretórios são realmente apenas arquivos, isso implica que um aplicativo estritamente em conformidade não criará nenhum arquivo ou diretório no nível raiz. Portanto, POSIX não limita necessariamente o que uma distribuição pode colocar no nível raiz, mas parece afirmar que um aplicativo em conformidade com sua especificação não pode assumir que será capaz de fazê-lo.

    
por 15.07.2016 / 02:01
13

Em 10.1 Estrutura de Diretórios e Arquivos , o POSIX lista diretórios que devem existe. Mas ele não especifica nenhum limite no número de outros diretórios que podem existir no nível de raiz de um sistema de arquivos.

Por falar nisso, não parece colocar limites no tamanho de outros diretórios.

A atenção do POSIX nesta área está focada na comunalidade em vez de diferenças.

    
por 15.07.2016 / 02:43
8

Não há limitação para o número de entradas em um diretório, seja em POSIX ou em implementações típicas do Unix. Pode haver um limite indireto para o número de subdiretórios, que é o contagem máxima de hard link (a entrada .. de cada subdiretório é um link físico para o diretório); isso é 2 16 para muitos sistemas de arquivos comuns, o que limita um diretório a 65533 subdiretórios (pelo menos para aqueles sistemas de arquivos que armazenam .. entradas explicitamente). Você começará a ter um desempenho ruim antes disso. De acordo com POSIX, uma implementação pode suportar apenas 8 hard links em um arquivo ( _POSIX_LINK_MAX ), mas nenhuma implementação real está limitada a 6 subdiretórios. E de qualquer maneira, em muitos sistemas de arquivos, incluindo o ext4, a contagem de link físico não é mantida para .. entradas, portanto, o único limite é quanto espaço ou quantos inodes estão disponíveis no sistema de arquivos.

O POSIX não fala muito sobre a organização dos arquivos no sistema. Apenas exige a existência de alguns arquivos . As únicas entradas obrigatórias no diretório raiz são /dev e /tmp . Outras entradas habituais do Unix, como /usr , /var , /bin , /etc , /lib , /home , etc. são convenções Unix que não são codificadas por POSIX. / p>

No Linux, o FHS codifica os clássicos e mais alguns. A maioria das distribuições do Linux mantém as entradas do FHS. Outros sistemas Unix geralmente possuem as mesmas entradas, talvez com algumas diferenças, mas o número é praticamente o mesmo.

Os administradores do sistema podem criar mais, embora isso seja desencorajado: existem locais bem definidos para a maioria das coisas (o software fica abaixo de /usr ou /opt , os dados do sistema ficam abaixo de /var , os dados do usuário ficam abaixo de /net , os pontos de montagem ficam abaixo de /media ou /mnt , etc.), portanto, raramente há um bom motivo para criar novos diretórios no nível superior.

    
por 15.07.2016 / 02:53
2

ao contrário do FAT, os sistemas de arquivos usados pelo UNIX não têm um limite de tamanho especial no diretório raiz, mas, quando a partição estiver cheia, você não poderá adicionar mais.

    
por 15.07.2016 / 05:43