O Universo da Informática é formado por: equipamentos, sistemas, dados e pessoas. Os episódios s01e02 e s01e03 abordaram dois conceitos sobre os dados. Este quarto episódio da série explicará os conceitos de hardware e software.
Diferença entre Hardware e Software
No universo da Informática existem dois grandes conjuntos: o de equipamentos, que chamamos de hardware, e o de sistemas, que chamamos de software.
Em sumo, hardware é a parte física, que conseguimos pegar, como um computador, um smartphone e outros equipamentos. Software é a parte lógica, como um sistema operacional, um aplicativo (app), um game e outros programas.
Apesar da diferença entre o real e virtual entre os termos hardware e software corresponder a um conhecimento básico, não é incomum ele ser cobrado em concursos públicos:
Questão do portal TEConcursos.
Reparem que, só com a definição inicial, já eliminamos as alternativas (a) e (b), por apresentarem afirmações de software. Sabendo que hardware é a parte real, a letra (e) também já cai. Por fim, a questão cobra abstração do candidato, para saber que hardware equivale a componentes eletrônicos, com memória e dispositivos de entrada/saída. A letra (d) é uma afirmação incorreta porque sugere que hardware é um canal de transmissão formado de fios para enviar e receber dados, ou seja, incluíram os fios e deixaram de fora os equipamentos. O gabarito é a letra (c).
Apesar da clara diferença, os conceitos estão diretamente entrelaçados. O software roda sobre o hardware, ou seja, o software depende de um equipamento para executá-lo. De forma similar, um hardware depende de um software para controlá-lo. Dependendo do tipo do software, ele serve especificamente para controlar o equipamento. Outros, como um game, rodam sobre outro tipo de software, um sistema operacional.
Vamos agora apresentar os conceitos de forma separada, dando exemplos e indicando as classificações que serão vistas mais a frente.
Hardware
Hardware é parte real, física, material, da Informática. São os equipamentos, de uma forma geral, mas de Informática. Ninguém chama um ventilador ou liquidificador de hardware, pois eles são eletrodomésticos ou equipamentos eletrônicos apenas. Apesar deles possuírem componentes eletrônicos, inclusive contendo microcontroladores com memória e programação, eles não possuem o conceito completo que vimos na questão acima: dispositivos de entrada e saída. Eles não trabalham enviando e/ou recebendo dados.
Classificação de hardware
Assim, um hardware pode ser classificado como de entrada, de saída ou ambos de acordo com o fluxo de dados que trafegam por eles. Por exemplo, um computador e um smartphone, são hardwares com entrada e saída de dados. Pense em um computador ligado a um teclado e a um monitor. A placa de vídeo do computador está enviando sinal para o monitor exibir. O fluxo de dados é: placa de vídeo (do computador) -> monitor. Já o teclado serve para enviar dados – as teclas que forem apertadas – para o computador. O computador recebe os dados do teclado. O fluxo é: teclado -> computador.
Da mesma forma, olhando individualmente o monitor, ele é um hardware de saída. Uma impressora também. Você envia dados do computador, ou do smartphone, para ela imprimir. O fluxo é: computador -> impressora.
O teclado, mouse e joystick são equipamentos de entrada.
Mobile, desktop, workstation, PC, acessórios, dispositivos e periféricos
Alguns tipos de hardware também recebem nomes específicos e possuem sinônimos, por isso vamos esclarecer os principais.
Mobile quer dizer dispositivos móveis, como smartphone e tablet.
O termo desktop atualmente possui dois significados. Se usado no contexto de software, ele refere-se a Área de Trabalho, ou tela inicial, de um sistema operacional. No sistema Windows o nome é exatamente esse, enquanto no sistema operacional macOS, da Apple, o termo é traduzido como Mesa.
Já no contexto de hardware, desktop quer dizer computador, ou seja, uma estação, não um notebook. Um desktop montado para trabalho é chamado de workstation, ou seja, estação de trabalho.
PC quer dizer Personal Computer e equivale a computador desktop, mas é raro alguém falar que tem um PC da Apple. Quem tem Apple, falo o nome, como, tenho um iMac (o desktop da Apple).
Um teclado, mouse, caixa de som, fone de ouvido, impressora e outros equipamentos que podem ser ligados em um computador ou smartphone, recebem também o nome de periféricos. Também podem ser referenciados como acessórios ou dispositivos de entrada e saída. São todos termos equivalentes atualmente, embora, na minha visão, acessório é mais apropriado para fone de ouvido, enquanto um monitor ou impressora para periférico.
O fato é: podemos chamar qualquer um desses de hardware tranquilamente. Pense comigo: se em determinada situação, uma estação de trabalho apresentar um problema no teclado, será um problema de hardware.
Exemplos de hardware e suas classificações:
- Smartphone (entrada e saída)
- Computador (entrada e saída)
- Notebook (entrada e saída)
- Impressora (saída)
- Microfone (entrada)
- Caixa de som (saída)
- webcam (entrada)
- Monitor (saída)
- Projetor (saída)
- Teclado (entrada)
- Mouse (entrada)
- Joystick (entrada)
Software
Software é a parte virtual, lógica, imaterial da Informática. Corresponde ao conjunto de informações e instruções a serem executadas, a fim de se conseguir o resultado esperado.
Quando pensamos em sistema, normalmente pensamos em uma interface visual, que é o elemento de interação com um ser humano, mas um software pode existir sem nada visual. Ele pode estar embutido em um micro-controlador que comanda um circuito eletrônico, mas não é ligado em um monitor. Ou ele pode ser simplesmente um software feito para computador, mas sem interface, como um programa robô que fica checando alguma atividade do computador. Existem diferentes tipos de software para diversas finalidades, por isso vamos ver algumas classificações inciais de software.
Classificação de software
A literatura não traz uma classificação unânime e consolidada sobre os tipos de tipo. Isso ocorre porque, ao longos das últimas 3 décadas, os tipos de software foram expandidos e repensados, o que tornou o processo de padronização mais difícil.
Assim, eu gosto de apresentar duas classificações. Uma mais simples e tradicional, com uma ressalva, de forma que ela é bem aceita em provas de concursos públicos. A outra, mais avançada, é conveniente apenas quando estivermos estudando Engenharia de Software. Vamos então a primeira:
Um software pode ser ser classificado em software de base e software-aplicativo. Software de base são os sistemas operacionais e as linguagens de programação que permitem a programação e operação do computador. Software-aplicativo são os softwares que rodam sobre os sistemas operacionais. Quer um exemplo mais concreto? Você vai baixar um jogo, como o League of Legends que é gratuito. Para baixar esse software-aplicativo, você precisará escolher qual é seu sistema operacional: Windows ou macOS. Ele possui um instalador diferente para cada um desses sistemas operacionais.
A segunda classificação de software pode ser vista aqui, mas vamos falar mais da classificação básica.
Software de base
Sistema operacional é um tipo especial de software. Ele é um software de base que possui diferentes funções. Uma dela é controlar o equipamento, provendo uma interface de controle para o usuário realizar suas configurações e utilizar o equipamento. Outra é permitir um protocolo para que outros softwares, os software-aplicativos, sejam instalados sobre o sistema operacional, como um editor de texto ou um game.
Os principais sistemas operacionais são: Windows (para computadores) ou Windows Phone (para dispositivos móveis) da Microsoft, macOS (para computadores) ou iOS (para dispositivos móveis) da Apple, e Linux (para computadores) e de diferentes distribuidores, e Android (para dispositivos móveis) da Google.
Software-aplicativo
Tirando os sistemas operacionais, quase todo o restante que você pensar é um software-aplicativo. Editor de texto, de planilha, de apresentação, ferramenta de e-mail, game, navegador.
Antigamente, esse tipo de software, era simplesmente chamado de programa de computador. Com a acensão dos dispositivos móveis, a expressão precisou ser atualizada para programa de computador ou de smartphone, mas na prática, atualmente um smartphone é praticamente um computador em algumas situações.
Uma característica dos software-aplicativos é que eles são instalados sobre um sistema operacional, conforme a imagem e o exemplo dados na seção anterior. Assim, um software-aplicativo depende mais do sistema operacional do que hardware do equipamento. É claro que este último tem que possuir requisitos mínimos de processamento, memória e capacidade gráfica para rodar o software, mas essa é uma restrição de desempenho, enquanto o sistema operacional é uma restrição obrigatória. Você não rodará um software para Windows no macOS e vice-versa. O sistema de arquivos é diferente, conforme veremos mais para frente.
Cliente/servidor, firmware, driver, utilitário, aplicativo e outros
A classificação que apresentei aqui é a mais básica. A partir dela, o tipo software-aplicativo começa a se dividir em outras categorias.
Firmware é um software que vai embutido em um hardware, como um micro-controlador. Esse tipo de software também pode ser chamado de sistema embutido (embbeded system).
Um driver é um software-aplicativo que contém informações sobre um equipamento. Por exemplo, quando você compra uma impressora, você a instala executa o programa que vem junto com ela. Esse programa instala o driver correto da impressora no seu sistema operacional. Sob determinado ponto de vista, somente o driver, pode ser pensado como um software de base, mas nunca achei questões de concursos perguntando especificamente sobre essa interpretação.
Outro tipo de software é cliente/servidor, em que o software é dividido em módulos: o cliente e o servidor. Nesse tipo de software existe uma comunicação entre várias estações do software cliente com um servidor central, mesmo que ele seja distribuído na nuvem.
Antigamente existia uma separação entre os termos utilitários e aplicativos. Um utilitário era uma ferramenta de sistema, enquanto um aplicativo era, por exemplo, um game. Hoje em dia esses termos não são tão usados, pois deram lugar aos termos aplicativos e ferramentas. Aplicativo, por sinal, é mais usado para se referir a um software feito para rodar em dispositivos móveis, mas o termo pode ser usado também para falar de um programa de computador. Por exemplo: fiz um aplicativo para PC.
Por fim, software malicioso é todo aquele software capaz de gerar algum dano para o usuário, mas essa é mais uma classificação didática do que de uso. Ninguém ensina engenharia de software para fazer software malicioso. Mais para frente veremos também os diferentes tipos de software maliciosa no assunto Segurança da Informação.
Exemplos de software:
- Windows, macOS, Linux, Unix (sistemas operacionais de computadores)
- iOS, Android e Windows Phone (sistemas operacionais de dispositivos móveis)
- Games (software-aplicativo)
- Editores (de texto, planilha, apresentação etc)
- Navegadores (software-aplicativo)
- Anti-virus, malware (software-aplicativo)
- League of Legends (é um game, mas poderia ser também classificado como software cliente/servidor, em que o módulo cliente é o game)
Ficha Técnica
Série: Grade Mestre de Ciência da Computação, Temporada 1, Episódio 4.
Área: Tecnologia da Informação
Matéria (disciplina) da grade mestre: 1. Fundamentos de TI
Tópico: 1.1 Informática, TI, Dados, Hardware e Software
Checkpoint: (D) Hardware e Software