Saya tahu ada dua "level" program: Ruang pengguna dan ruang kernel.
Pertanyaan saya adalah: Saya hanya ingin melihat program kernel, atau lebih baik: program di ruang kernel.
Apakah pendekatan ini benar?
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
sumber
sumber
Jawaban:
Proses kernel (atau "utas kernel") adalah anak-anak dari PID 2 (
kthreadd
), jadi ini mungkin lebih akurat:Tambahkan
--deselect
untuk membalikkan seleksi dan hanya melihat proses ruang pengguna.(Pertanyaan ini agak kebalikan dari pertanyaan ini .)
Pada 2.4. * Dan kernel yang lebih lama, konvensi PID 2 ini belum ada.
sumber
kthreadd
2.6.18. Jika Anda tertarik pada detail yang tepat, buka kernel.org dan gunakan antarmuka browser git untuk menelusuri sejarah awalkernel/kthread.c
file.Utas kernel tidak menggunakan RAM sama sekali (atau setidaknya ditampilkan tidak menggunakan apa pun):
sumber
Jika sudah
tuna
menginstal, Anda dapat mendaftar semua utas kernel seperti ini:sumber