An introduction to Linux kernel programming

Printer-friendly versionPrinter-friendly version

This is Crash Course's first offering of a multi-week, online technical course; in this case, a series of 24 (actually, closer to 30 by now) lessons to gently introduce one to the joys and intricacies of basic Linux kernel programming. The first few lessons (and a number of others sprinkled throughout the course) are freely readable and shareable by anyone, while the remaining course lessons are available exclusively to subscribers for a course registration fee of only $39 (CAD) for the entire course. (That's not $39 per lesson, that's $39 for the entire course.)

A reasonably-detailed course overview and syllabus can be found here, while interested readers might want to check out the backstory here or simply register for the course here.

The content of this course and other parts of this site are changing on pretty much an hourly basis so if you want to keep up with new developments, feel free to follow me on Twitter at or drop me a note at

Happy coding.

P.S. And we have testimonials, yes, we do.

P.P.S. Let me emphasize that the lessons you see below are not the entire course. Check the course syllabus -- there's more to come. They're simply being posted as we complete them.

P.P.P.S. I would be remiss in not pointing out that, if you want state of the art in terms of a new book on Linux kernel programming, you need to pick up a copy of the newly-released 3rd edition of kernel guru Robert Love's Linux Kernel Development, for which I was the technical editor. That's what you call "street cred," right?

Robert P. J. Day,
Waterloo, Ontario, CANADA


Device driver


I cannot think of Linux without thinking about embedded systems and device drivers.

Is or will your course cover device drivers?

Kind regards,

Device drivers?

Technically, no, this introductory course won't cover the intricacies of device drivers but let me expand on that.

This course is meant to be an introduction to the basics of kernel programming; that is, it's going to cover the foundations of what every beginning kernel programmer needs to know in terms of kernel structure, configuring and building a new kernel, how to write loadable kernel modules, transferring data between user space and kernel space, simple debugging and so on. Clearly, none of that represents writing an actual device driver, but it's all essential information you'll need when you want to start writing specific types of drivers.

There are already plans for followup courses such as "How to write a PCI driver" and "How to write a USB driver", courses that will (probably) consist of perhaps a dozen lessons each and will cost about the same amount as this introductory course (or maybe slightly less, depending on length).

So if you feel that you already know kernel programming at a basic level, you can just wait for the driver course you're interested in. On the other hand, if you're truly new to kernel programming, you will probably need this intro course as a lead-in to the driver course.

I hope that answers your question.

UPDATE: I should correct myself here -- this course will cover writing a simple character driver since a lot of hardware can be managed by such a driver. But more sophisticated driver programming will have to wait for a subsequent course.

from Ukraine sysamin

Hello ! Can I get your course from Internet ?
best regards. Vladimir

how to enrll for the course

how to enrol for this course
what are the advance course in kernal programming
please inform n detail

Enrolling for the course

There are no followup courses for this course yet; in fact, this course isn't even finished, there are still several more lessons to come.

You can register for this course by following the "Register for Courses" link at the top of the page.

New content

If I register for the full course content (that $39 for the whole course), can I assume that I will be able to access other modules for this course, that would be written in the future ?


Subscribers will always have immediate access to any additional course modules.

Fee for course enrollment

I think the $39 dollar is in terms of Candian dollar currency.
How much I need to pay in US dollar?

Canadian dollar course fee

These days, US and Canadian dollars are worth about the same. You just need to use a normal credit card, and the exchange rate will be factored in automatically.

When Does The Next Course Start?

Hi. I live in Guelph and want to know when the next course starts?

Is thier any chance of

Is thier any chance of carrier in kernal.

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.

We know

We're aware of the time and budget pressures at most companies, normally accompanied by the plaintive cry from management of, "Yes, I know we need training on that topic, but I just can't afford to send my entire team away for three (or four or five) days to get it!" And that's where we come in.


The main focus at Crashcourse is to offer a choice of intense, 1-day, hands-on courses on specific topics in Linux and open source. And given that we already have the laptops for the delivery of that training, the idea is to show up early, set up a classroom, then spend the day teaching exactly the topic you're interested in. No travel time, and no wasted classroom time.


If we don't already have a course that addresses the topic you're interested in, drop us a note and we'll see what we can do -- our content providers can almost certainly put together a course that's precisely what you're after.

The difference

While there are a variety of sources for Linux and open source training, we at Crashcourse are taking a slightly different approach. Our philosophy is simple: exactly the training you want, and no wasted time or travel to get it.