Practical Linux Programming: Device Drivers, Embedded Systems, and the Internet (Programming Series)