Страницы

Поиск по вопросам

воскресенье, 7 апреля 2019 г.

Как в linux определить процессы ядра и пользовательские процессы

Как в linux определить процессы ядра и пользовательские процессы.


Ответ

В современном linux, в отличие от многих других Unix есть так называемые "процессы ядра". По суди это просто части самого ядра, функции общего кода ядра, работающие в том же адресном пространстве и с теми же привилегиями, что и остальной код ядра. Единственное их отличие от других частей ядра, для них создаются отдельные записи в таблице процессов. Процессами они сделаны для того, что бы их выполнение происходило независимо от остальных частей ядра, с более низким приоритетом. Их выполнение происходит под контролем планировщика, как и все остальные процессы в системе.
Процессы ядра linux запускаются самим ядром, при этом родительским процессом якобы их породившим, назначается процесс kthread, с PID=2. Таким образом процессами ядра надо считать сам процесс с PID=2, а так же процессы у которых PPID (т.е. pid родителя) равен 2.
sudo ps --ppid=2 --pid=2
Пользовательские процессы - все остальные:
sudo ps -N --ppid=2 --pid=2
Так же по умолчанию pstree без параметров показывает только дерево процессов порожденных init, т.е. пользовательских процессов. Процессы ядра покажет sudo pstree 2

Комментариев нет:

Отправить комментарий