Esta lição explora os conceitos fundamentais de como novos processos são iniciados em um sistema Linux. Entender este mecanismo fornece uma visão sobre o funcionamento interno do sistema operacional.
O Modelo Fork e Exec
O principal mecanismo para criação de processos no Linux envolve um processo existente se clonando usando a chamada de sistema fork. A chamada fork cria um processo filho quase idêntico. Este novo processo filho recebe seu próprio Identificador de Processo (PID) exclusivo, enquanto o processo original se torna seu pai, identificado por um Identificador de Processo Pai (PPID).
Após o fork, o processo filho pode continuar executando o mesmo programa que seu pai ou, mais comumente, usar a chamada de sistema execve para carregar e executar um novo programa. A chamada execve substitui efetivamente o espaço de memória do processo pelo do novo programa, permitindo que uma tarefa diferente comece. Este modelo de dois passos "fork-exec" é um pilar de como você cria um processo no Linux.
Observando Relações Pai-Filho
Podemos observar esta relação pai-filho em ação usando o comando ps:
ps l
A opção l fornece uma visualização em "formato longo", mostrando mais detalhes sobre os processos em execução. Você verá uma coluna rotulada PPID, que significa Parent Process ID (Identificador de Processo Pai). Observe o processo do seu shell atual (por exemplo, bash). Quando você executa o comando ps l, notará que o PID do seu processo shell corresponde ao PPID do processo ps l. Isso ocorre porque seu shell se bifurcou para criar o processo ps.
O Processo Init
Se todo processo é filho de outro, deve haver um ancestral original. Este é o processo init. Quando o sistema é inicializado, o kernel cria init como o primeiro processo em espaço de usuário, atribuindo-lhe um PID de 1. O processo init é o pai supremo de todos os outros processos e é executado com privilégios de root para gerenciar o sistema. Ele não pode ser encerrado até que o sistema seja desligado e é responsável por iniciar muitos dos serviços que mantêm o sistema funcionando.