Faz parte de algum padrão (por exemplo, POSIX), que os arquivos do sistema sejam minúsculos?

29

Minha empresa revende um aplicativo cujo nome da marca está em maiúsculas e minúsculas, por exemplo "ApplicationName".

O instalador do aplicativo cria todos os caminhos e nomes de arquivos neste padrão. Por exemplo, o diretório principal é /opt/ApplicationName, o arquivo init é chamado, ApplicationNameentão eu tenho que executar service ApplicationName statuse assim por diante.

Para mim, isso quebra todas as convenções sensatas e eu sinto que os arquivos e diretórios devem estar em letras minúsculas (há precedentes em outros aplicativos como o MySQL, cujos arquivos e diretórios são chamados mysql, mesmo aplicativos como Apache e Tomcat eliminam o precedente Letra Maiúscula).

Se eu levantar isso como um relatório de bug, gostaria de apresentar um argumento mais forte do que apenas "acho que está errado". Então, é ditado em algo como o padrão POSIX que arquivos do sistema como este devem estar em letras minúsculas?

Darren
fonte
9
Você também pode apontar que é extremamente irritante para seus clientes, pois os forçará a usar um botão extra (shift). Isso pode não parecer grande coisa (OK, não é), mas é irritante.
terdon
5
Alguns sistemas de arquivos não diferenciam maiúsculas de minúsculas, vale a pena apontar um erro de digitação simples (por exemplo, algum script do usuário que faz referência ao arquivo em "applicationname" por engano) funcionaria em alguns sistemas, mas não em outros, o problema não seria detectado imediatamente e pode ser caro encontrar mais tarde. Um "application_name" mais explícito tem menos probabilidade de ter esse problema.
21417 Stefan
11
Outro contra-exemplo: qualquer coisa relacionada ao X11 geralmente possui um X maiúsculo no nome do arquivo, por exemplo, / usr / X11R6, /usr/lib/libX11.so e assim por diante.
precisa saber é o seguinte
1
Hoje, X gostaria de ser sua exceção para provar as tendências.
StarWeaver 10/04
1
@nomadictype Além de rodar em um sistema Unix, o sistema X Windows tem muito pouco a ver com o padrão Unix POSIX.
Kusalananda

Respostas:

27

O padrão POSIX possui uma seção com diretrizes para utilitários em conformidade (por exemplo, "como aqueles escritos especificamente para um sistema local ou que são componentes de um aplicativo maior") que diz

  1. Os nomes dos utilitários devem ter entre dois e nove caracteres, inclusive.
  2. Os nomes de utilitários devem incluir letras minúsculas (a classificação de caracteres mais baixos) e dígitos apenas do conjunto de caracteres portáteis.

[ref: 12.2 Diretrizes de sintaxe para utilitários ]

Não está claro para mim se o uso das palavras "deve incluir" realmente significa "deve incluir apenas ". (O consenso nos comentários abaixo é que significa "deve incluir apenas").

Um aplicativo em um sistema Unix que não afirma ser um utilitário compatível com POSIX pode usar o nome que desejar. Se ele faz pretensão de ser um utilitário conformant POSIX que faz parte dos utilitários POSIX shell , o texto após as diretrizes na seção 12.2 diz que "deve" alterações que significa "deve".

Não há orientações semelhantes sobre nomes de diretório, tanto quanto eu sei. O macOS (que é um produto UNIX 03 certificado quando executado em um computador Mac com processador Intel) usa /Userscomo prefixo os diretórios pessoais do usuário, por exemplo, além de vários outros nomes de diretórios de casos mistos.

Kusalananda
fonte
3
Eu não acho que eles realmente afirmam ser compatíveis com POSIX em qualquer lugar. Curiosamente, o nome do aplicativo tem 10 caracteres, então eles também falham nessa frente. BTW, o jeito que eu li o ponto 2 é "só deve incluir minúsculas e dígitos - Eu acho que as finais 'apenas' cobre a cláusula inteira Talvez uma pergunta para english.stackexchange.com :)
Darren
3
XBD define da shouldseguinte maneira: "Para uma implementação em conformidade com a IEEE Std 1003.1-XXXX, descreve um recurso ou comportamento recomendado, mas não obrigatório. Um aplicativo não deve confiar na existência do recurso ou comportamento. Um aplicativo que se baseie em tal não é possível garantir que um recurso ou comportamento seja portátil nas implementações em conformidade. Para um aplicativo, descreve um recurso ou comportamento recomendado para a prática de programação para otimizar a portabilidade ".
fpmurphy
5
A nomeação de um aplicativo tem algo a ver com a nomeação de utilitários do sistema ?
precisa saber é o seguinte
1
@IlmariKaronen Correct. As diretrizes são para a implementação dos utilitários descritos no próprio padrão.
Kusalananda
3
Existe um "apenas" na frase que você citou. Ele chega a um ponto estranho da frase, provavelmente devido à edição do comitê, mas ainda tem o mesmo efeito.
hobbs
44

