3. Processos

Um processo define uma instância de um programa sendo executado e também seu ambiente. Apenas mencionaremos as principais diferenças entre GNU/Linux e Windows® (por favor, veja Capítulo 10, Controle de Processo para mais informações).

A principal diferença está diretamente relacionada ao conceito de usuário: cada processo é executado com as permissões e direitos do usuário que o iniciou. Internamente o sistema identifica os processos com um número único, chamado ID do processo, ou PID. A partir desse PID, o sistema sabe quem (isto é, que usuário) iniciou o processo e um outro tanto de informações, que o sistema precisa para verificar a validade do processo. Voltemos ao exemplo do arquivo a_file. O usuário usuario2 será capaz de abrir esse arquivo no modo somente leitura, e não no modo de leitura-escrita porque as permissões associadas ao arquivo não o permitem. novamente a exceção à regra é o usuário root.

Por causa disso, o GNU/Linux é virtualmente imune aos vírus. Para operarem, os vírus devem infectar arquivos executáveis. Como um usuário, você não tem acesso de escrita aos arquivos vulneráveis do sistema, sendo assim o risco é reduzido sobremaneira. Em geral, os vírus são extremamente raros no mundo UNIX®. Existem alguns poucos vírus conhecidos para o Linux, e são inofensivos quando executados como usuário normal. Somente um usuário pode danificar o sistema ativando um desses vírus: o usuário root.

Interessantemente, existem softwares anti-vírus para GNU/Linux, porém, a maioria deles é para arquivos provenientes dos sistemas operacionais DOS/Windows®! Por que então existem anti-virus executando no GNU/Linux se tem seu foco no DOS/Windows®? Cada vez mais podemos observar sistemas GNU/Linux agindo como servidores de arquivos para máquinas que utilizam Windows®. Esses servidores se utilizam do software Samba (Compartilhando Arquivos e Impressoras, capítulo do Guia do Servidor), para fornecer o serviço para as máquinas Windows®.

O Linux torna fácil o controle de processos. Uma das maneiras de controlar um processo é através da utilização de “sinais”, que permitem suspender ou matar um processo, enviando o sinal correspondente ao processo. Entretando, você está limitado a enviar sinais aos seus próprios processos. Com exceção para o usuário root, o Linux e outros sistemas baseados no UNIX® não permitem que você envie sinais a processos que foram iniciados por outros usuários. No Capítulo 10, Controle de Processo, você irá aprender como obter o PID de um processo e como enviar um sinal para ele.