Design and Implementation of Embedded Linux Device Drivers