exercise in linux kernel device driver programming