Extract separate kernel.{c,h}