В система x86 имам модул на ядрото на Linux („модул за наблюдение“), който се уведомява от ядрото всеки път, когато се зареди конкретен модул на ядрото („цел“). Почти всеки модул на ядрото може да бъде цел. Използвам това в инструментална система, върху която работя.
Когато модулът за наблюдение обработва такова известяване, може да е удобно по някаква причина, ако наблюдателят знае адресите на ELF секциите на заредения целеви модул. Някакви идеи как тази информация може да бъде получена в пространството на ядрото?
Разбира се, вероятно бих могъл да получа съдържанието на съответните файлове в /sys/module/<target_name>/sections/
в потребителското пространство веднага щом целта бъде заредена и след това по някакъв начин да предам тези данни на модула за наблюдение, но това е твърде тромаво. Бих искал да намеря начин да получа тази информация директно в пространството на ядрото.
Доколкото видях в изходните кодове на зареждащия модул, той не съхранява адресите на секциите в struct module
, а просто създава sysfs файлове за секциите. Може би е възможно по някакъв начин да се намерят обектите на ядрото, съответстващи на тези файлове, и да се прочетат необходимите данни от тези обекти? Или вероятно да използвате друг подход?
struct module
(mkobj.kobj
поле), участва в представянето на модула в sysfs. Ще се задълбоча в това, когато имам време. Може да е възможно да стигнете до атрибутите, съдържащи имената и адресите на секциите, като използвате този kobject като начална точка. - person Eugene   schedule 23.10.2011