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, nulletty/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
/usrhierarquia e a/varhierarquia
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 /deve /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 /usrou abaixo /opt, dados do sistema ficam abaixo , /vardados do usuário /netficam abaixo , dados do usuário ficam abaixo , pontos de montagem ficam abaixo /mediaou /mntetc.), então raramente há qualquer bom motivo para criar novos diretórios no nível superior.