Por que os diretórios / usr e / tmp para Linux perdem as vogais em suas grafias?

34

Muitas vezes comecei a pensar sobre isso, mas nunca encontrei uma boa resposta. Por que esses dois diretórios Unix não são /usere, em /tempvez disso?

Todos os outros diretórios abaixo rootparecem ser exatamente o que alguém imagina que sejam, mas esses dois parecem estranhos, eu sempre os adivinharia como usere temp.

Existe alguma razão histórica para as grafias?

lazer
fonte
2
Algo me diz que é uma transição do Unix. Nessa suposição, eu acho que a maioria desses truncamentos se baseia em sílabas proeminentes.
Ken
17
Uma vez, Ken Thompson foi perguntado se ele faria qualquer coisa diferente fosse ele redesenhar Unix, e ele respondeu: "" Eu soletrar creat com um e."
mattdm
3
"Todos os outros diretórios no root parecem ser exatamente o que alguém imagina que sejam" -> Isso não me parece verdadeiro. Exceto para boot, home, mediae roottudo o resto é encurtado. mnttambém faltam suas vogais.
phunehehe
7
Eu pensei 'u' foi uma vogal ...
Mr. Shickadance
11
@Sr. Shickadance: é.
0xC0000022L

Respostas:

49

Sim, havia razões. Eles são pronunciados usuário e temp. passwd é semelhante, assim como o resolv.conf. O Unix é um sistema operacional antagônico e amigável ao usuário.

Eu era estudante quando 300 modems Baud eram a norma. Eu tinha inveja dos meus colegas, pois tinha um terminal Silent 700 da Control Data em que estava trabalhando. Você pode ver o atraso digitando cada caractere e aguardando o eco. Todo personagem contava; Eu também vejo isso como um incentivo ao início do leet speak.

Os hjkl do vi têm uma história que poucos conhecem. O vi foi desenvolvido por Bill Joy quando ele era um estudante de graduação na UCB durante esses mesmos anos. Os terminais da ADM 3a em Cory Hall tinham teclas de seta acima dessas letras

Tom Murphy
fonte
22
Eu não acho que quando foi projetado, a ideia de ser "especialista em especialistas, antagônico ao usuário" fazia parte do objetivo. Todos os usuários eram especialistas, então não havia distinção significativa.
mattdm
7
LOL "Experiência amigável, antagônico ao usuário". Valeu meu dia. +1!
Nico
5
Apenas uma pequena nota (sem nenhuma correção). Embora às vezes seja pronunciado "usuário", / usr significa "recurso universal do sistema" ou "recurso do sistema unix". Seja o que for, está perdido no meio da névoa da história antiga do Unix :)
luis.espinal
21
No momento em que / usr foi cunhado, seu significado era usuário e os diretórios pessoais estavam localizados lá. O recurso de sistema unix / universal é na verdade um backronym.
jlliagre
2
Quando o Unix saiu, 300 bps era exuberante . Havia links de 75 bps por aí, manipulados por máquinas de escrever eletromecânicas pesadas, lentas e eletromecânicas (geralmente Teletype® ASR-33).
Alexios 12/01
20

Eles são remanescentes do Unix. A memória e o espaço em disco estavam em falta. Cortar algumas vogais e outras abreviações deu uma economia real. Alguns blocos de disco ou bytes podem significar a diferença de poder executar um programa ou não. (Uma vez tive que cortar um programa em 24 bytes antes que ele fosse executado.)

Também como Tom notou que as velocidades dos terminais eram lentas. 1200 baud foi introduzido como alta velocidade e foi. Eu trabalhei com um sistema que usava um teletipo de meia velocidade (55 baud ou 5 cps) como console.

Nos sistemas que executam interfaces gráficas, geralmente não importa o quanto os usuários médios não os procurem. Os diretórios geralmente estão bem documentados na hierpágina de manual.

Mudar para nomes mais longos causaria muitos problemas para os programas existentes. Isso também limitaria a portabilidade do script. Vincular vários nomes aos mesmos diretórios provavelmente seria mais confuso do que útil.

EDIT: O PDP-7 no qual o Unix foi desenvolvido tinha uma configuração básica de 4KW de memória e um máximo de 32KW. Palavras com 18 bits de largura. A entrada era um teletipo; portanto, a velocidade era provavelmente 110 baud ou 10cps, aproximadamente 100 palavras, significativamente mais lenta que a fala.

BillThor
fonte
8
Eu não compro mmory nd dsk spc, mas tltyps lento. Desde que você use os siglas - por que não?
desconhecido usuário
@ usuário desconhecido: Então você é jovem e nunca teve que se preocupar com memória ou espaço em disco. Meu primeiro computador tem 30 anos agora - maravilhe-se com as especificações.
11
Nunca escrevi ou inspecionei um sistema de arquivos em profundidade, mas o nome de um arquivo / diretório no sistema de arquivos ocupa mais ou menos espaço, dependendo de um caractere? Os arquivos sempre ocupam um múltiplo de algum tamanho - hoje 4k. Portanto, a maioria dos arquivos que contêm um caminho para / usr ou / tmp não será efetivamente menor ou maior, dependendo de um único e. Bem - às vezes eles crescem e depois crescem por um tamanho inteiro, mas raramente. E na RAM? Eu não sei.
desconhecido usuário
11
e teria sido mais chato de digitar. "temporário vs tmp" ugh ... por que alguém iria querer mais?
Xenoterracide
4
Os diretórios modernos do Unix possuem entradas de tamanho variável. De volta ao Research Unix, uma entrada de diretório tinha 16 bytes fixos: 14 para o nome do arquivo, 2 para o número do inode. E pode ter sido menor quando / usr etc. foram canonizados.
Geekosaur #
5

