This course focuses on the basic elements of the Linux kernel, which allow programmers to build modules and device drivers. The students will gain a general understanding of the basic tools and interfaces, in order to successfully modify features and develop new aspects of the kernel. During the labs the students will build a full device driver including hardware access and interrupt handling