add kernel.c file