Como um shell é diferente de um interpretador de comandos? [fechadas]

2

Edit: Na questão duplicada vinculada, é respondido que o shell = interepreter da linha de comando. Tanenbaum diz que não é assim. Portanto, a questão ligada não resolve o meu problema: por que Tanenbaum diz isso e que tipo de "concha" ele implica?

Lendo os "modernos sistemas operacionais" de Andrew S. Tanenbaum, 3ª ed., na página 10, sob 1.2.2, vejo o seguinte:

These primitive control cards were the forerunners of the modern shells and command-line interpreters.

Eu tenho usado o Linux diariamente por anos, e estou familiarizado com o conceito de um interpretador de linha de comando, ou seja, Bash, Sh, Tcsh, Zsh, Csh. Agora, eu sempre tive certeza que "shell" é igual a "Bash" é igual a "interpretador de linha de comando". Além disso, eu entendo que os comandos que eu digito são executados e os resultados retornados para mim por um executável concreto, que pertence à lista acima. No entanto, Tanenbaum lista essas categorias como separadas.

Assim, a pergunta: o que exatamente é um " shell ", como ele é diferente de um " interpretador de linha de comando ", ou talvez seja apenas no contexto de o livro que esses dois conceitos diferem? Talvez seja a shell GUI que está sendo mencionada aqui?

    
por iksemyonov 07.08.2016 / 14:10

2 respostas

2

Isso é bem amplo.

O Shell era a interface entre o kernel do usuário e o unix.

Antigamente, o shell seria semelhante ao CLI, ou seja, sh , csh , tcsh eram CLI.

Hoje em dia com a Interface Gráfica do Usuário (filhos do X-window, localizador da apple, ambiente de trabalho da amiga) você pode executar seu host sem knoning sobre ls , portanto, de alguma forma as GUIs também podem ser chamadas de "shell".

No entanto, bash e friend estão no CLI e shell familly, enquanto o Gnome, KDE e todos estão no GUI familly.

    
por 07.08.2016 / 15:01
1

Eu também não vejo que Tanenbaum tenha dito algo assim. Por exemplo, uma versão diferente no link tem este texto:

These primitive control cards were the forerunners of modern job control languages and command interpreters.

Mas eu não sei se isso é rev.4 (acho) ou mais antigo, mas parece que parece confuso, e por isso foi alterado.

    
por 07.08.2016 / 15:36