1
00:00:00,000 --> 00:00:04,480
These days, we're used to just plugging things into our computers and having them simply work

2
00:00:04,480 --> 00:00:09,200
right away. And while it's true that you might need to install drivers for an odd couple of

3
00:00:09,200 --> 00:00:14,880
things like a chipset or RGB, Windows does a remarkably good job of knowing exactly what's

4
00:00:14,880 --> 00:00:19,440
connected to the PC and using appropriate drivers. But it wasn't always like this.

5
00:00:19,440 --> 00:00:24,000
Back before the days of plug-and-play hardware, you had to manually configure

6
00:00:24,000 --> 00:00:28,560
how the system would assign resources to whichever gadget you were installing.

7
00:00:28,560 --> 00:00:33,840
Every piece of hardware needs to be assigned addresses for memory and IO access so the system

8
00:00:33,840 --> 00:00:39,440
knows where to send data. These days, it's almost always handled automatically by the operating

9
00:00:39,440 --> 00:00:46,320
system. But back in the day, you had to find free addresses yourself and possibly even set switches

10
00:00:46,320 --> 00:00:52,080
or do soldering on the actual hardware, not things that lend themselves well to novice users.

11
00:00:52,080 --> 00:00:57,120
Plug and Play came to save us with the release of Windows 95. You might remember how it would

12
00:00:57,120 --> 00:01:04,160
try and automatically set up hardware when you first installed the OS. Although there were other

13
00:01:04,160 --> 00:01:09,360
prior technologies that tried to enable automatic hardware setup, the Windows 95 launch marked the

14
00:01:09,360 --> 00:01:14,640
first time consumers experienced widespread support for the technology. Of course, that didn't

15
00:01:14,640 --> 00:01:20,240
necessarily mean that it worked well. Although Windows 95 could recognize some devices without a

16
00:01:20,240 --> 00:01:26,320
hitch, there still wasn't a universal plug-and-play standard that all device manufacturers used.

17
00:01:26,320 --> 00:01:32,240
And to complicate matters, the BIOS had to be on the same page as the device and the OS as well.

18
00:01:32,960 --> 00:01:37,440
Furthermore, this was back when the internet was in its infancy and tons of users running

19
00:01:37,440 --> 00:01:42,640
Windows 95 didn't even have an internet connection, meaning that while Windows came with some drivers

20
00:01:42,640 --> 00:01:48,160
preloaded, it couldn't cover everything as the OS was unable to pull drivers off the server and

21
00:01:48,160 --> 00:01:52,560
oftentimes the system wouldn't know what to do with the new gadget. This led users to

22
00:01:52,640 --> 00:01:57,840
derisively refer to the technology as plug-and-pray, as you never quite knew if the system would

23
00:01:57,840 --> 00:02:03,040
automatically recognize the device or not when you first plugged it in. Indeed, Microsoft actually

24
00:02:03,040 --> 00:02:08,240
had an infamous egg on their face moment during the Windows 98 demo that featured Bill Gates himself.

25
00:02:08,240 --> 00:02:12,640
They plugged in a scanner in an attempt to show how the new OS supported plug-and-play

26
00:02:12,640 --> 00:02:15,280
and the system blue screened as soon as it was connected.

27
00:02:15,840 --> 00:02:26,240
But as time went on, the industry figured out improvements to the technology. The ACPI

28
00:02:26,240 --> 00:02:31,040
standard, which started becoming widespread in the early 2000s, gave Windows a more standardized

29
00:02:31,040 --> 00:02:35,920
way to connect devices rather than relying on firmware support from the BIOS, which was more

30
00:02:35,920 --> 00:02:40,960
inconsistent. ACPI allowed the motherboard to tell Windows automatically what hardware was connected,

31
00:02:40,960 --> 00:02:45,680
which was a big step in the right direction. Manufacturers of other devices also started

32
00:02:45,680 --> 00:02:50,000
baking in more information that the system could read to automatically tell what was plugged in.

33
00:02:50,000 --> 00:02:55,760
For example, PCI adapter cards, including ones that use the later PCI Express protocol,

34
00:02:55,760 --> 00:03:00,960
have a configuration space that contains information about what kind of device it is,

35
00:03:00,960 --> 00:03:05,280
who made it, and what its capabilities are so that the system can react accordingly.

36
00:03:05,280 --> 00:03:10,640
Similarly, USB devices have controller chips inside them that also contain identifying information

37
00:03:10,640 --> 00:03:16,000
so that Windows can fetch the right drivers. And as we alluded to earlier, the ubiquity of high

38
00:03:16,000 --> 00:03:21,120
speed internet connections has made it feasible for Windows itself to take these hardware identifiers

39
00:03:21,120 --> 00:03:26,560
and match them with a large repository of up-to-date drivers that manufacturers send to Microsoft,

40
00:03:26,560 --> 00:03:31,920
making it trivial for the OS to grab a needed driver in most cases. Although this is extremely

41
00:03:31,920 --> 00:03:37,600
convenient, part of me does still miss the days when you had to insert a floppy disk with a driver

42
00:03:37,600 --> 00:03:43,280
and listen to it make all sorts of ungodly noises. Oh yeah. That's the good stuff.

43
00:03:45,360 --> 00:03:49,040
So thanks for watching TechWiki. If you liked this video, give us a like, hit subscribe,

44
00:03:49,040 --> 00:03:52,400
and be sure to hit us up in the comments section with your suggestions for topics that we should

45
00:03:52,400 --> 00:03:53,680
cover in the future.
