In general, this kind of problem solving requires finding out exactly which line of code or logic sequence causes a customer reported problem. The problem solver must be able to read code usually written in the "C" language but also possibly written in a UNIX shell language such as the Korn or Bourne shell. The kernel is the main operating system program that controls the computer. Filesystems subsystems are modules that are built into the kernel code of the operating system. Occasionally the filesystems module is written by a third party and the problem is reported to the third party developer along with the supporting data that has been developed by the trouble shooter.