Linux kernel development tips
The best Linux kernel development practices are inspired by existing kernel code. This way, you could certainly learn good practices. That said, we will not reinvent the wheel. We will focus on what is necessary for this chapter, that is, debugging. The most frequently used debugging method involves logging and printing. In order to leverage this time-tested debugging technique, the Linux kernel provides suitable logging APIs and exposes a kernel message buffer to store the logs. Though it may seem obvious, we will focus on the kernel logging APIs and learn how to manage the message buffer, either from within the kernel code or from user space.
Message printing
Message printing and logging are inherent to development, irrespective of whether we are in kernel space or user space. In a kernel, the printk()
function has long since been the de facto kernel message printing function. It is similar to printf()
in the C library, but with the concept of...