Iterating through all the processes in a module
From: Javier Martinez Canillas <hidden>
Date: 2012-02-22 16:43:35
2012/2/22 Ezequiel Garc?a [off-list ref]:
Hi Arokux, On 2/22/12, Arokux B. [off-list ref] wrote:quoted
Having my code as a module I can trigger its execution (load a module) and disable it (unload a module). How can I achieve this if the code is inside the kernel? One possibility I see is adding an entry in the procfs.I think you want to have the kernel execute some code of yours just for learning purposes right? So, your question could be put like this: Where are the "doors" for me -userspace- to enter to the kernel? In that case, I believe the "canonical" answer is: system calls. If you have a copy of Love's book you could look there, or you could just search through the code and look how system calls are implemented and add own of your own. Perhaps you could even modify one. You can search all syscalls definitions with: grep "SYSCALL_DEFINE" `find . -name "*.c"` Actually, that's the path I would take if I were to try this. You can pick a simple syscall like "getcwd", defined in fs/dcache.c and just add my test code there. That way every time you call pwd in your shell, you get your code called (you can check with strace). Hope this helps, Ezequiel.
This is also a good summary of Kernel space / User space interfaces http://people.ee.ethz.ch/~arkeller/linux/kernel_user_space_howto.html Hope it helps, -- Javier Mart?nez Canillas (+34) 682 39 81 69 Barcelona, Spain