LINUX.ORG.RU

Cоздание нового процесса ядром

 


0

1

Запускаю прогу через strace , вижу что делается вызов execve , в модуле ядра ставлю перехватчик на do_execve и на do_fork (на ядрах 2,6 - 3.х процессы создаются с помощью этих функций). А пробую модуль запускать на 4.х ядрах, то при создании нового процесса, данные функции не задействуются вообще! Пробовал ставить перехватчик на «_do_fork» , то данную функцию использует всего несколько процессов (например bash)
А если запустить в терминале мою программу «main» , то она запустится но ни одна из вышеописанных функций не будет задействована!
Помогите! С помощью каких ещё функций, ядро создаёт новые процессы?


Ответ на: комментарий от anonymous

Впрочем, я глянул в исходники, он просто вызывает _do_fork.

anonymous
()

Посмотри в Р. Лаве (Системое программирование под Linux - вроде такое название). Там целое семейство функций занимается созданием процессов. Но это для 2.6-3.x ядер. В 4 версии, видимо, переписали эту подсистему. Так что лучше всего или погрепать ядро на нечто вроде *fork* , *exec* или глянуть changelog 4-го ядра.

aido ★★
()
Ответ на: комментарий от aido

Проблема как раз в том, что грепил (и ставил хуки на функции, которые по смыслу похожи). Да нужных функций не нашёл. А в changelog также, не нашел инфы по созданию процессов.

Aresss
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.