Linux Kernel and Device Drivers
Satya Prakash Prasad
unixkernel497 at gmail.com
Thu Jul 18 02:42:13 EDT 2013
Thanks to Srinivas and others. I got a point to start from.
Regards,
Prakash
On Thu, Jul 18, 2013 at 12:01 PM, Srinivas Ganji <
srinivasganji.kernel at gmail.com> wrote:
> Yes. As said by Anish, I generally practice through a dummy hello world
> module. Suppose, if I want to print all the processes currently running, I
> do like this.
>
> #include <linux/module.h>
> #include <linux/kernel.h>
> #include <linux/sched.h>
>
> MODULE_LICENSE("Dual BSD/GPL");
>
> static int hello_init(void)
> {
> struct task_struct *task;
>
> printk("Hello World!\n");
> for_each_process(task) {
> printk("%s %d\n", task->comm, task->pid);
> }
> printk("\n\n\n");
> for(task = &init_task; ((task=next_task(task)) != &init_task) ; )
> printk("%s %d\n", task->comm, task->pid);
> printk("\n\n\n");
> return 0;
> }
>
> static void hello_exit(void)
> {
> printk("Good bye!\n");
> }
>
> module_init(hello_init);
> module_exit(hello_exit);
>
> By the way, you can do as suggested by Valdis, too. I do search for a
> particular code/strings using find, xargs, grep combination.
>
> I hope this helps you.
>
> Regards,
> Srinivas
>
>
>
> On Tue, Jul 16, 2013 at 12:42 PM, Satya Prakash Prasad <
> unixkernel497 at gmail.com> wrote:
>
>> Thanks .. I have another question. I was trying to practice some kernel
>> process management APIs as in
>> http://reiber.org/nxt/pub/Linux/LinuxKernelDevelopment/Linux.Kernel.Development.3rd.Edition.pdf<http://www.linkedin.com/redirect?url=http%3A%2F%2Freiber%2Eorg%2Fnxt%2Fpub%2FLinux%2FLinuxKernelDevelopment%2FLinux%2EKernel%2EDevelopment%2E3rd%2EEdition%2Epdf&urlhash=3MN8&_t=tracking_disc>(Linux Kernel Development by Robert Love, 3rd edition).
>>
>> I am not sure how to practice the code snippet given in the text book. I
>> can understand the theory but do not find a way to practice. For example: I
>> want to read a process 'struct task_struct' to find it parent's process
>> identifier, how many tasks are in which state, creating kernel threads etc?
>>
>> Any idea?
>>
>>
>> On Mon, Jul 15, 2013 at 2:32 PM, Srinivas Ganji <
>> srinivasganji.kernel at gmail.com> wrote:
>>
>>> As per as I know, you can follow two text books.
>>>
>>> 1. Linux Kernel Development by Robert Love, 3rd edition.
>>> 2. Linux Device Drivers by Alessandro Rubini, Jonathan Corbet, Greh
>>> Kroah-Hartman. 3rd edition.
>>>
>>> At the same time, you can practice the exercises given in the text books
>>> - practice makes a man perfect. The other thing is "Make your hands dirty
>>> by digging the kernel code whenever you have a doubt".
>>>
>>> Regards,
>>> Srinivas
>>>
>>>
>>>
>>>
>>> On Mon, Jul 15, 2013 at 2:06 PM, Satya Prakash Prasad <
>>> unixkernel497 at gmail.com> wrote:
>>>
>>>> Please let me know how to study and get hands on experience on Linux
>>>> Kernel and Device Drivers?
>>>>
>>>> Regards,
>>>> Prakash
>>>>
>>>> _______________________________________________
>>>> Kernelnewbies mailing list
>>>> Kernelnewbies at kernelnewbies.org
>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130718/43346adc/attachment.html
More information about the Kernelnewbies
mailing list