Je sais qu'il existe deux "niveaux" de programmes: l'espace utilisateur et l'espace noyau.
Ma question est: je veux voir uniquement les programmes du noyau, ou mieux: les programmes sur l'espace du noyau.
Cette approche est-elle correcte?
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
la source
la source
Réponses:
Les processus du noyau (ou "threads du noyau") sont des enfants de PID 2 (
kthreadd
), donc cela pourrait être plus précis:--deselect
Cliquez sur Ajouter pour inverser la sélection et afficher uniquement les processus de l'espace utilisateur.(Cette question était à peu près l'inverse exact de celle-ci .)
Dans les noyaux 2.4. * Et plus anciens, cette convention PID 2 n'existait pas encore.
la source
kthreadd
2.6.18. Si vous êtes intéressé par les détails exacts, rendez-vous sur kernel.org et utilisez l'interface du navigateur git pour explorer l'historique des premierskernel/kthread.c
fichiers.Les threads du noyau n'utilisent pas du tout de RAM (ou du moins sont affichés pour ne pas en utiliser):
la source
Si vous avez
tuna
installé, vous pouvez lister tous les threads du noyau comme ceci:la source