Shell

O que é "Shell" em um Sistema Operacional?

Shell (traduzido do Inglês para o Português: "casca") é a interface usada para interagir com o kernel ("núcleo") de um sistema operacional. Ou seja, shell é a camada externa, kernel é a camada interna do sistema operacional.

Em sistemas Linux, como o Ubuntu, o Linux é o kernel, e o termo shell refere geralmente refere a um interpretador de comandos de terminal (um shell Unix), geralmente o bash da GNU(veja: GNU/Linux). No Windows, por ser um sistema operacional de desktop completo com interface gráfica, o termo shell geralmente refere a interface gráfica do sistema, incluindo a barra de tarefas e menu iniciar, por exemplo. Em ambos casos, seria possível instalar um shell diferente do instalado por padrão.

Shell Gráfico do Windows

Um exemplo no Windows seria o Classic Shell (abandonado), cujo fork atual é o Open Shell (github.com/Open-Shell/Open-Shell-Menu).

Em sistemas Linux, o que é chamado de shell no Windows seria chamado de ambiente de desktop no Linux.

Shell no Linux

No caso de shells Unix, o shell é o interpretador de comandos, o que significa que shells diferentes interpretariam comandos de maneira diferente. A diferença principal no caso seria a linguagem e recursos de sintaxe de script. Por exemplo, se compararmos o shell bash da GNU com o shell ash de BusyBox, ash não suporta a sintaxe de substituição de processo <(comando)1.

diff  <(cd alpha ; find . -type f) <(cd beta; find . -type f)

O código acima funcionaria em bash, mas não em ash.

Shell de Texto do Windows

No Windows, um shell no sentido de interpretador de comandos seria o Prompt de Comando, enquanto outro seria o PowerShell. O Prompt de Comando é extremamente antigo, tendo problemas ao lidar com texto Unicode, por exemplo, que o PowerShell mais moderno não teria.

Uma janela de terminal com fundo preto e texto branco e duas guias, "Windows PowerShell" e "Prompt de comando." O conteúdo escrito "Microsoft Windows [versão 10.0.22631.4037] (c) Microsoft Corporation. Todos os direitos reservados. C:\Users\br>", e um cursor de texto imediatamente após isso.
Screenshot do Terminal do Windows.

Diferença entre Shell e Terminal ou Console

Shell não é a mesma coisa que terminal ou console. No Linux, há vários aplicativos de terminal que expõem uma janela de terminal onde você pode digitar os comandos, e.g. Konsole, Alacritty, etc. Esses aplicativos permitem que você digite os comandos em uma janela, mas quem interpreta o texto digitado é o shell, ou seja, é o bash na maioria das distribuições Linux por padrão.

Mais Informações

Referências

  1. https://stackoverflow.com/a/30782137 (acessado em 2024-08-22) ↩︎

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *