Hardware x Software

Os computadores são muito bons em armazenar informações e fazer cálculos, mas não são capazes de tomar decisões sozinhos. Sempre existe um ser humano orientando o computador e dizendo a ele o que fazer a cada passo. Seja você mesmo, teclando e usando o mouse, ou, num nível mais baixo, o programador que escreveu os programas que você está usando.

Chegamos então aos softwares, gigantescas cadeias de instruções que permitem que os computadores façam coisas úteis. É aí que entra o sistema operacional e, depois dele, os programas que usamos no dia a dia.

Um bom sistema operacional é invisível. A função dele é detectar e utilizar o hardware da máquina de forma eficiente, fornecendo uma base estável sobre a qual os programas que utilizamos no cotidiano possam ser usados. Como diz Linus Torvalds, as pessoas não usam o sistema operacional, usam os programas instalados. Quando você se lembra que está usando um sistema operacional, é sinal de que alguma coisa não está funcionando como deveria.

O sistema operacional permite que o programador se concentre em adicionar funções úteis, sem ficar se preocupando com que tipo de placa de vídeo ou placa de som você tem. O aplicativo diz que quer mostrar uma janela na tela e ponto; o modelo de placa de vídeo que está instalado e quais comandos são necessários para mostrar a janela, são problema do sistema operacional.

Para acessar a placa de vídeo, ou qualquer outro componente instalado, o sistema operacional precisa de um driver, que é um pequeno aplicativo que trabalha como um intérprete, permitindo que o sistema converse com o dispositivo. Cada placa de vídeo ou som possui um conjunto próprio de recursos e comandos que permitem usá-los. O driver converte esses diferentes comandos em comandos padrão, que são entendidos pelo sistema operacional.

É comum que as várias camadas de softwares que compõem um sistema atual sejam representadas através de uma pirâmide, cuja base é representada pelo BIOS da placa-mãe, kernel do sistema operacional e drivers, e a parte mais alta é representada pelos aplicativos gráficos, com os demais componentes do sistema posicionados nas camadas intermediárias.

Isso deu origem à classificação de linguagens e softwares entre “baixo nível” (os que estão mais diretamente relacionados ao hardware, como o Assembly e os drivers de dispositivo) e “alto nível” (linguagens gráficas ou de scripts, como o Visual Basic .Net ou o Ruby e aplicativos gráficos como o Firefox ou o OpenOffice).

Embora as duas coisas sejam igualmente importantes, existe uma distinção entre o “hardware”, que inclui todos os componentes físicos, como o processador, memória, placa-mãe, etc. e o “software”, que inclui o sistema operacional, os programas e todas as informações armazenadas. Como diz a sabedoria popular, “hardware é o que você chuta, e software é o que você xinga”. 🙂

Ver Mais

Postagem relacionada