Um sistema operacional (SO) é o programa que, depois de ser carregado inicialmente no computador por um programa de inicialização, gerencia todos os outros programas aplicativos em um computador. Os programas aplicativos fazem uso do sistema operacional fazendo solicitações de serviços por meio de uma interface de programa aplicativo ( API ) definida. Além disso, os usuários podem interagir diretamente com o sistema operacional por meio de uma interface de usuário, como uma interface de linha de comando (CLI) ou uma interface gráfica do usuário (GUI).
Por que usar um sistema operacional?
Um sistema operacional traz benefícios poderosos para software de computador e desenvolvimento de software. Sem um sistema operacional, cada aplicativo precisaria incluir sua própria interface do usuário, bem como o código abrangente necessário para lidar com todas as funcionalidades de baixo nível do computador subjacente, como armazenamento em disco, interfaces de rede e assim por diante. Considerando a vasta gama de hardware subjacente disponível, isso aumentaria muito o tamanho de cada aplicativo e tornaria o desenvolvimento de software impraticável.
Em vez disso, muitas tarefas comuns, como enviar um pacote de rede ou exibir texto em um dispositivo de saída padrão, como um monitor, podem ser transferidas para o software do sistema que serve como intermediário entre os aplicativos e o hardware. O software do sistema fornece uma maneira consistente e repetível para os aplicativos interagirem com o hardware sem que os aplicativos precisem saber detalhes sobre o hardware.
Desde que cada aplicativo acesse os mesmos recursos e serviços da mesma maneira, esse software de sistema – o sistema operacional – pode atender a praticamente qualquer número de aplicativos. Isso reduz muito o tempo e a codificação necessários para desenvolver e depurar um aplicativo, garantindo que os usuários possam controlar, configurar e gerenciar o hardware do sistema por meio de uma interface comum e bem compreendida.
Uma vez instalado, o sistema operacional conta com uma vasta biblioteca de drivers de dispositivo para adaptar os serviços do SO ao ambiente de hardware específico. Assim, cada aplicativo pode fazer uma chamada comum para um dispositivo de armazenamento, mas o sistema operacional recebe essa chamada e usa o driver correspondente para traduzir a chamada em ações (comandos) necessárias para o hardware subjacente nesse computador específico.
Hoje, o sistema operacional fornece uma plataforma abrangente que identifica, configura e gerencia uma variedade de hardware, incluindo processadores; dispositivos de memória e gerenciamento de memória; chipsets; armazenar; rede; comunicação de porta, como Video Graphics Array (VGA), High-Definition Multimedia Interface ( HDMI) e Universal Serial Bus (USB); e interfaces de subsistema, como Peripheral Component Interconnect Express ( PCIe ).
Funções de um sistema operacional
Um sistema operacional fornece três recursos essenciais: Oferece uma interface do usuário por meio de uma CLI ou GUI; lança e gerencia a execução do aplicativo; e identifica e expõe os recursos de hardware do sistema para esses aplicativos — normalmente, por meio de uma API padronizada.
IU. Todo sistema operacional requer uma interface do usuário, permitindo que usuários e administradores interajam com o sistema operacional para configurar, configurar e até solucionar problemas do sistema operacional e de seu hardware subjacente. Existem dois tipos principais de UI disponíveis: CLI e GUI.
Funções de um sistema operacional
Um sistema operacional fornece três recursos essenciais: Oferece uma interface do usuário por meio de uma CLI ou GUI; lança e gerencia a execução do aplicativo; e identifica e expõe os recursos de hardware do sistema para esses aplicativos — normalmente, por meio de uma API padronizada.
IU. Todo sistema operacional requer uma interface do usuário, permitindo que usuários e administradores interajam com o sistema operacional para configurar, configurar e até solucionar problemas do sistema operacional e de seu hardware subjacente. Existem dois tipos principais de UI disponíveis: CLI e GUI.
A arquitetura de um SO
A CLI, ou janela de modo terminal , fornece uma interface baseada em texto onde os usuários contam com o teclado tradicional para inserir comandos, parâmetros e argumentos específicos relacionados a tarefas específicas. A GUI, ou desktop , fornece uma interface visual baseada em ícones e símbolos onde os usuários contam com gestos entregues por dispositivos de interface humana, como touchpads, telas sensíveis ao toque e dispositivos de mouse.
A GUI é usada com mais frequência por usuários casuais ou finais que estão principalmente interessados em manipular arquivos e aplicativos, como clicar duas vezes em um ícone de arquivo para abrir o arquivo em seu aplicativo padrão. A CLI continua popular entre usuários avançados e administradores de sistema que precisam lidar com uma série de comandos altamente granulares e repetitivos regularmente, como criar e executar scripts para configurar novos computadores pessoais (PCs) para funcionários.
Gerenciamento de aplicativos. Um sistema operacional lida com o lançamento e o gerenciamento de cada aplicativo. Isso normalmente dá suporte a uma série de comportamentos, incluindo o compartilhamento de tempo de vários processos ou threads, para que várias tarefas possam compartilhar o tempo dos processadores disponíveis; lidar com as interrupções que os aplicativos produzem para obter a atenção imediata de um processador, garantindo que haja memória suficiente para executar o aplicativo e seus dados correspondentes sem interferir em outros processos; realizar o tratamento de erros que pode remover normalmente os processos de um aplicativo; e executando o gerenciamento de memória sem interromper outros aplicativos ou o sistema operacional.
Um sistema operacional também pode oferecer suporte a APIs que permitem que os aplicativos utilizem as funções do SO e do hardware sem a necessidade de saber nada sobre o SO de baixo nível ou o estado do hardware.
Como exemplo, uma API do Windows pode permitir que um programa obtenha entrada de um teclado ou mouse; criar elementos GUI, como janelas de diálogo e botões; ler e gravar arquivos em um dispositivo de armazenamento; e mais. Os aplicativos são quase sempre adaptados para usar o sistema operacional no qual o aplicativo pretende ser executado.
Além disso, um sistema operacional pode executar os seguintes serviços para aplicativos:
Em um sistema operacional multitarefa, onde vários programas podem ser executados ao mesmo tempo, o sistema operacional determina quais aplicativos devem ser executados em que ordem e quanto tempo deve ser permitido para cada aplicativo antes de dar um turno a outro aplicativo.
Ele lida com entrada/saída (E/S) de e para dispositivos de hardware conectados, como discos rígidos, impressoras e portas dial-up.
Ele envia mensagens para cada aplicativo ou usuário interativo – ou para um operador do sistema – sobre o status da operação e quaisquer erros que possam ter ocorrido.
Ele pode descarregar o gerenciamento de trabalhos em lote – por exemplo, impressão – para que o aplicativo inicial seja liberado desse trabalho.
Em computadores que podem fornecer processamento paralelo , um sistema operacional pode gerenciar como dividir o programa para que ele seja executado em mais de um processador por vez.
Todas as principais plataformas de computador (hardware e software) exigem, e às vezes incluem, um sistema operacional, e os sistemas operacionais devem ser desenvolvidos com recursos diferentes para atender às necessidades específicas de vários fatores de forma.
Gerenciamento de dispositivo. Um sistema operacional é responsável por identificar, configurar e fornecer aplicativos com acesso comum a dispositivos de hardware de computador subjacentes. À medida que o sistema operacional reconhece e identifica o hardware, o sistema operacional instalará os drivers de dispositivo correspondentes que permitem que o sistema operacional e os aplicativos executados no sistema operacional usem os dispositivos sem nenhum conhecimento específico do hardware ou dos dispositivos.
Um sistema operacional é responsável por identificar a impressora correta e instalar os drivers de impressora apropriados para que um aplicativo precise apenas fazer chamadas para a impressora sem ter que usar códigos ou comandos específicos para essa impressora – esse é o trabalho do sistema operacional.
A situação é semelhante para outros dispositivos, como portas USB; portas de rede; dispositivos gráficos, como unidades de processamento gráfico (GPUs); chipsets de placas-mãe; e dispositivos de armazenamento, como adaptadores de disco Serial-Attached SCSI (SAS) e discos formatados com um sistema de arquivos adequado.
O SO identifica e configura dispositivos físicos e lógicos para serviço e normalmente os registra em uma estrutura padronizada, como o Registro do Windows . Os fabricantes de dispositivos corrigem e atualizam os drivers periodicamente, e o sistema operacional deve atualizá-los para garantir o melhor desempenho e segurança do dispositivo. Quando os dispositivos são substituídos, o SO também instala e configura novos drivers.
Tipos e exemplos de sistemas operacionais
Embora as funções fundamentais de um sistema operacional sejam onipresentes, existem inúmeros sistemas operacionais que atendem a uma ampla gama de necessidades de hardware e usuário.
Sistema operacional de uso geral. Um SO de uso geral representa um conjunto de sistemas operacionais destinados a executar uma infinidade de aplicativos em uma ampla seleção de hardware, permitindo que um usuário execute um ou mais aplicativos ou tarefas simultaneamente. Um sistema operacional de uso geral pode ser instalado em muitos modelos diferentes de desktop e laptop e executar aplicativos de sistemas de contabilidade a bancos de dados, navegadores da Web e jogos. Os sistemas operacionais de uso geral geralmente se concentram no processo (thread) e no gerenciamento de hardware para garantir que os aplicativos possam compartilhar de maneira confiável a ampla variedade de hardware de computação presente.
Os sistemas operacionais de desktop comuns incluem o seguinte:
O Windows é o principal sistema operacional da Microsoft, o padrão de fato para computadores domésticos e empresariais. Introduzido em 1985, o sistema operacional baseado em GUI foi lançado em muitas versões desde então. O fácil de usar do Windows 95 foi o grande responsável pelo rápido desenvolvimento da computação pessoal.
Mac OS é o sistema operacional para a linha Macintosh de PCs e estações de trabalho da Apple.
Unix é um sistema operacional multiusuário projetado para flexibilidade e adaptabilidade. Originalmente desenvolvido na década de 1970, o Unix foi um dos primeiros sistemas operacionais a ser escrito na linguagem C.
O Linux é um sistema operacional semelhante ao Unix que foi projetado para fornecer aos usuários de PC uma alternativa gratuita ou de baixo custo. O Linux tem a reputação de ser um sistema eficiente e de desempenho rápido.
Sistema operacional dos smartphones.
Os sistemasoperacionais móveis são projetados para acomodar as necessidades exclusivas da computação móvel de smartphones e outros dispositivos centrados em comunicação, como smartwatch, smartcar e tablets.
Os dispositivos móveis geralmente oferecem recursos de computação limitados em comparação com os PCs tradicionais, e o SO deve ser reduzido em tamanho e complexidade para minimizar o uso de seus próprios recursos, garantindo recursos adequados para um ou mais aplicativos executados no dispositivo.
Os sistemas operacionais móveis tendem a enfatizar o desempenho eficiente, a capacidade de resposta do usuário e muita atenção às tarefas de manipulação de dados, como suporte a streaming de mídia. Apple iOS e Google Android são exemplos de sistemas operacionais móveis.
Sistema operacional embarcado. Nem todos os dispositivos de computação são de uso geral. Uma enorme variedade de dispositivos dedicados – incluindo assistentes digitais domésticos, caixas eletrônicos (ATMs), sistemas de avião, terminais de ponto de venda (POS) de varejo e dispositivos de internet das coisas (IoT) – inclui computadores que exigem um sistema operacional. A principal diferença é que o dispositivo de computação associado faz apenas uma coisa importante, de modo que o sistema operacional é altamente simplificado e dedicado ao desempenho e à resiliência.
O sistema operacional deve ser executado rapidamente, não travar e lidar com todos os erros normalmente para continuar operando em todas as circunstâncias. Na maioria dos casos, o sistema operacional é fornecido em um chip incorporado ao dispositivo real. Um dispositivo médico usado no equipamento de suporte à vida de um paciente, por exemplo, empregará umSO embutido que deve ser executado de forma confiável para manter o paciente vivo. O Linux embarcado é um exemplo de sistema operacional embarcado.
Sistema operacional de rede. Um sistema operacional de rede ( NOS ) é outro sistema operacional especializado destinado a facilitar a comunicação entre dispositivos que operam em uma rede local ( LAN ). Um NOS fornece a pilha de comunicação necessária para entender os protocolos de rede para criar, trocar e decompor pacotes de rede.
Hoje, o conceito de um NOS especializado é amplamente obsoleto porque outros tipos de SO lidam em grande parte com a comunicação de rede. Windows 10 e Windows Server2019, por exemplo, incluem recursos abrangentes de rede. O conceito de NOS ainda é usado para alguns dispositivos de rede, como roteadores, switches e firewalls, e os fabricantes podem empregar NOSs proprietários, incluindo Cisco Internetwork Operating System (IOS), RouterOS e ZyNOS.
Sistema operacional em tempo real. Quando um dispositivo de computação deve interagir com o mundo real dentro de restrições de tempo constantes e repetíveis, o fabricante do dispositivo pode optar por usar um sistema operacional de tempo real ( RTOS). Por exemplo, um sistema de controle industrial pode direcionar as operações de uma grande fábrica ou usina de energia.
Tal instalação produzirá sinais de inúmeros sensores e também enviará sinais para operar válvulas, atuadores, motores e inúmeros outros dispositivos. Nessas situações, o sistema de controle industrial deve responder de forma rápida e previsível às mudanças nas condições do mundo real – caso contrário, pode ocorrer um desastre. Um RTOS deve funcionar sem buffering, latências de processamento e outros atrasos, que são perfeitamente aceitáveis em outros tipos de sistemas operacionais. Dois exemplos de RTOSes incluem FreeRTOS e VxWorks.
As diferenças entre os tipos de sistema operacional não são absolutas e alguns sistemas operacionais podem compartilhar características de outros. Por exemplo, sistemas operacionais de propósito geral incluem rotineiramente os recursos de rede encontrados em um NOS tradicional. Da mesma forma, um sistema operacional incorporado geralmente inclui atributos de um RTOS, enquanto um sistema operacional móvel ainda pode executar vários aplicativos simultaneamente, como outros sistemas operacionais de uso geral.





