Search code examples
programming-languageskernel

Kernel Programming From Beginner to Expert using C


Hello i am new to Kernel Programming and i would you to answer me how and how much it could take me to get started with confidence to play with the code and the meanings. I am listing some Questions that they are also my Goals.Please answer any of them if not all.

1.I would like to evaluate myself on "how much" C i know in order to be able to understand the code and general concepts of the source code.

  • How i could evaluate myself to find my skill level of programming in C?

I have read K&R but i don't yet have a serious understanding on pointers and structs. When i mean serious i mean i am not able to easily comprehend the source code,yet.

  • Where i could find puzzles,projects in order to gain real world experience?

  • What books do you suggest in order to solidfy my knowledge in C programming?

  • How long it could take me to be a Competent Programmer(if i am not already?)

    1. Expert
    2. Professional
    3. Competent
    4. Advanced Beginner
    5. Novice

A path of books or links well explained in time&skill level order it would be great.

2.I would like to be able to play with the code and create some new in order to experiment with the Kernel.

  • A path of books or links, Kernel Oriented, well explained in time&skill level order it would be great help.
  • Some suggested mailing lists and communites in general ?
  • How long it could take me to be a Competent Kernel Programmer?

(see list above about skill levels)

3. Some general suggestion about those subsjects?


Solution

  • These might help getting you there:

    • The C Programming Language
    • Understanding the Linux Kernel
    • Linux Device Drivers

    Maybe you should start with something other than the kernel first. Take any open source project written in C, get the source, try to fix open bugs or implement missing features. That will teach you a lot about C, and you'll get feedback about the code you write.

    Once you're fluent in C you can start diving into the kernel source.