Processsos linux
Um processo pode ser descrito como parte de um programa que está aparentemente rodando. Este aparente existe somente pelo fato de que determinado processo pode entrar e sair diversas vezes do processador em um único segundo, e em um determinado momento ele pode não estar no processador e mesmo assim aparentemente estar rodando.
Como qualquer sistema de compartilhamento de tempo o Linux consegue dar a impressão de execução simultânea dos processos, separando um espaço bastante curto de tempo para cada um deles. Para ter sucesso nesta tarefa ele segue uma serie de regras que não desperdiça tempo de hardware com operações desnecessárias e consegue escolher qual processo deve ser executado naquele exato momento.
O que decide essa escolha no kernel é o escalonador de processos, que em grande parte é responsável pela produtividade e eficiência do sistema. Mais do que um simples mecanismo de divisão de tempo, ele é responsável por uma política de tratamento dos processos que permite os melhores resultados possíveis.
Primeiros Processos
Durante a fase de inicialização do Linux a função ``start_kernel'' é responsável por criar um thread, este é o processo de número zero, o primeiro e o ascendente de todos os outros processos. Após inicializar toda a estrutura de dados para este processo esta mesma função é responsável por chamar a função ``init'' que por sua vez utiliza a chamada de sistema ``execve'' para rodar o executável init, que será o processo número 1, mais conhecido como init.
Podemos chamar de Deus e pai de todos os outros processos, é o segundo processo a ser criado e um dos últimos a morrer. Seus filhos, vivem como nós seres humanos, eles nascem, se desenvolvem, tem uma vida mais ou menos produtiva, podem ter inúmeros filhos em poucos segundos e eventualmente morrem.
Existem alguns outros processos que também são criados pelo kernel durante a fase de inicialização e destruídos assim que o sistema desliga. Outros são criados sob demanda, assim