Я уже давно изучаю сигналы, но я хочу понять, как они на самом деле работают, мне нужен подробный ответ на этот вопрос, пожалуйста.
Если процесс посылает сигнал другому процессу, используя, например, функцию libc.
1-может ли этот процесс нормально посылать сигнал не заходя в пространство ядра или он должен заходить в пространство ядра когда хочет послать сигнал?
2-и если сначала нужно перейти к ядру, какие шаги для этого предпринимаются?
3-где эти обработчики сигналов? существуют ли они в пространстве пользователя или в пространстве ядра, и как насчет обработчика сигналов по умолчанию?
4-Когда процесс получает сигнал? должен ли он пройти через ядро, чтобы выполнить обработчик сигнала?