Estou tentando aprender o padrão POSIX. Ao usar Unix, eu /bin
, /etc
, /dev
, /media
, e, geralmente /opt
, mas é que padronizado ou até sua implementação especificação? Poderia haver muitos diretórios na raiz ou é limitado pelo padrão?
filesystems
posix
root-filesystem
Niklas
fonte
fonte
Respostas:
De acordo com o padrão publicado do The Open Group , os únicos diretórios necessários são:
/
/dev
, Que contémconsole
,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:
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
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.
fonte
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.
fonte
/
) 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.fonte
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.
fonte