Разговор пойдет о модулях, но не о их внутренностях и их работе, а о том как с ними работает ядро. Модули состоят из двух логических частей, init и самого выполняемого тела модуля. Как в целом механизм работает мне известно, функции, что где происходит где запускается на выполение init часть, тут все ясно. А не ясно мне где и как начинает выполняться вторая "core" часть. Мне даже неважно в какой момент она начинает выполнятся, важно именно как это происходит ? По этому поводу мне вообще ничего неизвестно, хотя есть малость предположение что они запускаются через одну из функций создания процессов, потому что в функции copy_process(...)(которая используется в функции do_fork (которая создает процессы)) есть место где идет проверка что запускаемый процесс это модуль и если да то увеличивается счетчик его обращение. Но этого очень мало, нужно больше инфы, может кто подскажет по этому поводу. PS. все выше описанное следует понимать в конексте ядра linux.
Есть книжка по LKM, Linux Kernel Module Programming вроде так называется, погугли, в ней все описывается.
тут как бы из названия напрашивается, что это непосредственно механизм работы внутри модуля, это ненужно.
а я думаю что мне даже не ответят там, была попытка связаться с разработчиками ядра (не по конкретно этому вопросу), но ответа вообще не было. Поэтому только своими силами.