Ich weiß, dass es zwei "Ebenen" von Programmen gibt: User Space und Kernel Space.
Meine Frage ist: Ich möchte nur Kernel-Programme sehen, oder besser: Programme im Kernel-Space.
Ist dieser Ansatz richtig?
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
quelle
quelle
Antworten:
Kernel-Prozesse (oder "Kernel-Threads") sind untergeordnete Elemente von PID 2 (
kthreadd
), daher ist dies möglicherweise genauer:Hinzufügen
--deselect
, um die Auswahl umzukehren und nur Benutzerbereichsprozesse anzuzeigen.(Diese Frage war ziemlich genau umgekehrt zu dieser .)
In 2.4. * Und älteren Kerneln gab es diese PID 2-Konvention noch nicht.
quelle
kthreadd
2.6.18 ebenfalls nicht vollständig stabilisiert . Wenn Sie an genauen Details interessiert sind, gehen Sie zu kernel.org und verwenden Sie die Git-Browser-Oberfläche, um einen Drilldown in die frühe Geschichte derkernel/kthread.c
Datei durchzuführen .Kernel-Threads verwenden überhaupt keinen RAM (oder es wird zumindest angezeigt, dass sie keinen RAM verwenden):
quelle
Wenn Sie
tuna
installiert haben, können Sie alle Kernel-Threads wie folgt auflisten:quelle