I am wondering why Windows needs drivers and Linux does not for certain hardware?
I'm not fluent in any of this but IIRC there are a lot of drivers in the kernel.
Yeah, if the drivers are open source they generally get included in the kernel, it's only the proprietary stuff which you need to build or install manually.
On a related note, why can they afford to put all of these random drivers into the kernel. Wouldn't that make it bloated? Or does it have to do with modularity or something?
When you hear talk about Kernel Modules, they are referring to "drivers"
Generally, (unless you are compiling your own kernel) The kernel is kept to a minimum, and all the "drivers" are compiled as "modules." When your system first boots, the Kernel does a little bit of discovery, and your hardware is identified, and a module is loaded.
All of the necessary drivers are added directly to the Kernel, as many here have stated. this includes GPU drivers, Audio drivers, and any other Open Source equivalent drivers that will (well supposed to work) with your hardware. Of course contrary to popular belief, there are times where you have to "Hunt" for drivers. ask anyone who has any Broadcom related hardware on their machine. other than that that's the reason you never really need to download drivers. once you try a distro if it's using the most recent kernel. (Bleeding Edge Distros) it will have support for all the latest tech. (It should support the latest tech, though don't assume it will) and mind you newer Kernels tend to be buggy.
I guessed right then. Much more elegant and useful than Window's implementation, imo.
To add on to @DeusQain, if you were in something like ubuntu and opened up "Additional Drivers" it rescans and says "Oh you can get Nvidia 340.114 and....etc" and it would fetch the module, put it in, and when you wanted to switch things around it would unload the module and slot in another until you rebooted.
How windows has not picked up this superior ecosystem is beyond me. It's almost like they expect to just scan everything separate to track what everyone is using. You can't even say "Don't DL drivers plox" in windows 10.
@chiefshane There's a module called "sysgen" in the Unix system that, during the generation of the OS image, the only thing does is scan all the hardware in your system and compile the kernel accordingly to it, making sure all the APIs are correct.
@FaunCB If you add a device in Windows obiviously the system wants to interface with it so resets the device, if possible, pulls the info about it and installs the driver to make it work. Every OS is designed to work this way so you can't blame Windows because wants to make the peripherals you connect to it to work. If Windows automatically downloads additional drivers from Windows Update it's your own fault in the configuration, you can disable it and disable automatic Windows updates.
That seems to make a lot of sense. Thanks.