Por que a palavra "shell" foi usada para descrever uma interface de linha de comando?


28

Estou curioso sobre o termo "concha". Eu acho que sei o que é (embora a distinção entre "shell" e "terminal" ainda seja imprecisa), mas por que a palavra "shell" foi escolhida para descrever esse tipo de programa?

Isso pode parecer sem importância, mas geralmente quando a palavra escolha me intriga, está apontando para uma lacuna no meu entendimento.


Um terminal é um dispositivo ou tubo de E / S. Um shell é um programa executável que interativamente recebe em tempo real a entrada do usuário de um terminal e, em seguida, faz as coisas com base nele. "Conchas" sem provisão para uso interativo direto são tecnicamente intérpretes de script de algum tipo.
— LawrenceC

Respostas:


8

O glossário Multics pode fornecer uma pista. O shell é definido assim:

O processador de comando Multics costumava ser chamado de shell. Este programa recebe uma linha de comando para execução pelo ouvinte; ele analisa a linha em um nome de comando e argumentos, localiza o comando e o inicia e chama o programa de comando com argumentos que são cadeias de caracteres PL / I. É simples substituir o shell padrão do sistema fornecido por um programa fornecido pelo usuário, chamando cu_ $ set_cp (veja a abreviação). Um shell Unix inclui os conceitos de shell e ouvinte no sentido Multics.

A relação entre shell e ouvinte faz sentido etimologicamente e metaforicamente [1].

[1] "Visto que a concha é um símbolo de autoridade, fala e audição, ou seja, um símbolo de profecia ..."



10

De http://en.wikipedia.org/wiki/Thompson_shell#History

"O nome" shell "para um interpretador de linha de comando e o conceito de tornar o shell um programa de usuário fora do kernel do sistema operacional foram introduzidos no precursor do Unix, Multics".

Mais abaixo, na wikipedia, a toca do coelho encontra o seguinte: "Louis Pouzin, introduziu o termo shell para a linguagem de comando usada no Multics"

Eu não li na íntegra, mas os escritos aqui podem dar a resposta: http://www.multicians.org/shell.html

EDIT: na verdade, não é explicado. Ele apenas "cunhou" o termo. Não é a história engraçada que você estava esperando, era?


3
Insatisfatório, mas é assim que acontece às vezes.
— Eric Wilson

10

Talvez porque seja a superfície, protegendo o núcleo interno do usuário? Portanto, o núcleo seria a pérola dentro da casca.


Eu sempre ouvi dizer que o shell era uma camada protetora que protegia o usuário do kernel.
— perfil completo de Glorytoad

1

Looks like the answer lies here:

Nota histórica: Aparentemente, o shell Multics original (sentido 1) foi assim chamado porque era um shell (sentido 3); executava programas do usuário não iniciando processos separados, mas vinculando os programas dinamicamente em seu próprio código, chamando-os de sub-rotinas e, em seguida, desassociando-os dinamicamente no retorno. O intérprete de comando do VMS ainda faz algo muito parecido com isto.

- Wikipedia

Ou seja, "shell" era uma boa analogia do mundo real de como Multics, um antecessor do Unix, executava programas.


A Wikipedia não é uma fonte. Usá-lo como um, leva ao fornecimento circular, onde a Wikipedia usa um site como fonte, que por sua vez usa a Wikipedia como fonte. Tal como está, isso é pura especulação.
— Evi1M4chine

0

Pelo que entendi, "shell" é um termo mais antigo para o que agora chamaríamos de "Interface do Usuário Principal". O termo análogo moderno seria "ambiente de desktop", uma vez que todos os sistemas modernos usam a metáfora do desktop.


11
Há muita sobreposição, mas isso não é exatamente correto. Todo shell é uma interface de usuário. Mas nem toda interface de usuário é um shell. Um shell é a principal interface do usuário, em torno de tudo e a partir do qual tudo começa. É a principal interface do usuário do sistema operacional.
— Evi1M4chine

-2

O kernel é o núcleo do sistema, enquanto o shell o envolve e é a interface entre o kernel e o usuário.

Em qualquer sistema UNIX, e mesmo nos sistemas Linux, o shell é o local em que os administradores de sistemas trabalham para configurar e gerenciar um sistema.

A terminologia moderna geralmente usa o termo CLI ou interface da linha de comandos para descrever o prompt do shell. Isso é deferência à GUI ou interface gráfica do usuário. No entanto, qualquer Sysadmin real sabe que você não deve usar ferramentas da GUI para configurar um UNIX / Linux e trabalhar apenas diretamente no prompt de comando do shell.

Isso é ainda mais relevante hoje em dia, quando ouvimos alguns entusiastas do Linux dizendo coisas como "Eu uso o Linux, mas eu realmente não aprendi a CLI".

Como diz o velho ditado "Se você não pode fazê-lo no prompt do shell, não pode fazê-lo".


Eu recebi uma votação por dizer a verdade. ah bem ...
— Colinux 30/05
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.