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.