A kernel is a core component of the operating system that's generally written in C, which allows software to communicate with hardware. I guess you can think of it as a native language translator.
It's written in C. And no, GUI is something that is definitely not in the kernel.
The kernel provides an abstract way to communicate with devices, manages threads and processes while making sure the available hardware resources are distributed fairly between them (mainly CPU time), manages memory allocations, allows an abstract access to files across various file systems (and various devices) and lots more.
Basically it creates a fundamental environment where "normal" applications can properly function in without having to worry about the gory details.