Atualmente estou estudando para o meu LFCS e cheguei a uma seção sobre a diferença entre processos criados pelo usuário e processos criados pelo kernel. Dentro dos processos criados pelo kernel, eles definem dois subtipos de processo.
- Processos internos do kernel
- Processos de usuários externos
Eles deram exemplos de processos internos do kernel, como trabalhos de manutenção, como liberar buffers para o disco e garantir que a carga seja distribuída uniformemente pelas CPUs. Mas apenas especificou para processos de usuários externos que:
Esses são processos que são executados no espaço do usuário como aplicativos normais, mas que o kernel iniciou. Existem muito poucos destes e eles geralmente são de curta duração.
Meu primeiro pensamento foi que essas coisas seriam executadas em um sistema init como o systemd, mas meu instinto me diz que esse provavelmente não é o caso, pois menciona que geralmente são de curta duração.
Qual seria um exemplo de processos de usuários externos?
/proc/sys/kernel/hotplug
./sbin/v86d
auxiliar usado pelouvesafb
módulo do kernel.Leitura adicional
plug-and-play-event-handler
. Guia de no . Programas.Um exemplo de um "processo de usuário externo" seria
init
. O kernel inicia oinit
processo sem qualquer solicitação do espaço do usuário (ou seja, não em resposta a umafork()
chamada de sistema relacionada). Seu pensamentosystemd
é razoável, poissystemd
desempenha o papel deinit
.O kernel também pode acionar a execução de processos do espaço do usuário em determinados eventos. Por exemplo, historicamente, o kernel executava um
hotplug
executável de espaço de usuário quando os dispositivos eram adicionados ou removidos. Tais processos são de curta duração. (Embora esse seja um exemplo possível, não acho que essa abordagem ainda seja usada hoje para esse caso de uso.)