Recommended Reading for Linux Developers
From BUG Wiki
The following is a list of books Angel Roman recommend for getting up to speed on embedded software development and Linux:
- Designing Embedded Hardware (2nd edition): Excellent book on microcontrollers, C, and interfacing to things
- Programming Embedded System in C and C++: Great book on low level stuff without an OS. You need this to understand the basic concepts of how Low Level programming works to then move to linux device drivers.
- Programming in C:
- Linux System Programming
- Linux Programmer's Toolbox <-- Excellent review of the linux kernel in Chapter 5: A Must read for everyone.
- Embedded Linux Primer: Best book I've read on the subject. Covers and talks about bootloaders, processors, porting linux, intro to device drivers, etc...
- Linux Device Drivers 3rd Edition: This book is Great! (after the 8th attempt over 5 years) It's also available for free; google it.
- All of these books will not help you unless you practice it. Play around with QEMU. Emulate arm based computers.
- Use a BUG and perform exercises from these books on it.
- Buy a microcontroller kit (AVR Kit) to fully understand internals of computers without an OS (It's cool stuff). Finally learn how to use timers to create your own "OS" to make multi-tasked software on a microcontroller, this will give you a good foundation for understanding what the linux kernel really is. It's a eye-opening experience ;).
