The Linux kernel is the foundation for any Linux-based operating system. It represents the core of Linux distributions for servers and desktop computers. It's also used in embedded systems such as routers, as well as in all Android-based systems, including many popular tablets and smartphones. It was created by Linus Torvalds in 1991 for use on his personal computer. Today, it is widely-adopted, free, and open source software that is actively maintained by developers all over the world. The Linux kernel is currently distributed under GNU's General Public License.
The Linux kernel is a "monolithic" architecture — the OS operates entirely in the kernel space. This is different from other architectures, such as a microkernel, in that the kernel alone defines and controls how the operating system interfaces with the computer's hardware. Unlike standard monolithic kernels, the Linux kernel is also modular — it accepts LKMs (Linux kernel modules) which act as device drivers. LKMs can be written, maintained, and distributed by device manufacturers or volunteers, and can load or unload to the system without rebooting, and without re-compiling the kernel.
Linux kernels support preemptive multitasking, virtual memory, shared libraries, memory management at the system level, threading, and a number of other modern operating system features. The default compiler for the Linux kernel is GCC.