Familiarity with plan 9 and its kernel along with a solid understanding of c. Plan 9 had its own c library which is close to c90 but much cleaner imo. Networking and threading libs are really nice.
Driver might be in two parts like usb where the kernel driver serves up the usb controller and attached devices while user space file servers open the devices and serves them. e.g. a webcam is served as a video stream file.