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.