Drivers are essentially a piece of software that allows your computer to communicate with a device that is connected to the computer
The kernel is split up into different parts and due to security issues, things aren’t always as fast as you expect or don’t do quite what you want.
Types of Modules
In Linux, anything that can be added to the kernel during runtime is called a module and all modules are dynamically linked. Everything’s considered a file including hardware devices. Whenever a device is connected to a computer a device file is created in the /dev directory.
The different classes of devices and modules are character modules, block modules, or network modules. The more common ones you’ll see character devices and block devices character devices or the one which transmits data character by character block devices like USB drives, CD ROMs, etc.
A character device is used to transfer data character by character. A character device can be accessed as a stream of bytes like with a charge driver which is responsible for implementing behavior open/close or read and write system. Devices are accessed utilizing file system notes such as TTY short for Teletype which essentially prints the file name of the terminal connected to standard input.
Providing this abstraction layer is the role of an operating system in the kernel.
How Linux drivers are different from windows
Updating device drivers in windows was just to click update driver and in most cases that works but in Linux things are a little more complicated and at the same time easy as device drivers aren’t stored in the /dev directory sometimes they’re part of the Linux kernel remember that the kernel of our machine handles the interaction with hardware the kernel is a monolithic piece of software with lots of functions including support for lots of hardware. These days a lot of hardware support is built into the kernel so when you plug in a device it automatically works but in some cases when there are devices that don’t have support built into the kernel they most likely have kernel module which extends the functionality of the kernel without them. If you need to install a kernel module for a specific type of device you can install it the same way we’ve been installing all software in Linux
IMPORTANT: Not all kernel modules are drivers in Linux.