Whats the deal with kernel modules? Can kernel modules be used for most things that would require re-compiling the kernal? If so what is the advantage of re-compiling over using modules?