O software é dividido em software de sistema e aplicativo com base em seu objetivo fundamental e como eles interagem com o hardware e os usuários do computador. A divisão simplifica a compreensão, desenvolvimento e manutenção:
*
software do sistema: Isso atua como um intermediário entre o usuário e o hardware. Seu objetivo principal é gerenciar e controlar o hardware do computador e fornecer uma plataforma para a execução do software de aplicativo. Ele lida com tarefas de baixo nível com as quais os usuários raramente interagem diretamente. Isso inclui:
*
Sistemas operacionais (OS): O software principal do sistema, gerenciando recursos como memória, CPU, armazenamento e periféricos. Exemplos:Windows, MacOS, Linux, Android, iOS.
*
Drivers de dispositivo: Software que permite que o sistema operacional se comunique com dispositivos de hardware específicos (impressoras, placas gráficas etc.).
*
Utilitários: Ferramentas que ajudam a gerenciar e manter o sistema, como desfragmentadores de disco, software antivírus e monitores do sistema.
*
BIOS/UEFI: Firmware que inicializa os componentes de hardware quando o computador inicia.
*
Compiladores e intérpretes: Traduzir linguagens de programação em código da máquina.
*
ligantes e carregadores: Combine e prepare o código do programa para execução.
*
Software de aplicativo: Isso foi projetado para executar tarefas específicas para os usuários. Ele é executado * no topo do software do sistema, utilizando os recursos gerenciados pelo sistema operacional. Está focado na funcionalidade voltada para o usuário. Exemplos incluem:
*
Processadores de texto: Microsoft Word, Google Docs
*
planilhas: Microsoft Excel, Google Sheets
*
Navegadores da web: Chrome, Firefox, Safari
*
Jogos: Fortnite, Minecraft
* bancos de dados
: Mysql, postgreSql
*
Editores de imagem: Photoshop, Gimp
*
Clientes de email: Outlook, Thunderbird
A divisão é crucial porque:
*
Abstração: O software do sistema esconde a complexidade do hardware de software de aplicativos e usuários. Os desenvolvedores de aplicativos não precisam se preocupar com os meandros de gerenciamento de memória ou drivers de dispositivo; O sistema operacional lida com isso.
*
modularidade: A separação do software do sistema e do aplicativo permite atualizações e manutenção mais fáceis. Você pode atualizar o sistema operacional sem necessariamente afetar o software de aplicativo (idealmente).
*
Portabilidade: O software de aplicativo projetado para um sistema operacional específico pode ser executado em qualquer sistema com esse sistema operacional, independentemente das diferenças de hardware subjacentes. O software do sistema lida com os detalhes específicos do hardware.
*
Segurança: O software do sistema pode fornecer recursos de segurança como firewalls e controles de acesso ao usuário, protegendo o sistema e os aplicativos de software malicioso.
Embora a linha às vezes possa embaçar (alguns aplicativos têm funcionalidades semelhantes ao sistema, e alguns softwares do sistema podem ser confundíveis pelo usuário), a distinção continua sendo um princípio organizacional valioso no mundo do software.