It is not possible to connect new device types to a Linux machine without the necessary precautions. Apart from the required hardware interfaces, additional code should be added to the Linux kernel to interface between the hardware and the generic kernel routines of the I/O-subsystem. In order to write a device driver detailed knowledge is required about the internal concepts of certain parts of the Linux kernel, about the way the Linux kernel communicates with the device driver (and vice versa) and about the way a device driver handles the physical device. In addition, experience is needed with various types of device drivers and the way a new device driver can be added to the kernel. Upon completion of the course, candidates will understand the Linux architecture, hardware and memory management, modularization, and the layout of the kernel source, and will have practiced key concepts and skills for development of Character Drivers and good familiarity with USB and File-system drivers. |