A lot of drivers should be provided by the os though, for instance the touchpad on my controller works fine as a mouse only on Linux…
(I know it’s a niche case but it’s just an example)
There’s generic drivers, for example any USB keyboard or mouse can use a generic driver. That’s usually developed by the OS developer, so for example Microsoft wrote a driver for this, there’s a driver in the Linux kernel, etc.
The other type are drivers for specific hardware. On Linux, sometimes this is written by contributors, while other times the manufacturer itself writes the drivers (eg Intel wrote a lot of the kernel drivers for their hardware like CPUs, network cards, etc). On Windows, these are almost always written by the device manufacturers.
The generic drivers are usually very solid but have limited features since they have to work for a large range of devices. It’s the manufacturer-written ones that tend to be buggy.
A lot of drivers should be provided by the os though, for instance the touchpad on my controller works fine as a mouse only on Linux… (I know it’s a niche case but it’s just an example)
There’s two types of drivers shipped with OSes.
There’s generic drivers, for example any USB keyboard or mouse can use a generic driver. That’s usually developed by the OS developer, so for example Microsoft wrote a driver for this, there’s a driver in the Linux kernel, etc.
The other type are drivers for specific hardware. On Linux, sometimes this is written by contributors, while other times the manufacturer itself writes the drivers (eg Intel wrote a lot of the kernel drivers for their hardware like CPUs, network cards, etc). On Windows, these are almost always written by the device manufacturers.
The generic drivers are usually very solid but have limited features since they have to work for a large range of devices. It’s the manufacturer-written ones that tend to be buggy.