For many years, developers could not figure out the mystery of OS kernels. The main source of this mystery is the interaction between operating systems and hardware while system's boot up and kernel initialization. In addition, many operating system kernels differ in their behavior toward many situations. For instance, kernels act differently in racing conditions, kernel initialization and process scheduling. For such operations, kernel debuggers were designed to help in tracing kernel behavior and solving many kernel bugs. The importance of kernel debuggers is not limited to kernel code tracing but also, they can be used in verification and performance comparisons. However, developers had to be aware of debugger commands thus introducing some difficulties to non-expert programmers. Later, several visual kernel debuggers were presented to make it easier for programmers to trace their kernel code and analyze kernel behavior. Nowadays, several kernel debuggers exist for solving this mystery but only very few support line-by-line debugging at run-time. In this paper, a generic approach for operating system source code debugging in graphical mode with line-by-line tracing support is proposed. In the context of this approach, system boot up and evaluation of two operating system schedulers from several points of views will be discussed.
Keywords
Debugging, Kernel, Linux, FreeBSD, Qemu.
User
Font Size
Information