1
00:00:00,000 --> 00:00:05,600
Windows 95 was a big deal. It gave us the start button, featured USB support, and made people

2
00:00:05,600 --> 00:00:10,320
who weren't alive in the 1960s aware of who the Rolling Stones are. But despite all that,

3
00:00:10,320 --> 00:00:15,520
let's be real. Windows 95 and its successors, Windows 98 and especially ME, collectively

4
00:00:15,520 --> 00:00:20,720
referred to as Windows 9X, were bugger than a roach motel. It might be tempting to lay the

5
00:00:20,720 --> 00:00:24,560
blame on the less powerful hardware of the time, especially considering that many of

6
00:00:24,560 --> 00:00:29,360
Windows Vista's problems were a result of PC makers installing it on below spec computers,

7
00:00:29,440 --> 00:00:33,840
but it turns out the main reason Windows 9X was so maddening was that the operating system was

8
00:00:33,840 --> 00:00:38,800
built like a house of cards. You see, all three of these OSs were based on MS-DOS, which was released

9
00:00:38,800 --> 00:00:44,560
all the way back in 1981. And even though Windows looked very different, it shared lots of the code

10
00:00:44,560 --> 00:00:50,080
with DOS under the hood. And as a metaphor, well, putting an infotainment system and some heated

11
00:00:50,080 --> 00:00:55,280
seats in an 81 Bonneville isn't exactly going to make it run the same as a modern car. The reason

12
00:00:55,360 --> 00:00:59,680
that Microsoft built Windows 95 this way was because they wanted users to be able to run

13
00:00:59,680 --> 00:01:04,720
familiar DOS programs and wanted the OS to run well on older hardware. And to be fair to Microsoft,

14
00:01:04,720 --> 00:01:10,000
Windows 95 largely achieved these goals. But doing so came at an unavoidable cost.

15
00:01:10,000 --> 00:01:14,400
The stability problems ultimately boiled down to the fact that DOS was not meant to be a true

16
00:01:14,400 --> 00:01:19,120
multitasking operating system. Although a big part of Microsoft's marketing was how well the

17
00:01:19,120 --> 00:01:23,920
new Windows taskbar would make it super easy to switch between programs, that underlying DOS code

18
00:01:23,920 --> 00:01:28,640
was built more for something called cooperative multitasking. What this meant was that DOS relied

19
00:01:28,640 --> 00:01:34,080
on programs voluntarily relinquishing CPU time if the user wanted to switch to a different program.

20
00:01:34,080 --> 00:01:38,720
This wasn't a big problem in DOS because users were nearly always just trying to use one program

21
00:01:38,720 --> 00:01:42,880
at a time. Not only were there hardware and software limitations that kneecapped how many

22
00:01:42,880 --> 00:01:48,240
programs you could conceivably run and an interface that steered you toward exiting a program rather

23
00:01:48,240 --> 00:01:53,440
than minimizing it, but early users largely thought in a single task paradigm. Windows 9x,

24
00:01:53,440 --> 00:01:58,080
though, was supposed to allow you to have lots of things open simultaneously. To enable this,

25
00:01:58,080 --> 00:02:02,880
Windows 95 introduced preemptive multitasking, which is the same scheme we use today. In preemptive

26
00:02:02,880 --> 00:02:07,680
multitasking, the OS has much more control over programs because it steps in and divvies up CPU

27
00:02:07,680 --> 00:02:11,520
time on its own rather than waiting for the programs to do it. But the problem back in the

28
00:02:11,520 --> 00:02:16,880
Windows 9x days was that this was really only implemented for newer 32-bit programs. And there

29
00:02:16,880 --> 00:02:21,840
were plenty of old 16-bit software people were still using that didn't exactly play by the rules.

30
00:02:21,840 --> 00:02:25,760
A huge problem that you would run into was that older code would often access

31
00:02:25,760 --> 00:02:30,000
another program's memory space, or even the memory space of Windows itself.

