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.

Comments

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.

Choices!

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.

Customization

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.