Hi, I don't know If I am writing in the correct place, please excuse-me if not.

I am an engineering student and I use the linux OS for quite a long time ( tried ubuntu, fedora, suse ) but only as a user. Now I'm doing a very cool internship and I need programming skills that I absolutely don't have yet. At the moment I have to understand and program kernel drivers, and I am very excited about learning such a thing, that interests me very much and I am studying in the book "Linux device drivers" but I can't understand it very well, as I have only C/C++ intermediate programming skills.

I think that for me at this point, I have to study advanced C programming, study about the linux kernel (I took the book "Understanding the Linux Kernel" - O'Reilly, to study ), and only after that, start studying about programming linux drivers, but I'm quite in a hurry, because I need to understand the drivers now, for my internship.

Do you have any idea to help me? Any site, tutorial or book that lead me to unsdertand more easily about the kernel, how the kernel interact with hardware and user software, the modules and so on?

thank you