Essential Linux Device Drivers
Writing device drivers for Linux is not the technological equivalent of building a house for your dog out of spare lumber in your garage on a Sunday afternoon. On the other hand, it's not like performing a delicate heart--lung transplant, either. In other words, it is possible, but requires the relevant skill sets and a certain amount of determination.
The Audience section of the Preface says, "This book is intended for the intermediate-level programmer eager to tweak the kernel to enable new devices." Open up your bag of skill sets and see if you can find "C programming skills" and "intermediate-level programmer," and if they are resting at the bottom of the bag, dust them off and get ready to read this book.
The first three chapters introduce the reader to the Linux kernel, including a bit of a history lesson, what "GNU" is, finding kernel sources, and building the kernel. Really, quite a bit more material is involved, but it's all necessary as far as laying a foundation for what comes next. Chapter 4 establishes the groundwork for writing Linux device drivers, and then the book takes off from there.
Essential Linux Device Drivers is based on the 2.6 version of the Linux kernel, so it's as up to date as you'll need it to be. Also, it is very detailed and thorough. Venkateswaran covers material on embedded hardware like audio, video, wireless, and PCMCIA, beginning with relatively simple hardware and then moving toward more involved types of devices. Lessons are organized so that the reader knows what to expect, regardless of the degree of difficulty involved. Real-world examples let you take what you learn and apply it to actual projects, either personal or professional.
Although the book includes a companion website at elinuxdd.com, I didn't find the expected code examples in a form I could download, which would have been a plus. I did find a Book Updates section stating that the book is generally current as of the 2.6.23/24 kernel version and that updates would be added to the site as newer versions were released.
If you would like or need to write device drivers for Linux and you meet the "minimum standard qualifications" as outlined by the author, you will want to pick up a copy of Essential Linux Device Drivers.
Hardcopy, 744 pages
Prentice Hall PTR, 2008
ISBN-10: 0132396556 ISBN-13: 978-0132396554
£ 22.77, US$ 44.99, EUR 28.83
The Principles of Project Management
Because of my "jack-of-all-trades" position, I tend to dip my toe in the "project management" pool from time to time. The "Who Should Read This Book" section says the book is meant for readers like me – people who aren't expert project managers but want to learn more about project management. In fact, the author says, "You won't become a world authority on the project management discipline, but you will become an effective and efficient project manager."
Project management involves both mechanics and psychology, which means describing it requires an author who understands both domains. In her writing, Williams establishes her credentials in those worlds. Her presentation is both casual and informative, which is a nice mix if you need complex information but are starting from step one. Although this book won't make you an overnight expert, it will get you started in that direction.
After reading this book, I'd be more prepared if my employer were to ask me to start applying some project management principles to an upcoming assignment. If you are a newbie project manager, I recommend getting The Principles of Project Management.
Paperback, 224 pages
ISBN-10: 0980285860 ISBN-13: 978-0980285864
£ 20.32, US$ 39.95, EUR 27.73
On the other hand, like all books in a particular series, once you know what to expect, you can zero in on what you need pretty easily.
The "Who should probably back away from this book" section also suggests that if you are someone who doesn't know even basic HTML and CSS, someone who is an expert programmer needing just a reference text, or someone who would rather jump into a pit of angry cobras than try to learn something completely new, this isn't book the book for you.
Having to know only one programming language is rare, so while you're learning what is considered to be a "beginner's" language such as this, you might was well be learning the general basics of programming, too.
If you are a traditionalist and expect or need to be taught in a more conventional way, this book is not the one for you.
Paperback, 650 pages
O'Reilly Media, 2008
ISBN-10: 0596527748 ISBN-13: 978-0596527747
£ 20.32, US$ 39.99, EUR 27.73