Why are there both C and Perl versions of psadwatchd and kmsgsd?
psad originally started as a perl project for Bastille Linux, but over time the perl code is being translated into C for better performance and less memory utilization. Also, the psad installer will attempt to compile the C versions first but fall back to the perl versions just in case the compilation fails. It is always nice to have redundancy wherever possible.