Eu sei que existem dois "níveis" de programas: espaço do usuário e espaço do kernel.
Minha pergunta é: eu quero ver apenas programas do kernel, ou melhor: programas no espaço do kernel.
Essa abordagem está correta?
ps -ef|grep "\["
root 1 0 0 20:23 ? 00:00:00 init [4]
root 2 0 0 20:23 ? 00:00:00 [kthreadd]
root 3 2 0 20:23 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 20:23 ? 00:00:00 [kworker/0:0H]
root 7 2 0 20:23 ? 00:00:06 [rcu_sched]
root 8 2 0 20:23 ? 00:00:00 [rcu_bh]
root 9 2 0 20:23 ? 00:00:00 [migration/0]
root 10 2 0 20:23 ? 00:00:00 [migration/1]
root 11 2 0 20:23 ? 00:00:00 [ksoftirqd/1]
root 13 2 0 20:23 ? 00:00:00 [kworker/1:0H]
root 14 2 0 20:23 ? 00:00:00 [migration/2]
....
linux-kernel
process
elbarna
fonte
fonte
Respostas:
Os processos do kernel (ou "threads do kernel") são filhos do PID 2 (
kthreadd
), portanto, isso pode ser mais preciso:Adicione
--deselect
para inverter a seleção e ver apenas os processos de espaço do usuário.(Esta questão foi praticamente uma inversa exata desta .)
Nos kernels 2.4. * E mais antigos, essa convenção do PID 2 ainda não existia.
fonte
kthreadd
2.6.18. Se você estiver interessado em detalhes exatos, acesse o kernel.org e use a interface do navegador git para detalhar o histórico inicial doskernel/kthread.c
arquivos.Os threads do kernel não usam RAM (ou pelo menos são exibidos para não usar nenhum):
fonte
Se você
tuna
instalou, pode listar todos os threads do kernel como este:fonte