These days, we're used to just plugging things into our computers and having them simply work right away. And while it's true that you might need to install drivers for an odd couple of things, like a chip set or RGB, Windows does a remarkably good job of knowing exactly what's connected to the PC and using appropriate drivers. But it wasn't always like this.
Back before the days of plug and play hardware, you had to manually configure how the system would assign resources to whichever gadget you were installing. Every piece of hardware needs to be assigned addresses for memory and IO access, so the system knows where to send data. These days, it's almost always handled automatically by the operating system. But back in the day, you had to find free addresses yourself and possibly even set switches or do soldering on the actual hardware. Not things that lend themselves well to novice users.
Plug and play came to save us with the release of Windows 95. You might remember how it would try and automatically set up hardware when you first installed the OS.
Although there were other prior technologies that tried to enable automatic hardware setup, the Windows 95 launch marked the first time consumers experienced widespread support for the technology. Of course, that didn't necessarily mean that it worked well.
Although Windows 95 could recognize some devices without a hitch, there still wasn't a universal plug and play standard that all device manufacturers used. And to complicate matters, The bios had to be on the same page as the device and the OS as well.
Furthermore, this was back when the internet was in its infancy and tons of users running Windows 95 didn't even have an internet connection. Meaning that while windows came with some drivers pre-loaded, it couldn't cover everything, as the OS was unable to pull drivers off the server. And oftentimes the system wouldn't know what to do with a new gadget.
This led users to derisively referred to the technology as plug and pray. As you never quite knew if the system would automatically recognize device or not, when you first plugged it in. Indeed, Microsoft actually had an infamous egg on their face moment during the Windows 98 demo that featured Bill Gates himself. They plugged in a scanner in an attempt to show how the new OS supported plug and play and the system blue screened as soon as it was connected.
But as time went on, the industry figured out improvements to the technology. The ACPI standard, which started becoming widespread in the early 2000s, gave Windows a more standardized way to connect devices rather than relying on firmware support from the bios which were more inconsistent.
ACPI allowed the motherboard to tell Windows automatically what hardware was connected which was a big step in the right direction. Manufacturers of other devices also started baking in more information that the system could read to automatically tell what was plugged in. For example, PCI adapter cards, including ones that use the later PCI Express protocol, have a configuration space that contains information about kind of device it is, who made it, and what its capabilities are, so that the system can react accordingly.
Similarly, USB devices have controller chips inside them that also contain identifying information so that windows can fetch the right drivers. And as we alluded to earlier, the ubiquity of high speed internet connections has made it feasible for Windows itself to take these hardware identifiers and match them with a large repository of up-to-date drivers that manufacturers send to Microsoft making a trivial for the OS to grab a needed driver in most cases.
Although this is extremely convenient, part of me does still miss the days when you had to insert a floppy disc with a driver and listen to it make all sorts of ungodly noises.