32
00:02:30,000 --> 00:02:35,200
16-bit programs and especially DOS mode device drivers were especially notorious for doing this,

33
00:02:35,200 --> 00:02:39,360
as during the DOS days, programs and drivers were allowed to access far more of the system's

34
00:02:39,360 --> 00:02:43,520
hardware directly than they are today. So when you tried to get those pieces of software to work

35
00:02:43,520 --> 00:02:46,720
in an environment where there were lots of other programs running at the same time,

36
00:02:46,720 --> 00:02:52,240
it often wasn't a pretty picture. There were other problems as well. Even newer 32-bit device

37
00:02:52,240 --> 00:02:56,800
drivers actually shared memory space with the Windows kernel itself, meaning that the entire

38
00:02:56,800 --> 00:03:01,920
operating system was vulnerable to poorly written software in more ways than one. Windows 9x also

39
00:03:01,920 --> 00:03:06,320
did itself no favors by doing a poor job of freeing up memory that was no longer being used by a

40
00:03:06,320 --> 00:03:10,560
program, a problem called a memory leak, which reduced the amount of memory available to other

41
00:03:10,560 --> 00:03:15,360
programs resulting in slowdowns and eventually a crash. Of course, the Windows versions of

42
00:03:15,360 --> 00:03:19,280
today aren't perfect, but they're a heck of a lot more stable than the bad old days we've been

43
00:03:19,280 --> 00:03:24,160
talking about in this episode. So what changed? Well, even before Windows 95 came out, Microsoft

44
00:03:24,160 --> 00:03:28,800
already had an alternate version of Windows called Windows NT. This version didn't have the old DOS

45
00:03:28,800 --> 00:03:33,280
code that made 9x so buggy, was built from the ground up for seamless multitasking support,

46
00:03:33,280 --> 00:03:38,320
and crucially had the ability to isolate each program's memory space much more effectively.

47
00:03:38,320 --> 00:03:42,080
But as an operating system intended for more professional and workstation use,

48
00:03:42,160 --> 00:03:46,640
NT had higher system requirements and wouldn't support a lot of the older programs and hardware

49
00:03:46,640 --> 00:03:52,720
most users still needed. However, in 2001, Microsoft released Windows XP, the first version of Windows

50
00:03:52,720 --> 00:03:57,600
based on the NT kernel that was aimed at home users. They were able to do this because the Windows

51
00:03:57,600 --> 00:04:02,800
9x family, flawed as it may have been, steered developers toward coding for 32-bit operating

52
00:04:02,800 --> 00:04:07,520
systems compatible with newer hardware. After a few years of this, Microsoft finally felt confident

53
00:04:07,600 --> 00:04:12,240
enough to ditch those weird DOS Windows hybrids and the NT kernel continues to power Windows to

54
00:04:12,240 --> 00:04:16,240
this day. But if you really miss Windows 95, there's nothing stopping you from changing your

55
00:04:16,240 --> 00:04:20,720
desktop background to cyan, hooking up a CD ROM drive, and playing some space cadet pinball in

56
00:04:20,720 --> 00:04:24,720
your browser. You can even kick your tower once in a while if you missed the instability. Yep,

57
00:04:25,360 --> 00:04:30,000
gotta love that. Sometimes I kicked mine to get it to start working again. Usually I just had to

58
00:04:30,000 --> 00:04:34,080
unplug it though. So thanks for watching. Like the video if you liked it, dislike it if you didn't,

59
00:04:34,080 --> 00:04:38,720
check out our other videos like the one I did on Redbox, that was fun. And comment with video

60
00:04:38,720 --> 00:04:43,360
suggestions down below and don't forget to subscribe and follow, follow. Like ring the bell,

61
00:04:43,360 --> 00:04:48,720
you mean? Yeah, ring the bell, click the little bell. Yes, thank you, bye.