Não, nomes em minúsculas não são especificados para diretórios de instalação de pacotes de software.

De fato, historicamente, os pacotes de software instalados /optcomeçaram com o símbolo de todas as capitais da empresa que fornece o pacote, como SUNWpara a Sun Microsystems ou ORCLOracle.

Portanto, pacotes como o sistema de arquivos QFS da Sun seriam instalados em um diretório chamado algo parecido /opt/SUNWqfs.

Andrew Henle
fonte
7
ATÉ este novo titbit sobre cotações de ações. Votado. Obrigado.
Darren
2
Acredito que a convenção se aplicou apenas ao SunOS / Solaris.
precisa saber é o seguinte
3
@ fpmurphy1 Talvez. Mas, dada a forma como a Sun tratou a conformidade com o POSIX, duvido que o esquema de nomeação que eles escolheram viole qualquer parte do padrão. Também não acho que a Sun teria tido muito sucesso em convencer a Oracle a usar qualquer esquema de nomenclatura.
Andrew Henle
1
@AndrewHenle, o esquema de nomenclatura SMIs para SunOS / Solaris, em conformidade com os padrões e especificações relevantes. Ambos POSIX e único Unix Especificação definir shoulda ser essencialmenteit is recommended
fpmurphy
nomes maiúsculas apenas se sentir corajoso e adotou-de-um-de mainframe :)
rackandboneman
4

Ao lado das diretrizes do POSIX, acho que isso pode ter ainda mais peso na tradição do usuário. Os nomes de casos como "ApplicationName" se tornaram populares com a explosão do Wikis, acostumando algumas pessoas (como eu) a usar maiúsculas em vez de hífens ou, pior, espaços. Mas isso foi alguns anos depois que o Linux e sistemas operacionais similares se tornaram populares, com uma longa tradição Unix por trás.

Essa tradição sempre foi (é) a simplicidade, não apenas para seguir as regras apontadas por Kusalananda, abreviando apenas palavras de quatro a seis caracteres (por exemplo, /usrpara "usuário", /srv"servir" ou /mnt"montado") e significados obviamente mais longos ( /sbinpara "binários de superusuário". Nesta tradição, maiúscula, força você a pressionar a tecla Shift e, talvez acidentalmente também a tecla Caps Lock, é simplesmente ruim.

De certa forma, isso é surpreendente, porque o Unixes, por muito tempo, conseguiu escrever nomes de arquivos longos com distinção entre maiúsculas e minúsculas, enquanto, por outro lado, o MS-DOS / Windows limitou-se a nomes de arquivos curtos sem distinção entre maiúsculas e minúsculas (oito caracteres mais três para a extensão), mas rapidamente perdeu essa simplicidade ("Arquivos de programas", "Meus documentos" etc.) quando o Windows 95 ultrapassa essa limitação.

No entanto, hoje existem algumas exceções como o NetworkManagerdaemon e provavelmente veremos mais WikiWords no futuro. Mas ainda odiamos o mouse e escrevemos nos nomes longos do terminal que você pode terminar apenas com o TabTabpreenchimento automático. Ou alguém veja alguma vantagem renomeando vimpara VisualImproved?

Fran
fonte
3
/usrnão é uma abreviação para "user". É uma abreviação para "recursos do sistema Unix"
fpmurphy
1
@ fpmurphy1 que cheira a um backronym.
Hbbs #
3
@ fpmurphy1 /usroriginalmente era o diretório para conter os diretórios pessoais do usuário (como /homehoje). Eu concordo com hobbs.
Fran
2
No Windows, My Computernão é e nunca foi um diretório. É puramente uma construção de concha; você pode ilustrar isso considerando como, em um prompt de comando ou em um aplicativo Win16 antigo, navegaria até ele. Program Filesé uma bagunça própria, com seu nome localizado; Eu me deparei com esse problema mais recentemente, literalmente ontem , onde um software assumia o nome em inglês, Program Filesmas o nome real usado era localizado no sistema. Provavelmente um dos goofs piores da Microsoft no Windows 95.
um CVn
@hobbs. @Fran Basta fazer um Internet para /usre Unix System Resources E, sim, nas primeiras versões do Unix, os usuários diretórios home também viveram sob `/ usr'
fpmurphy