Por que 'umount' não está escrito 'desmontar'?


64

Gostaria de saber se existe algum motivo histórico ou prático para o umountcomando não existir unmount.

Respostas:


79

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.)


21
Nome do comando de 6 caracteres + extensão .c(ou .s) = limite de nome de arquivo de 8 caracteres.
Geekosaur 21/03

@geekosaur: Ah, certo, o arquivo de origem. Se você escrever uma resposta, vou excluir a minha.
Gilles 'SO- stop being evil'

5
Enh, apenas anote-o, se quiser.
Geekosaur 21/03

@geekosaur: Pensei também na página de manual, mas a V1 não tinha um comando manual (e uma das páginas de manual é chamada 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).
Gilles 'SO- stop being evil'

2
Talvez seja por causa do sufixo grego, que significa "não", que também explique #urandom
Anthony Garcia

8

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 " ).


-1

Pela mesma razão, a creatchamada do sistema não está escrita create?

https://stackoverflow.com/questions/1713457/what-did-ken-thompson-mean-when-he-said-id-spell-create-with-an-e


4
Não. O arrependimento na citação a que você se refere é porque eles poderiam ter adicionado o 'e', ​​apesar do limite de 6 caracteres ser discutido na outra resposta. Realmente não há uma boa razão para ser truncado, ao contrário de umount.
22711 Warren Young

Acho que naquela época era tradição truncar letras, se você pudesse.
Shadur 22/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.