Respostas:
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
etty
/tmp
, gravável garantido, mas não necessariamente preservado.A Linux Foundation mantém um FHS (File System Hierarchy Standard ) que o estende para incluir os diretórios que você normalmente verá em um sistema Linux:
/bin
: Binários essenciais de comando do usuário/boot
: Arquivos estáticos do gerenciador de inicialização/dev
: Arquivos de dispositivo/etc
: Configuração do sistema específica do host/home
: Diretórios pessoais do usuário (opcional)/lib
: Bibliotecas compartilhadas essenciais e módulos do kernel/lib<qual>
: Bibliotecas compartilhadas essenciais de formato alternativo (opcional)/media
: Ponto de montagem para mídia removível/mnt
: Ponto de montagem para um sistema de arquivos montado temporariamente/opt
: Pacotes de aplicativos complementares/root
: Diretório inicial para o usuário root (opcional)/run
: Dados variáveis em tempo de execução/sbin
: Binários do sistema/srv
: Dados para serviços fornecidos por este sistema/tmp
: Arquivos temporários- Bem como a
/usr
hierarquia e a/var
hierarquia
O ESF foi projetado para ser o mais genérico possível, para permitir a incorporação em qualquer sistema UNIX. É provável que os diretórios adicionais existam em qualquer sistema razoável, mas isso não é obrigatório pelo POSIX.
No entanto, observe que o The Open Group também afirma que
Aplicativos estritamente conformes não devem assumir a capacidade de criar arquivos em nenhum desses diretórios, a menos que especificado abaixo.
Como os diretórios são realmente apenas arquivos, isso implica que um aplicativo estritamente conforme não criará nenhum arquivo ou diretório no nível raiz. Portanto, o 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.
Na 10.1 Estrutura e arquivos de diretórios, o POSIX lista os diretórios que devem existir. Mas não especifica limite para o número de outros diretórios que podem existir no nível raiz de um sistema de arquivos.
Por esse motivo, não parece colocar limites no tamanho de outros diretórios.
A atenção do POSIX nesta área está focada na comunalidade e não nas diferenças.
/
) podem ser um diretório raiz, seria muito tolo impor um limite superior ao número de entradas em um diretório raiz. /
não é particularmente especial nesse sentido, portanto, seria igualmente tolo impor um limite superior ao número de entradas /
especificamente.
Não há limitação para o número de entradas em um diretório, nas implementações POSIX ou Unix típicas. Pode haver um limite indireto para o número de subdiretórios, que é a contagem máxima de links físicos (a ..
entrada de cada subdiretório é um link físico para o diretório); são 2 16 para muitos sistemas de arquivos comuns, o que limita um diretório a 65533 subdiretórios (pelo menos para os sistemas de arquivos que armazenam ..
entradas explicitamente). Você começará a ter um desempenho ruim antes disso. De acordo com o POSIX, uma implementação é permitida para suportar apenas 8 links físicos em um arquivo ( _POSIX_LINK_MAX
), mas nenhuma implementação real é limitada a 6 subdiretórios. De qualquer forma, em muitos sistemas de arquivos, incluindo ext4, a contagem de links físicos não é mantida por..
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. Ele apenas exige a existência de alguns arquivos . As únicas entradas obrigatórias no diretório raiz são /dev
e /tmp
. Outras entradas Unix habituais, tais como /usr
, /var
, /bin
, /etc
, /lib
, /home
, etc, são Unix convenções que não são codificados pelo POSIX.
No Linux, o FHS codifica os clássicos e mais alguns. A maioria das distribuições Linux se atém às entradas do FHS. Outros sistemas Unix geralmente têm as mesmas entradas, talvez com algumas diferenças, mas o número é aproximadamente o mesmo.
Os administradores de sistema podem criar mais, embora isso seja desencorajado: há lugares bem definidos para a maioria das coisas (software fica abaixo /usr
ou abaixo /opt
, dados do sistema ficam abaixo , /var
dados do usuário /net
ficam abaixo , dados do usuário ficam abaixo , pontos de montagem ficam abaixo /media
ou /mnt
etc.), então raramente há qualquer bom motivo para criar novos diretórios no nível superior.