To understand what is kmod and why do we need it, we first need to understand what is an OS (Operating System) and what is a Kernel.

What is an OS?

OS or Operating System as the name goes, is a system which on one side interacts with other softwares and services installed on the system in order to give you, the user, the information/output that you have requested and on the other side, interacts with the GUI (Graphical User Interface), which is taking inputs from the end user as well as delivering output for the end user, in a human understandable format.

What is a Kernel?

Kernel is the heart of an OS. It is the one which bridges the software to the hardware. It is the central component which coordinates the functionality between an application and the hardware. It decides the priority of the application, which application should be executed by GPU and which by the CPU, which data should sit on the RAM and which should sit on the disk.

So what is kmod?

A simple definition is, it is the library which helps the applications control the kernel modules.

Let’s explain this better…

A machine can consist of different type of hardware. Some may have CPU, some GPU, some both. Some may have a HDD, some SDD, some NVMe some a combination of them. Some may be connected to the network, some connected to the printer, some others might be connected to both, while some others may not be connected to either.

Now as we have read earlier, it is the Kernel that manages the coordination between the software and the hardware. However, every machine doesn’t have every hardware, nor does every software need all the hardwares. So the libraries for each hardware (also known as drivers) are modularised in a kernel so that not all the modules need to be loaded and unnecessarily bloat the machine. kmod helps the applications load only the necessary kernel modules while the machine is running.

How to install centos-release-kmods?

Using dnf

sudo dnf -y install centos-release-kmods

Using yum

sudo yum -y install centos-release-kmods