- Paperback: 648 pages
- Publisher: Prentice Hall (September 29, 2005)
- Language: English
- ISBN-10: 0131181637
- ISBN-13: 978-0131181632
- Product Dimensions: 6.8 x 1.3 x 9 inches
- Shipping Weight: 2 pounds (View shipping rates and policies)
- Average Customer Review: 13 customer reviews
- Amazon Best Sellers Rank: #1,879,687 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The Linux Kernel Primer: A Top-Down Approach for x86 and PowerPC Architectures
Use the Amazon App to scan ISBNs and compare prices.
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Customers who viewed this item also viewed
Customers who bought this item also bought
I've been less than happy with other kernel books I've read. Admittedly,it's a difficult subject: there's a lot to cover, and you really need quite a bit of programming and general Unix knowledge before you could even consider jumping into this area. But I have the background,have even written simple Unix drivers, and yet every other kernel programming book has disappointed me.
It's all so overwhelming: there are conventions and quirks that have developed over time and surely are second nature to the people who have been doing Linux kernels for years, but these things are baffling to the newcomer.
This book tries to get you past that. The authors specifically say that they have tried to cover the things that confused them when they first started looking at the kernel. I'm sure their efforts aren't perfect, but the effort does definitely show.
The authors present several programming projects to help explore the kernel concepts, and every chapter has review questions to help firm up your understanding. The approach is from user space when possible: the assumption is that you are comfortable with application programming and that is used as the base to lead you down into the work done by the kernel for your programs. There's plenty of annotated source code here, both for x86 and PowerPC architectures. The inclusion of PowerPC information was an unexpected bonus; other books I've read have usually ignored that entirely or glossed it over quickly.
Of course you need a background in C, and while this does try to cover general kernel subjects, it wouldn't hurt to have at least some prior reading there. A little familiarity with hardware and light assembly language will help also, although the authors do give some coverage there.
I'm looking forward to spending more time exploring this book.
From the Back Cover
Learn Linux kernel programming, hands-on: a uniquely effective top-down approach
The Linux® Kernel Primer is the definitive guide to Linux kernel programming. The authors' unique top-down approach makes kernel programming easier to understand by systematically tracing functionality from user space into the kernel and carefully associating kernel internals with user-level programming fundamentals. Their approach helps you build on what you already know about Linux, gaining a deep understanding of how the kernel works and how its elements fit together.
One step at a time, the authors introduce all the tools and assembly language programming techniques required to understand kernel code and control its behavior. They compare x86 and PowerPC implementations side-by-side, illuminating cryptic functionality through carefully-annotated source code examples and realistic projects. The Linux® Kernel Primer is the first book to offer in-depth coverage of the rapidly growing PowerPC Linux development platform, and the only book to thoroughly discuss kernel configuration with the Linux build system. Coverage includes
x86 and PPC assembly language
Viewing kernel internals
Linux process model
User and kernel space
Interrupts and exceptions
Memory allocation and tracking
Tracing subsystem behavior
Filesystems and file operations
Scheduling and synchronization
Kernel boot process
Kernel build system
If you know C, this book teaches you all the skills and techniques you need to succeed with Linux kernel programming. Whether you're a systems programmer, software engineer, systems analyst, test professional, open source project contributor, or simply a Linux enthusiast, you'll find it indispensable.
© Copyright Pearson Education. All rights reserved.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
The binding quality is also bad, within one day of receiving the book the pages started cracking out.
Very disappointing since it is a good Linux reference. No way this poor publication choice is worth 50$. I rather read an online PDF.
The authors choose to explain for two chip sets. Namely for the Intel x86. Natural and obvious, given Intel's domination of the microprocessor market. As for a second choice, there are many contenders, like the Alpha or the ARM chips. But instead, the book describes the PowerPC, which is prominently backed by IBM and Motorola. I suspect this choice might have been influenced by one of the authors being at IBM. Arguably, a credible alternative is the chip set from AMD.
But the main thrust of the book is to offer a top down view of linux, drilling as close to the hardware as possible. The code excerpts are in C. (Very little kernel development seems to be done in other languages, and this book is no exception.)
At the lowest level, you are shown how to access the drivers in /dev/, which in turn access the hardware. For example, one code fragment explains the reading of the real time clock on the x86. For some developers who might be used to dealing in pure software, these hardware interaction examples may be the most valuable portions of the text.
Another merit of the book is presence of 2 architectures that are described. If you are developing for another chip set, the text may still be quite useful. You get 2 case studies here of how linux works. Contrasting these might give insight into what changes you need for your chip set.
Overall, this is definitely an advanced book. Having a strong background in C coding is a plus.
Well, the subject is overwhelming, and it really can't be covered in one book. But you have to start somewhere, and this looks like the best place I've seen so far. Yes, of course you'll need and want other books, and you'll need to spend a lot of time experimenting on your own, but this is (as the title says) your primer: the book that introduces and explains all the confusing little conventions and quirks that you need to know to avoid being totally lost.
I really like the approach of trying to relate everything to user space programs and of writing example code and drivers to illustrate concepts. The authors have also made an effort to point out and elucidate the things that confused them when they first started looking at the kernel.
Every chapter has at least a few review questions at the end, and lots of annotated source code. Four projects get you started with actual kernel programming.
There are, of course, ommissions and lightly covered areas. Six hundred pages aren't enough to cover everything in depth, and there has to be at least some basic assumption of programming knowledge. But overall, this looks great and I'm looking forward to spending more time with it.
The major problem I have is that it seems not to have been proofread AT ALL. I have found at least a typo a page on average, and not just punctuation and spelling mistakes. Using the wrong name for a function, referring the reader to the wrong figure, chapter or section, that kind of typo. The design of the book (notational conventions, typefaces, how they display varible names vs. code blocks vs. normal text, etc) is quite inconsistent at times.
All in all, a good read, and a great intro, but very inconsistent and error-ridden; prepare to read it with oversight.
Most recent customer reviews