Course syllabus and topics list

Printer-friendly versionPrinter-friendly version

With the preliminaries out of the way, we can now discuss the actual content of this introductory Linux kernel programming course.

It's important to emphasize that this is an introductory course, designed for students with little to no experience in kernel programming. That means that the course is not designed to make you an expert kernel hacker by the end. Rather, the goal here is to establish a solid foundation of the fundamentals that will let you take off from there and get into more advanced kernel topics (some of which will be the subjects of future Crash Course offerings).

Those who took the first edition of this course will undoubtedly recognize the list of topics to be covered in this course, which will include:

  • Components of the kernel in your filesystem.
  • The pre-requisite software for basic kernel programming.
  • Getting the kernel source.
  • Configuring, building and booting a new kernel
  • Writing your first loadable kernel module (LKM).
  • The intricacies of module entry and exit code.
  • Working with module parameters.
  • Basic kernel memory allocation primitives.
  • Writing simple /proc files and sequence files for your modules.
  • Special device files and device registration.
  • Communicating with your modules with ioctl calls.
  • Writing your first character driver.
  • Some basic kernel debugging techniques.
  • An introduction to cross-compiling for non-x86 architectures.

In addition to the above, there will undoubtedly be side trips to discuss interesting and educational bits of trivia in the kernel (how do kernel linked lists work?), but the above represents the collection of topics that will be covered.

Finally, it's important to remember that this is very much a "hands-on" course and, by the end, the student will have designed, coded and loaded a fully-functioning character device driver on his development host.

And with the list of course topics out of the way, it's time to move on to setting up your Linux development host.


Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br> <pre> <h1> <h2> <h3> <h4>
  • Lines and paragraphs break automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.