The kernel is the part of the operating system that facilitates interactions between hardware and software components. On most systems, it is loaded on startup after the bootloader and handles I/O requests as well as peripherals like keyboards, monitors, network adapters, and speakers. The Linux kernel is the open-source, monolithic, and, Unix-like operating system kernel that is used in the Linux distributions, various embedded systems such as routers, and as well as in all Android-based systems. Linus Torvalds conceived and created the Linux kernel in 1991 and it's still being developed by thousands of developers today. It's a prominent example of free and open-source software and it's used in other free software projects, notably the GNU operating system. Although the Linux-based operating systems dominate most of computing, it still carries some design flaws which were quite a bit of debate in the early days of Linux.
Features
- The Linux kernel is also modular, accepting loadable kernel modules (LKM)
- Documentation available
- Since LKMs could be loaded and unloaded to the system at runtime, they have the advantage of extending the kernel without rebooting and re-compiling
- The kernel functionalities provided by modules would not reside in memory without being used and the related module can be unloaded in order to free memory and other resources
- Loadable kernel modules are located in /lib/modules with the .ko (kernel object) extension in Linux
- insmod/rmmod are used for modules independent of modprobe and without requiring an installation