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, foobar1e foobar2era a mesma variável.)
(Pensei ter me lembrado de uma umountpá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 passwdfoi truncado para 6 caracteres (também não havia um passwdcomando, apenas /etc/passwd).
urandom
Parece que houve algumas informações erradas aqui por um tempo agora.
A razão mais provável para o umountcomando 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 creatchamada do sistema não está escrita create?
.c(ou.s) = limite de nome de arquivo de 8 caracteres.