O tema sobre sistemas operacionais, deveria ser uma base obrigatória para todo e qualquer programador. Acredito que muitos bugs poderiam ser evitados, se a galera se preocupasse um pouco mais em absorver conhecimento sobre esse tema. No artigo anterior, falei sobre o Kernel e hoje vamos falar sobre o Shell. Como algumas pessoas ainda têm dúvidas sobre a diferença entre Kernel e Shell, vou aproveitar esse artigo para sanar essa dúvida a medida que já ensino o que é Shell.
A diferença entre o Kernel e o Shell é que o Kernel é o núcleo do sistema operacional que controla todas as tarefas do sistema, enquanto o Shell é a interface que permite aos usuários se comunicarem com o Kernel.
Se não lembrar o que é Kernel, veja o artigo “O que é esse tal de Kernel?”. Voltando para o Shell, a grosso modo, ele é um interpretador de comandos e é a interface entre o usuário e o kernel.
Literalmente a palavra Shell vem de concha ou casca, e é basicamente isso que o Shell representa. Nos sistemas operacionais o Shell é literalmente a camada mais externa em torno do núcleo do sistema operacional. Por isso o trocadilho no título: O Shell é o limite!!! kkkkk
Porque você precisa saber o que é um Shell?
No mundo da programação, você vai desenvolver seus programas em diversos tipos de sistemas operacionais. Dentro os mais comuns você vai utilizar o Windows e Linux. Esse segundo, sua principal característica, é o uso massivo de scripts via Interface de Linha de Comando (CLI). CLI, grave bem essa sigla e o seu significado, porque vai te acompanhar em todos os momentos de sua vida como programador ou programadora.
De uma forma resumida, o CLI é um programa que permite que os usuários digitem comandos de texto dando instruções a um computador para fazer funções específicas. Ou seja, o CLI envia comandos para e o Shell processar algo. Sacou?
Na prática, existem muitas coisas que o Shell pode processar. Podemos sitar como exemplo:
- Ele manipula arquivos e diretórios;
- pode abrir ou fechar programas;
- Gerencia processos do computador;
- Executa ações e atividades repetitivas. Etc…
Entre muitos tipos de Shell’s existentes, os mais populares são o Windows Shell (para Windows) e o Bash (para Linux e Mac). Além desses interpretadores via texto, existem as interfaces com recursos gráficos, que são as chamadas interface gráfica de utilizador (GUI). Essa é outra sigla que você vai ver muito em vários artigos kkkk.
A principal diferença entre GUI e CLI é que a interface gráfica do usuário (GUI) permite que o usuário interaja com o sistema usando elementos gráficos, como janelas, ícones, menus, enquanto a interface de linha de comando (CLI) utiliza scripts em comandos utilizando texto. Basicamente é isso kkkk!!! A imagem a seguir retrata muito bem esse conceito e diferença entre um e outro:
Ufa!!! Agora sim! Chegamos a um alinhamento de conhecimentos necessários para você entender o que são sistemas operacionais, como são as suas arquiteturas e como um sistema operacional está organizado segundo as suas camadas. Percebe a importância de fortalecer a base dos seus estudos através do conhecimento a respeito da arquitetura dos sistemas operativos? Agora você vai entender melhor os conceitos de como desenvolver um software. Já podemos avançar para o estudo de Algoritmos.
Confiança Sempre!!!
Fontes:
Seja o primeiro a comentar