From mboxrd@z Thu Jan 1 00:00:00 1970 From: elezegarcia@gmail.com (=?ISO-8859-1?Q?Ezequiel_Garc=EDa?=) Date: Wed, 22 Feb 2012 12:30:37 -0300 Subject: Iterating through all the processes in a module In-Reply-To: References: <20120207191702.GA9172@kroah.com> Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org Hi Arokux, On 2/22/12, Arokux B. wrote: > 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.