O sistema operacional é o programa responsável pelo controle e coordenação do uso do hardware entre os vários programas de aplicação para os usuários que utilizam o sistema computacional. Assim, podemos dizer que o sistema operacional é um conjunto de módulos de software que regem os recursos do sistema, resolvendo seus conflitos, simplificando o uso da máquina e aperfeiçoando seu desempenho global.
Portanto, o Sistema Operacional atua como intermediário entre o hardware do computador e os programas utilizados pelo usuário.
1.3.1 Objetivos de um Sistema Operacional
1.3.2 Serviços do Sistema Operacional
Uma visão bastante comum do sistema operacional é aquela que entende este software como uma extensão da máquina, fornecendo mais serviços para os aplicativos e outros programas básicos. Além disso, o sistema operacional pode ser considerado também um administrador e fornecedor de recursos (incluindo serviços). Ele cuida de todos os recursos que estão disponíveis no computador, permitindo ao usuário utilizar a máquina (hardware + SO) de maneira amigável. Isso é fundamental em qualquer sistema operacional, tornando-se mais crítico naqueles que permitem mais de um usuário ao mesmo tempo.
1.3.2.1 Tipos de Serviços
O sistema operacional fornece um ambiente para a execução de programas, através de serviços para os programas e para os usuários desses programas. Alguns serviços não têm como preocupação apenas tornar a máquina mais confortável para o usuário, mas também, para que o próprio sistema seja mais eficiente e seguro. Esse é o caso dos serviços oferecidos nos sistemas que permitem vários usuários compartilhando todos os recursos da máquina. Apesar da forma como esses serviços são oferecidos variar de sistema para sistema, existem algumas classes de serviços que são comuns a todos os sistemas operacionais. Como exemplo temos:
1.3.3 Constituição de um Sistema Operacional
O Sistema Operacional é constituído por um Kernel, ou núcleo, e um conjunto de Programas de sistema, que executam operações simples, mas que juntos gerenciam todo o sistema computacional.
Se não existisse o Kernel, todo software desenvolvido deveria saber se comunicar com os dispositivos do computador de que precisasse.
Quando temos um Sistema Operacional, é ele quem precisa saber lidar com os dispositivos, sabendo "falar" com a placa de som, a internet, os disquetes... Assim, um software que seja feito para funcionar neste sistema não precisará de informações específicas do equipamento. Ao invés disso, ele chamará Função do kernel e o Sistema Operacional é que fará a comunicação, repassando os resultados.
1.3.3.1 Kernel
Kernel é o núcleo do sistema operacional. Ele representa a camada mais baixa de interface com o Hardware, sendo responsável por gerenciar os recursos do sistema computacional em sua totalidade.
Visualize, na Figura 10, a representação gráfica da comunicação dos componentes de um sistema de computação e a relação de importância do Kernel.
Figura 10 – Representação de associação do Kernel com o Sistema Computacional
É no Kernel que estão definidas funções para operação com periféricos (mouse, teclado, caixa de som, impressoras), gerenciamento de memória, entre outros. Resumidamente, o Kernel é um conjunto de programas que fornece para os programas de usuário (aplicativos) uma interface para utilizar os recursos do sistema.
Quanto à sua arquitetura, o kernel pode ser monolítico — em um único bloco, com todas as funcionalidades carregadas na memória —, ou modular — com os módulos específicos para cada tarefa carregados opcionalmente, dinamicamente.
Como você já sabe, o Kernel é a parte mais importante do sistema operacional, pois, sem ele, a cada programa novo que é criado, seria necessário que o programador se preocupasse em escrever as funções de entrada/saída, de impressão, entre outras, em baixo nível, causando uma duplicação de trabalho. Como o Kernel já fornece a interface para que os programas possam acessar os recursos do sistema de um nível mais alto e de forma transparente, fica resolvido o problema.
Quando há periféricos ou elementos de um sistema computacional que o Kernel não cobre, então se faz necessário escrever a comunicação entre estes, os chamados drivers.
Desta forma, driver é um programa que faz a comunicação do Sistema Operacional com o Hardware, caso o Kernel não possua suporte para determinado dispositivo de Hardware.
1.3.3.2 Programas de sistema
Os programas de sistema, algumas vezes chamados de utilitários, são executados fora do Kernel do Sistema Operacional. Esses programas implementam tarefas básicas para a utilização do sistema e muitas vezes são confundidos com o próprio sistema operacional. Como implementam tarefas essenciais para a utilização do computador, são, em geral, distribuídos pelo próprio fabricante do sistema operacional.
Exemplos de programas de sistema são os gerenciadores de arquivos (Windows Explorer), verificadores de erros no disco rígido (Scandisk), entre outros. Também é comum o emprego de programas de sistema para a obtenção de informações a respeito do sistema ou quais usuários estão utilizando o computador no momento (gerenciador de tarefas).
O mais importante programa de sistema é o interpretador de comandos. Esse programa é ativado pelo sistema operacional sempre que um usuário inicia sua sessão de trabalho. Sua tarefa é receber comandos do usuário e executá-los. Para isso, ele recebe os comandos digitados pelo usuário, analisa seu conteúdo e executa o comando. Como exemplo de interpretador de comandos em modo texto, cita-se o encontrado nos sistemas operacionais Linux e DOS.
Acerca do interpretador de comandos descrito acima, afirma-se que é válido para a situação em que o sistema operacional oferece uma interface gráfica de usuário (GUI - graphical user interface) encontrado nos Sistemas Operacionais Windows e nas distribuições atuais do Linux. A diferença está na interface gráfica em que o usuário passa a utilizar ícones, menus e o mouse para acionar comandos ao invés de digitar comandos de texto no interpretador de comandos.