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

61

Eu estou querendo saber se existe alguma razão histórica ou prática porque o comando umount não é unmount .

    
por uloBasEI 21.03.2011 / 22:04

3 respostas

75

Esta data remonta à primeira edição do Unix , onde todas as os nomes de arquivo padrão tinham no máximo 6 caracteres (pense em passwd ), embora esta versão suportasse um whooping 8 caracteres em um nome de arquivo . A maioria dos comandos tinha um arquivo de origem associado que termina em .c (por exemplo, umount.c ), o que deixou apenas 6 caracteres para o nome base.

Uma limitação de 6 caracteres também pode ter sido um remanescente de uma versão de desenvolvimento anterior ou herdada de um sistema IBM atual que tinha uma limitação de 6 caracteres. (Implementações Early C tinham um limite de 6 caracteres nos identificadores - identificadores mais longos eram aceitos, mas o compilador só olhava os 6 primeiros caracteres, então foobar1 e foobar2 eram a mesma variável.)

(Achei que me lembrei de uma página umount man que listou a ortografia como um bug de origem desconhecida, mas não consigo encontrá-la agora.)

    
por 21.03.2011 / 22:21
8

Parece que houve algum erro de informação sentado aqui por um tempo agora.

O motivo mais provável para o comando umount ter o nome abreviado é porque ele segue do nome da chamada do sistema que ele usa: umount() .

A razão provável pela qual o sistema "unmount" chama o nome umount() porque os primeiros linkers limitavam o comprimento dos identificadores externos a apenas 6 caracteres (de apenas um caso) em alguns tipos de sistemas (e fazia sentido para manter compatibilidade com tais ferramentas no momento), e "umount" é uma forma lógica de abreviação para "desmontar". Veja a página 179 da primeira edição de A Linguagem de Programação C para obter uma lista do identificador externo características de vários sistemas de interesse no momento da publicação.

Note também que os primeiros compiladores C trataram os primeiros 8 caracteres de um identificador como significativos, mas permitiram que os identificadores fossem mais longos. (K & R página 33)

Note que o comprimento dos identificadores nas tabelas de símbolos tem nada diretamente com o tamanho do nome do arquivo, pelo menos não dentro do Unix (tabelas de símbolos Unix, desde V1, tem 8 caracteres para identificadores, embora é notado no manual V1 que o assembler " gera símbolos de no máximo 7 bytes ").

    
por 04.03.2017 / 03:24
-1

Pelo mesmo motivo, a chamada do sistema creat não está escrita create ?

link

    
por 21.03.2011 / 22:16