use C to write kernel~