kernel using C