рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕рд░рд▓ рдорд╛рд╕реНрдХрд┐рдВрдЧ DKOM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА "рдЖрдВрдЦреЛрдВ" рд╕реЗ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд▓реЗрдЦ рдбреАрдХреЗрдУрдПрдо (рдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реНрдиреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореИрдирд┐рдкреБрд▓реЗрд╢рди) рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рдРрд╕реА рддрдХрдиреАрдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрд░реНрдиреЗрд▓ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

рдЕрдЧрд▓рд╛, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рджреГрд╢реНрдп рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рдЖрд╡реЗрджрди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрд╕реЗ рдЙрддрд╛рд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ред



рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, DKOM рдХрд╛ рдЖрдзрд╛рд░ рдХрд░реНрдиреЗрд▓ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рджреМрд░ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдВрд░рдЪрдирд╛ рдореЙрдбреНрдпреВрд▓ рдХреА рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЛрдб рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдВрдХ рд╣реЛрддреЗ рд╣реИрдВред

рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐



рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕рдВрд░рдЪрдирд╛ рдЙрд╕реА рдирд╛рдо рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд▓рд┐рдирдХреНрд╕ / рдореЙрдбреНрдпреВрд▓.рдПрдЪ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

223 struct module 224 { 225 enum module_state state; 226 227 /* Member of list of modules */ 228 struct list_head list; 229 230 /* Unique handle for this module */ 231 char name[MODULE_NAME_LEN]; ... 378 }; 


рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ list рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рдмрджрд▓реЗ рдореЗрдВ, рдХрд░реНрдиреЗрд▓ / рдореЙрдбреНрдпреВрд▓ред рд╕реАред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЧреИрд░-рдирд┐рд░реНрдпрд╛рдд рд╕реВрдЪреА рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд (рдирд┐рд░реНрдпрд╛рдд) mxx рджреНрд╡рд╛рд░рд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИ:

 103 DEFINE_MUTEX(module_mutex); 104 EXPORT_SYMBOL_GPL(module_mutex); 105 static LIST_HEAD(modules); 


рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдкрдиреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЬрдм рдЙрддрд╛рд░рдирд╛ - рдмрд╛рд╣рд░ рдХрд░рдирд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реВрдЪреА рдХреЗ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреА рдЧрдгрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рд╕рднреА рдСрдкрд░реЗрд╢рдиред

рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреА рдЧрдгрдирд╛



рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ THIS_MODULE рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдорд╛рдирд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ list рдХреНрд╖реЗрддреНрд░, рдХрд░реНрдиреЗрд▓ рдХреЗ рдЖрдВрддреНрд░ рдореЗрдВ рдХрд╣реАрдВ рд╕реНрдерд┐рдд рд╣реЗрдб рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реЛрдЧрд╛ред рддреЛ, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ :

 static void list_modules(void) { struct module * mod; struct list_head * pos; while(!mutex_trylock(&module_mutex)) cpu_relax(); debug("List of available modules:\n"); list_for_each(pos, &THIS_MODULE->list) { bool head = (unsigned long)pos >= MODULES_VADDR; mod = container_of(pos, struct module, list); debug(" pos:%pK mod:%pK [%s]\n", pos, \ head ? mod : 0, head ? mod->name : "<- looking for"); } mutex_unlock(&module_mutex); } 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдВрдмрдВрдзрд┐рдд рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЙрддрд╛рд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рди рд╣реЛред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧрдгрдирд╛ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╕реВрдЪреА рдХреЗ рдкреНрд░рдореБрдЦ - рдореЙрдбреНрдпреВрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкрддреЗ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рд╣реИред рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЗ рдХрд╛рд░рдг, рд╕рд┐рд░ рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЬреБрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЗ рдмрд╛рдж рд╕реЗ рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдореЙрдбреНрдпреВрд▓ рд░реЗрдВрдЬ ( MODULES_VADDR - MODULES_END ) рдХреЗ рдкрддреЗ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдХрд┐ рдХреНрдпрд╛ рдкрддрд╛ рдЗрд╕ рд╕реАрдорд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рддреБрдЪреНрдЫ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдорд╢реАрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░:

 [11025.656372] [findme] List of available modules: [11025.656377] [findme] pos:ffffffffa02a7388 mod:ffffffffa02a7380 [ipheth] [11025.656380] [findme] pos:ffffffffa02b9108 mod:ffffffffa02b9100 [pci_stub] [11025.656382] [findme] pos:ffffffffa01e7028 mod:ffffffffa01e7020 [vboxpci] [11025.656385] [findme] pos:ffffffffa01dd148 mod:ffffffffa01dd140 [vboxnetadp] [11025.656387] [findme] pos:ffffffffa01d4028 mod:ffffffffa01d4020 [vboxnetflt] ... [11025.656477] [findme] pos:ffffffffa00205c8 mod:ffffffffa00205c0 [3c59x] [11025.656480] [findme] pos:ffffffffa000c108 mod:ffffffffa000c100 [r8169] [11025.656483] [findme] pos:ffffffff81c2daf0 mod:0000000000000000 [<- looking for] 


рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд░рдЪрдирд╛ ffffffff81c2daf0 рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ ffffffff81c2daf0 рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 # grep -w modules /proc/kallsyms ffffffff81c2daf0 d modules 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ, рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрдВрдЯрдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореВрд▓ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЙрдбреНрдпреВрд▓ ( ffffffff81xxxxxx рдмрдирд╛рдо ffffffffa0xxxxxx ) рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

 struct list_head * get_modules_head(void) { struct list_head * pos; while(!mutex_trylock(&module_mutex)) cpu_relax(); list_for_each(pos, &THIS_MODULE->list) { if ((unsigned long)pos < MODULES_VADDR) { break; } } mutex_unlock(&module_mutex); if (pos) { debug("Found \"modules\" head @ %pK\n", pos); } else { debug("Can't find \"modules\" head, aborting\n"); } return pos; } 


рдореЙрдбреНрдпреВрд▓ рд╕реВрдЪреА рд╣реЗрд░рдлреЗрд░



рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рдЪрд┐рдВрддрд╛, рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реВрдЪреА рд╕реЗ рдХрд┐рд╕реА рдЖрдЗрдЯрдо рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЖрдЗрдЯрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪреАрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореВрд▓ рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЫрд┐рдкрд╛рдирд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ :

 static void hide_or_show(int new) { while(!mutex_trylock(&module_mutex)) cpu_relax(); if (new == 1) { /* 0 -> 1 : hide */ list_del(&THIS_MODULE->list); debug("Module \"%s\" unlinked\n", THIS_MODULE->name); } else { /* 1 -> 0 : show */ list_add(&THIS_MODULE->list, p_modules); debug("Module \"%s\" linked again\n", THIS_MODULE->name); } mutex_unlock(&module_mutex); } 


рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдирдХреА рд╕реВрдЪреА рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП list_del рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдореЗрдВ, list_add ред рд╕рдВрдмрдВрдзрд┐рдд рдореНрдпреВрдЯреЗрдХреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдХреЗ рджреЛрдиреЛрдВ рд╕рдВрдЪрд╛рд▓рди рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВред

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣рд┐рд╕реНрд╕рд╛



рддреИрдпрд╛рд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдорд╛рд╕реНрдХрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ make рдФрд░ insmod рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдирдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдореЙрдбреНрдпреВрд▓ lsmod рдпрд╛ lsmod рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдорд╛рд╕реНрдХрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ:

 # insmod findme.ko # lsmod | grep findme findme 12697 0 # sysctl -w findme=1 findme = 1 # lsmod | grep findme # rmmod findme libkmod: ERROR ../libkmod/libkmod-module.c:753 kmod_module_remove_module: could not remove 'findme': No such file or directory Error: could not remove module findme: No such file or directory # sysctl -w findme=0 findme = 0 # lsmod | grep findme findme 12697 0 # rmmod findme 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЪреБрднрддреА рдЖрдВрдЦреЛрдВ рд╕реЗ рдмрд╕ рдЫрд┐рдкрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдкреНрд░рд╕реНрддреБрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рд╣реИред

рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП



1. рдкреНрд░рддреНрдпрдХреНрд╖ рдХрд░реНрдиреЗрд▓ рд╡рд╕реНрддреБ рд╣реЗрд░рдлреЗрд░
2. рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛
3. рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди - рднрд╛рдЧ 2

Source: https://habr.com/ru/post/In205274/


All Articles