From mboxrd@z Thu Jan 1 00:00:00 1970 From: martinez.javier@gmail.com (Javier Martinez Canillas) Date: Wed, 22 Feb 2012 17:43:35 +0100 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 2012/2/22 Ezequiel Garc?a : > 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. > 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