SISTEMAS OPERACIONAIS - EF08TEC02
Todas as vezes que alguém pergunta: qual o sistema operacional que você
usa? Instantaneamente, você pensa na janelinha do Windows, no shell do Linux ou
mesmo no ícone de configurações do Android, dentre outros, não é mesmo?!
Mas e se eu te contasse que um sistema
operacional não se resume àquele visual com pastinhas bonitinhas clicáveis e
tão úteis em nosso dia-a-dia - conhecido como GUI (Graphical User interface,
interface gráfica do usuário)
Durante a leitura, nós vamos identificar
qual o conceito de sistema operacional, alguns de seus aspectos fundamentais,
compreenderemos sua importância tanto para o usuário comum, quanto para as
pessoas desenvolvedoras, e também conheceremos tipos e estruturas de sistemas.
O que é um sistema operacional?
Fundamentalmente, um sistema operacional
é um software, que pode ser o Linux, Windows, Android, macOS, UNIX, entre
outros. No entanto, ele não resume aquilo que seus olhos conseguem ver ou ao
que você consegue interagir. Em outras palavras, é um programa que conversa
diretamente com o hardware da sua máquina.
O sistema operacional assegura que os
programas funcionem corretamente. Mas antes de entendermos o que é um sistema
operacional, precisamos definir o que é um sistema computacional.
Um computador moderno apresenta alguns elementos principais, que
podemos destacar:
- · Um ou mais processadores (o core);
- · Memória principal;
- · Dispositivos de entrada e saída (E/S), como monitores e teclados.
Todos esses componentes lidam em conjunto com os programas na sua
máquina. À primeira vista pode parecer pouca coisa, mas você conhece de fato
todos os componentes que pertencem ao seu computador? Sabe como todos eles
funcionam?
Já pensou então, se todo o usuário e
usuária se preocupassem com detalhes de hardware para escrever um arquivo de
texto? Ou pior, se os desenvolvedores e desenvolvedoras tivessem que aprender
os pormenores dos componentes de um computador moderno para conseguir começar a
programar? Parece um trabalho sem fim, não é?
Qual a função do sistema operacional?
O autor do livro sistemas operacionais
modernos, Tanenbaum, levanta essa questão e justifica que o sistema operacional
surgiu para intermediar o diálogo entre máquina e pessoa programadora (ou mesmo
usuário/a mais avançado).
Assim, a gente não precisa se preocupar
em administrar todos os recursos na mão, ou então, por exemplo, ter que
deslocar um espaço na memória específico para determinada variável?
Ademais, certamente a quantidade de
programadores e softwares disponíveis na atualidade não seria a mesma se
houvesse a necessidade também de gerenciar formas de otimização dos recursos.
Muitas vezes o sistema operacional é
considerado um software base, porque fornece suporte às aplicações. Ele
funciona como uma interface entre a aplicação e as rotinas de E/S com o
hardware, ou seja, é preciso ter um sistema que faça essa conversa, e é nesse
campo que o sistema operacional atua. Essa peça mais elementar de software
opera em dois modos: o modo núcleo (modo supervisor) e o modo usuário.
No modo supervisor o acesso é completo a
todo o hardware, e é possível enviar qualquer instrução que a máquina seja
capaz de executar. O modo usuário é mais restrito para instruções que
interferem no controle da máquina, mas é onde todo o resto do software opera.
Na imagem abaixo, conseguimos visualizar
de forma simplificada as responsabilidades dos modos usuário e núcleo, assim
como o local de atuação dos programas de interface com o usuário (GUI ou
shell):
Desenho que mostra as camadas de um
sistema operacional, sua posição e relação
com hardware e o modo usuário. Na camada acima há o modo usuário, que é
composto pelas aplicações (como navegador web, reprodutor de música), a segunda
camada é o programa de interface com o usuário. A terceira camada é o modo
núcleo, que também é um software mas já faz parte do sistema operacional. Por
fim há o hardware.
Embora a divisão de responsabilidades
pareça muito clara, em diversas ocasiões, a distinção entre o campo de atuação
do sistema operacional e o modo usuário (software usual) se torna complexa. Um
exemplo dessa afirmação é um programa que funciona em modo usuário, mas executa
tarefas privilegiadas, como permitir ao usuário a troca de senha.
Em outras palavras, definir exatamente
um sistema operacional não é tão simples assim, mas conseguimos diferenciá-los
de programas de usuário por meio de suas particularidades.
Em resumo, as principais funções do
sistema operacional são:
1) funcionar como uma ponte entre
aplicações na camada do usuário e hardware;
2) e gerenciar os recursos de um sistema
complexo (por exemplo, quando você executa vários programas ao mesmo tempo, na
realidade é o seu sistema operacional que troca, em frações de segundos, o
programa processado pela unidade central de processamento).
Além disso, são programas robustos,
complexos e possuem longa vida. Apesar de serem muito difíceis de escrever,
você acredita que o Linux tem cerca de cinco milhões de linhas? E isso é só a
parte que opera no modo núcleo!

Comentários
Postar um comentário