Complementando o que vimos no post anterior, o fato de
o Tycoon ser capaz de infectar
sistemas operacionais distintos, como Windows,
Linux etc. — merece mais algumas
considerações. Vamos a elas.
No léxico da informática, o termo programa designa um conjunto de
instruções (em linguagem de máquina) que descrevem uma tarefa a ser realizada
pelo computador, que pode ser tanto o código
fonte — escrito em alguma linguagem de programação, como C, C #, JavaScript, TypeScript, VB.NET, C++ etc. —
quanto o arquivo executável que
contém o código. O termo arquivo
remete a um conjunto de informações representadas por um ícone e identificadas por um nome seguido de um ponto (.) e de uma extensão (.DOC, .DOCX, .JPG, .EXE, e assim por diante). É essa extensão que indica o aplicativo que
criou o arquivo e/ou que deve ser usado para manipulá-lo (daí ser importante,
ao renomear um arquivo qualquer, ter o cuidado de não modificar sua extensão).
Não é comum um programa direcionado à plataforma Windows, por exemplo, rodar no Linux ou no macOS, também por exemplo. Aliás, incompatibilidades costumam
contemplar versões diferentes do mesmo sistema; um programa escrito
especificamente para o Win 10, p.
ex., pode não funcionar no Seven ou
no XP, também p. ex. — e certamente
não funcionará no Win 9.x/ME. Como
regra geral, a versão mais recente do sistema tende a suportar programas
escritos para as anteriores, mas estas últimas geralmente não suportam
programas escritos para as versões posteriores.
Tecnicamente, o sistema
operacional é um programa como outro qualquer, mas na prática ele é o “software-mãe”, já que suas rotinas e
serviços são responsáveis pelo gerenciamento do hardware e servem de base para
os demais softwares. Dito de outra
maneira, o sistema serve de interface de
comunicação entre o usuário e a máquina (e vice-versa) e de ponte (ou elemento de ligação) entre os
aplicativos e o hardware.
Na pré-história da computação pessoal os computadores
não contavam com sistemas operacionais. Assim, as aplicações executadas pelo
operador precisavam interagir diretamente com o hardware, e para tanto eram
escritas em linguagem de máquina e direcionadas a uma determinada arquitetura. Não
havia, portanto, “portabilidade” —
ou seja, uma aplicação escrita para rodar num PC de determinada arquitetura
simplesmente não funcionava em outro PC de arquitetura diferente.
Com o surgimento dos sistemas operacionais, ficou muito
mais fácil operar o computador e, por que não dizer, escrever as aplicações, já
que o sistema passou a exercer o papel de intermediário (ou de ponte, ou
de elemento de ligação, como queiram) entre o usuário, os aplicativos e
o hardware.
Numa visão extremamente simplista, mas adequada aos
propósitos desta abordagem, podemos dizer que o sistema operacional tornou
transparente a execução das aplicações, na medida em que provê a necessária intercomunicação
entre elas e o hardware sem que o usuário tenha de se preocupar com detalhes
sobre como a aplicação é executada, quais recursos são utilizados e como estes
são gerenciados.
Também foge ao escopo desta postagem detalhar questões como
“sistemas monousuário e multiusuário”,
“monotarefa e multitarefa”, e por aí
vai, conquanto seja importante frisar que todos os sistemas operacionais são, atualmente,
multiusuário e multitarefa. (Caso
queira ter uma ideia melhor de como tudo isso funciona, esta
postagem dá acesso ao primeiro capítulo de uma sequência dedicada ao
sistema operacional e suas sutilezas).
Amanhã a gente conclui.