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