Estou surpreso que ninguém tenha comentado /userainda. Este é óbvio: porque não é "usuário", é "Recursos Universal do Sistema".

Quanto a /tmp, é simplesmente mais curto e mais fácil de digitar. Os programadores C têm o hábito de usar nomes abreviados quando possível, porque acabam digitando-os várias vezes em um programa. É muito comum ter uma variável temporária chamada "tmp" em vez de "temp" pelo mesmo motivo, você usa "i" i para o índice em um loop for em vez de "index" ou "counter".

Shawn J. Goff
fonte
22
No momento em que / usr foi cunhado, seu significado era usuário e os diretórios pessoais estavam localizados lá. O recurso de sistema unix / universal é na verdade um backronym.
Jlliagre 6/03
3
@jlliagre Awesome. Encontrei outro tópico que realmente tem uma fonte autorizada disso. us.generation-nt.com/answer/...
Shawn J. Goff
2
A maioria dos primeiros programadores C foram os primeiros programadores FORTRAN. A maneira como você digitou números inteiros no Fortran IV era iniciar o identificador com um caractere de 'i' a 'n'; todo o resto era um número REAL. Assim, os índices de loop eram tipicamente i, j ou k; o que foi suficiente para as matrizes que nós, programadores científicos, estávamos manipulando na época.
Tom Murphy
@ TomMurphy, a maioria das pessoas que começou com C provavelmente eram programadores em linguagem assembly, ou talvez usuários de BCPL ou B. O RATFOR foi inventado para as pobres almas que não tinham uma linguagem decente na mão. E o livro "Ferramentas de software" de Kernighan e Plaugher foi escrito (e lista um pré-processador completo para) RATFOR. Ainda vale muito a pena ler.
vonbrand
11
/usrnão era "Universal System Resources", era realmente usuário . Veja o YouTube: Arquivos da AT&T: O sistema operacional UNIX (produzido por volta de 1982), onde, a cerca de 13 minutos e 35 segundos, /usr/bwké claramente pronunciado "user-bwk" e /usr"slash-user" por Brian W. Kernighan . / usr também está claramente implícito como o local que contém os diretórios pessoais no diagrama em 13min 30seg. Não acho que você possa ter muito mais autoridade do que isso.
um CVn
4

Um fator que ninguém mencionou é que, dada a tecnologia de teclado da época, havia uma vantagem substancial no uso de nomes abreviados, mais fáceis de digitar. Impressão uservs. usr, mesmo em um teletipo de 110 BPS, provavelmente não era um grande negócio; ter que digitar essa letra extra era provavelmente mais significativo.

Keith Thompson
fonte
1

Todos os outros diretórios no root parecem ser exatamente o que alguém poderia imaginar,

Há também / var, / mnt e / opt;)

mas esses dois parecem estranhos, eu sempre os adivinharia como usuário e temp.

Quase lá. Como Shawn disse, "usuário" significa "Universal System Resources" (embora outros recursos, de acordo com o google, indiquem "Unix System Resources").

Existe alguma razão histórica para as grafias?

Atalhos, abreviações. Lembre-se de que os comandos em qualquer sistema operacional se destinam a acessar de forma interativa e programática. Especialmente na administração de sistemas em que o script rápido é uma das principais preocupações, abreviações, mnemônicos são tão bons (ou até melhores) que a palavra / comando com grafia completa.

Além disso, antigamente, se você estivesse se conectando remotamente através de um modem lento como o melaço, barbear algumas vogais aqui e ali tornaria sua vida mais fácil (ou menos infeliz se você fosse um administrador de sistemas tentando descobrir o que diabos está errado com uma caixa remota.)

Como dito anteriormente, não é exclusivo para / usr e / tmp (consulte / var, / mnt e / opt).

Além disso, não é exclusivo do Unix. Veja o DOS, por exemplo (chkdsk, por exemplo.) Mnemônicos em que você raspa vogais são um conceito poderoso e útil.

Mesmo em línguas naturais (como as línguas semíticas), o conceito existe (onde a raiz das palavras é universal e quase inequivocamente identificada por grupos de três consoantes). É um mecanismo humano inato para gerenciar informações.

luis.espinal
fonte
O / var, / mnt e / opt vieram MUITO mais tarde. No entanto, / bin, / dev e / etc estavam no UNIX muito antigo e pela mesma razão que as pessoas declaravam - porque os ttys eram lentos e nem todos eram CRT e espaço em disco. Havia sistemas de inicialização UNIX lá fora, usando fita de papel, pequenas unidades (espaço-wise) caro e até mesmo 8" disquetes Espaço para aqueles foram premium..
Arcege
11
Pode-se argumentar que as línguas semíticas não usam consoantes, mas sílabas com vogais indeterminadas. Assim, as sílabas raiz fornecem significado semântico, enquanto as vogais específicas adicionam significado gramatical.
Ninjalj