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.
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
- https://pt.wikipedia.org/wiki/Windows_Shell (acessado em 2024-08-22)
- https://pt.wikipedia.org/wiki/Shell_do_Unix (acessado em 2024-08-22)
Referências
- https://stackoverflow.com/a/30782137 (acessado em 2024-08-22) ↩︎
Deixe um comentário