Audience for This Book
This book should be an interesting source of information both for
people who want to experiment with their computer and for technical
programmers who face the need to deal with the inner levels of a
Linux box. Note that "a Linux box"
is a wider concept than "a PC running
Linux," as many platforms are supported by our
operating system, and kernel programming is by no means bound to a
specific platform. We hope this book is useful as a starting point
for people who want to become kernel hackers but
don't know where to start.
On the technical side, this text should offer a hands-on approach to
understanding the kernel internals and some of the design choices
made by the Linux developers. Although the main, official target of
the book is teaching how to write device drivers, the material should
give an interesting overview of the kernel implementation as well.
Although real hackers can find all the necessary information in the
official kernel sources, usually a written text can be helpful in
developing programming skills. The text you are approaching is the
result of hours of patient grepping through the kernel sources, and
we hope the final result is worth the effort it took.
The Linux enthusiast should find in this book enough food for her
mind to start playing with the code base and should be able to join
the group of developers that is continuously working on new
capabilities and performance enhancements. This book does not cover
the Linux kernel in its entirety, of course, but Linux device driver
authors need to know how to work with many of the
kernel's subsystems. Therefore, it makes a good
introduction to kernel programming in general. Linux is still a work
in progress, and there's always a place for new
programmers to jump into the game.
If, on the other hand, you are just trying to write a device driver
for your own device, and you don't want to muck with
the kernel internals, the text should be modularized enough to fit
your needs as well. If you don't want to go deep
into the details, you can just skip the most technical sections, and
stick to the standard API used by device drivers to seamlessly
integrate with the rest of the kernel.
|