我知道程序有两个“级别”:用户空间和内核空间。
我的问题是:我只想查看内核程序,或者更好:内核空间上的程序。
这种方法正确吗?
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]
....
内核进程(或“内核线程”)是 PID 2 (
kthreadd
) 的子进程,因此这可能更准确:添加
--deselect
以反转选择并仅查看用户空间进程。(这个问题几乎与这个问题完全相反。)
在 2.4.* 和更早的内核中,这个 PID 2 约定还不存在。
内核线程根本不使用 RAM(或者至少显示不使用任何 RAM):
如果您已经
tuna
安装,您可以像这样列出所有内核线程: