Respostas:
Isso remonta à primeira edição do Unix , onde todos os nomes de arquivos padrão tinham apenas no máximo 6 caracteres (acho passwd
), mesmo que essa versão suportasse 8 caracteres gritantes em um nome de arquivo . A maioria dos comandos tinha um arquivo de origem associado terminado em .c
(por exemplo umount.c
), que deixava apenas 6 caracteres para o nome base.
Uma limitação de 6 caracteres também pode ter sido uma reserva de uma versão de desenvolvimento anterior ou herdada de um sistema IBM atual que possuía uma limitação de 6 caracteres. (As implementações iniciais do C tinham um limite de 6 caracteres nos identificadores - identificadores mais longos foram aceitos, mas o compilador olhou apenas os 6 primeiros caracteres, portanto, foobar1
e foobar2
era a mesma variável.)
(Pensei ter me lembrado de uma umount
página de manual que listava a ortografia como um bug de origem desconhecida, mas não consigo encontrá-la agora.)
directory
, que ainda não caberia). Então, eu me pergunto por que passwd
foi truncado para 6 caracteres (também não havia um passwd
comando, apenas /etc/passwd
).
urandom
Parece que houve algumas informações erradas aqui por um tempo agora.
A razão mais provável para o umount
comando com o nome abreviado é porque segue a partir do nome da chamada do sistema que ele usa: umount()
.
A razão provável pela qual a chamada de sistema "desmontar" com o nome umount()
é que os vinculadores iniciais limitaram o comprimento dos identificadores externos a apenas 6 caracteres (de apenas um caso) em alguns tipos de sistemas (e fazia sentido manter a compatibilidade com essas ferramentas no momento) e "umount" é uma forma lógica de abreviação de "desmonte". Consulte a página 179 da primeira edição da The C Programming Language para obter uma lista das características do identificador externo de vários sistemas de interesse no momento da publicação.
Observe também que os primeiros compiladores C trataram os 8 primeiros caracteres de um identificador como significativos, mas permitiram que os identificadores fossem mais longos. (K&R página 33)
Observe que o comprimento dos identificadores nas tabelas de símbolos não tem nada a ver diretamente com o tamanho do nome do arquivo, pelo menos não no Unix (as tabelas de símbolos do Unix, desde a V1, têm 8 caracteres para identificadores, embora seja observado no manual da V1 que o montador " gera símbolos com no máximo 7 bytes " ).
Pela mesma razão, a creat
chamada do sistema não está escrita create
?
.c
(ou.s
) = limite de nome de arquivo de 8 caracteres.