1 00:00:04,240 --> 00:00:07,240 Speaker 1: Welcome to tex Stuff, a production of I Heart Radios, 2 00:00:07,320 --> 00:00:13,880 Speaker 1: How Stuff Works. Hey there, and welcome to tech Stuff. 3 00:00:13,920 --> 00:00:17,159 Speaker 1: I'm your host, Jonathan Strickland. I'm an executive producer with 4 00:00:17,200 --> 00:00:19,320 Speaker 1: How Stuff Works and I heart Radio and I love 5 00:00:19,400 --> 00:00:23,200 Speaker 1: all things tech. And today's episode comes to us due 6 00:00:23,320 --> 00:00:29,040 Speaker 1: to a listener request. Martin many many moons ago asked 7 00:00:29,080 --> 00:00:31,880 Speaker 1: if I could do an episode talking about the evolution 8 00:00:32,000 --> 00:00:35,520 Speaker 1: of virtualization, and so that's what this episode is all about. 9 00:00:35,920 --> 00:00:41,520 Speaker 1: But first, what is virtualization? Well, as the name implies, 10 00:00:41,640 --> 00:00:46,600 Speaker 1: it's all about creating a virtual representation of something else. Now, 11 00:00:46,640 --> 00:00:50,479 Speaker 1: in computing, we typically use it to mean creating virtual 12 00:00:50,640 --> 00:00:54,360 Speaker 1: computer platforms, and there are a lot of reasons why 13 00:00:54,560 --> 00:00:56,560 Speaker 1: you would want to do this. It would be a 14 00:00:56,640 --> 00:01:01,160 Speaker 1: virtual computer platform that exists on top of actual physical hardware. 15 00:01:01,600 --> 00:01:04,040 Speaker 1: And you might want to do it for security reasons, 16 00:01:04,319 --> 00:01:08,440 Speaker 1: to separate different programs and storage systems from one another. 17 00:01:08,920 --> 00:01:11,160 Speaker 1: You might want to do it to provide different stable 18 00:01:11,280 --> 00:01:16,120 Speaker 1: development environments so that a mistake in one partition doesn't 19 00:01:16,120 --> 00:01:19,119 Speaker 1: bring everything else down on the machine. You might want 20 00:01:19,160 --> 00:01:21,560 Speaker 1: to do it to run different operating systems on the 21 00:01:21,600 --> 00:01:24,200 Speaker 1: same physical hardware, or maybe you want to do it 22 00:01:24,240 --> 00:01:28,080 Speaker 1: to maximize efficiency in your computer system, or perhaps some 23 00:01:28,160 --> 00:01:31,520 Speaker 1: combination of some or all of the above, but we'll 24 00:01:31,520 --> 00:01:33,920 Speaker 1: get into that later. For now, the important thing, no, 25 00:01:34,480 --> 00:01:37,000 Speaker 1: is that the goal is to create a virtual version 26 00:01:37,120 --> 00:01:41,160 Speaker 1: of something that runs on top of actual physical hardware. Now, 27 00:01:41,160 --> 00:01:45,119 Speaker 1: the history of virtualization stretches back to the nineteen sixties, 28 00:01:45,480 --> 00:01:48,400 Speaker 1: well before the days when the average person had any 29 00:01:48,440 --> 00:01:52,720 Speaker 1: sort of interactions with a computer. Early computers were useful 30 00:01:53,120 --> 00:01:56,400 Speaker 1: but had some limitations. This is like the main frame 31 00:01:56,600 --> 00:02:00,240 Speaker 1: age of computers. So one of those limitations was that 32 00:02:00,360 --> 00:02:04,040 Speaker 1: early computers could really only run one process at a time, 33 00:02:04,440 --> 00:02:06,800 Speaker 1: and there had to be a person there to initiate 34 00:02:07,000 --> 00:02:10,000 Speaker 1: a new program. At first, that wasn't that big of 35 00:02:10,000 --> 00:02:13,679 Speaker 1: a problem because computers were such a niche gadget. Very 36 00:02:13,680 --> 00:02:16,080 Speaker 1: few people had any access to them in the first place, 37 00:02:16,080 --> 00:02:18,960 Speaker 1: so it wasn't that big of a limitation. The scientific 38 00:02:19,000 --> 00:02:23,280 Speaker 1: and academic communities were using them, but beyond them, very 39 00:02:23,400 --> 00:02:26,880 Speaker 1: few people had any experience with a computer. They were 40 00:02:26,880 --> 00:02:31,639 Speaker 1: mostly unknown. But as computers were becoming more available, as 41 00:02:31,680 --> 00:02:35,160 Speaker 1: businesses were starting to use them, and they were becoming 42 00:02:35,160 --> 00:02:39,160 Speaker 1: more capable of handling processes that went beyond academic interests, 43 00:02:39,520 --> 00:02:43,080 Speaker 1: it became clear that the limitations were a liability, and 44 00:02:43,120 --> 00:02:46,399 Speaker 1: so you had companies like IBM researching ways to get 45 00:02:46,400 --> 00:02:50,480 Speaker 1: around these limitations. One such way was an approach later 46 00:02:50,720 --> 00:02:54,680 Speaker 1: called batch processing. This dates from the time when programs 47 00:02:54,680 --> 00:02:58,920 Speaker 1: were represented on physical cards with holes punched in them, 48 00:02:59,000 --> 00:03:02,919 Speaker 1: known as punch cards for obvious reasons. So in an 49 00:03:02,919 --> 00:03:07,240 Speaker 1: early computer, you'd have a stack of cards representing a 50 00:03:07,440 --> 00:03:10,840 Speaker 1: single program, and you would feed those cards into the 51 00:03:10,880 --> 00:03:15,280 Speaker 1: computer's hopper, which is essentially its intake for cards, and 52 00:03:15,320 --> 00:03:19,280 Speaker 1: the computer would analyze the cards, which would have instructions 53 00:03:19,320 --> 00:03:23,080 Speaker 1: on them. The computer would then follow those instructions and 54 00:03:23,120 --> 00:03:26,480 Speaker 1: produce a result and either printed out or create a 55 00:03:26,480 --> 00:03:29,840 Speaker 1: new punch card or stack of punch cards, or later 56 00:03:29,919 --> 00:03:33,880 Speaker 1: on it would display the results on a monitor. IBM 57 00:03:33,919 --> 00:03:37,680 Speaker 1: developed computers that could accept stacks of cards that represented 58 00:03:37,760 --> 00:03:40,920 Speaker 1: more than one process. The computer would be able to 59 00:03:40,960 --> 00:03:44,160 Speaker 1: read out the stacks and complete each process in turn, 60 00:03:44,520 --> 00:03:47,840 Speaker 1: so you could feed batches of cards to the computer. 61 00:03:48,200 --> 00:03:51,640 Speaker 1: Thus batch processing it cut down on the amount of 62 00:03:51,680 --> 00:03:55,200 Speaker 1: time people had to spend babysitting a computer or waiting 63 00:03:55,200 --> 00:03:57,520 Speaker 1: for their turn to run a process, freeing them up 64 00:03:57,520 --> 00:04:00,560 Speaker 1: to work on other stuff. But was still limited, and 65 00:04:00,560 --> 00:04:03,800 Speaker 1: you were still stuck running just one process at a time. 66 00:04:03,840 --> 00:04:06,600 Speaker 1: You would just run them in sequence, and you couldn't 67 00:04:06,640 --> 00:04:09,440 Speaker 1: easily have multiple people using the same computer at the 68 00:04:09,480 --> 00:04:12,600 Speaker 1: same time. At best, you could use batch processing to 69 00:04:12,720 --> 00:04:15,640 Speaker 1: run a second job right after the first one, but 70 00:04:15,760 --> 00:04:18,800 Speaker 1: it was restrictive, and as computers were becoming more important, 71 00:04:19,040 --> 00:04:22,160 Speaker 1: this was a problem in the late fifties and early 72 00:04:22,320 --> 00:04:27,120 Speaker 1: nineteen sixties some engineers or computer scientists, though that term 73 00:04:27,240 --> 00:04:30,520 Speaker 1: was hardly in use yet, and many in academic fields 74 00:04:30,520 --> 00:04:33,080 Speaker 1: were very snooty. They didn't quite yet view the subject 75 00:04:33,160 --> 00:04:36,640 Speaker 1: as worthy of standing on its own anyway, Some of 76 00:04:36,680 --> 00:04:39,760 Speaker 1: these innovators began to experiment with ways to get around 77 00:04:39,960 --> 00:04:44,160 Speaker 1: these limitations. A fellow named John McCarthy, a professor at 78 00:04:44,160 --> 00:04:47,960 Speaker 1: the Massachusetts Institute of Technology better known as m i T, 79 00:04:48,520 --> 00:04:52,080 Speaker 1: proposed in nineteen fifty nine that an IBM seven O 80 00:04:52,279 --> 00:04:55,279 Speaker 1: nine main frame could be tweaked to allow for a 81 00:04:55,360 --> 00:04:59,320 Speaker 1: few people to use the machine more or less at 82 00:04:59,360 --> 00:05:02,120 Speaker 1: the same time time. He then began to recommend some 83 00:05:02,240 --> 00:05:05,920 Speaker 1: changes to the university's IBM seven oh four main frame 84 00:05:06,200 --> 00:05:10,400 Speaker 1: to allow what he called a time stealing mode. In 85 00:05:10,440 --> 00:05:12,839 Speaker 1: this mode, you could have a batch of jobs running 86 00:05:12,880 --> 00:05:15,760 Speaker 1: on a computer, then someone else with an unrelated job 87 00:05:15,800 --> 00:05:19,000 Speaker 1: shows up, and, using time stealing, the new person could 88 00:05:19,080 --> 00:05:21,960 Speaker 1: interrupt the batch process to run this other job, and 89 00:05:22,000 --> 00:05:25,920 Speaker 1: then the batch process could resume as per normal. Another 90 00:05:26,080 --> 00:05:29,760 Speaker 1: m i T professor named Fernando Corbato worked on a 91 00:05:29,800 --> 00:05:33,599 Speaker 1: similar project, tweaking the university's IBM seven oh nine main 92 00:05:33,640 --> 00:05:36,400 Speaker 1: frame so that four people could use the system at 93 00:05:36,400 --> 00:05:39,599 Speaker 1: the same time. But these were all solutions using systems 94 00:05:39,600 --> 00:05:44,120 Speaker 1: that weren't natively designed to support multiple users. They were workarounds, 95 00:05:44,400 --> 00:05:48,479 Speaker 1: and m i T computer scientists found manufacturers were uninterested 96 00:05:48,520 --> 00:05:52,200 Speaker 1: in changing that because there seemed to be very little 97 00:05:52,240 --> 00:05:55,839 Speaker 1: call for it. On July one, nineteen sixty three, m 98 00:05:55,880 --> 00:05:59,960 Speaker 1: i T launched a project originally called Mathematics and Computation 99 00:06:00,040 --> 00:06:04,240 Speaker 1: in or MAC, but later the acronym would be retroactively 100 00:06:04,320 --> 00:06:08,800 Speaker 1: applied to the phrase multiple access computer. Funding for the 101 00:06:08,839 --> 00:06:12,080 Speaker 1: project came courtesy of ar PA, which would later get 102 00:06:12,120 --> 00:06:15,560 Speaker 1: its own acronym update to DARPA. And in case you 103 00:06:15,560 --> 00:06:19,200 Speaker 1: are unfamiliar with that organization, it's a division within the 104 00:06:19,279 --> 00:06:22,800 Speaker 1: United States Department of Defense, and its mission is to 105 00:06:22,920 --> 00:06:26,400 Speaker 1: fund research and development into technologies that contribute to the 106 00:06:26,440 --> 00:06:29,719 Speaker 1: defense of the country in some way. So why was 107 00:06:29,760 --> 00:06:33,480 Speaker 1: the Department of Defense interested in this? It largely had 108 00:06:33,520 --> 00:06:36,719 Speaker 1: to do with Russia and Sputnik. Now, I've talked about 109 00:06:36,720 --> 00:06:40,160 Speaker 1: how spot Nick helped spur on a ton of innovation 110 00:06:40,240 --> 00:06:44,120 Speaker 1: in the United States. It scared the daylights out of 111 00:06:44,240 --> 00:06:47,280 Speaker 1: people in the US. It suggested that Russia was much 112 00:06:47,360 --> 00:06:51,520 Speaker 1: further along technologically speaking than the US had suspected. And 113 00:06:51,560 --> 00:06:54,680 Speaker 1: it lit a fire under the proverbial backside of the 114 00:06:54,760 --> 00:06:57,960 Speaker 1: US military. And so there was a strong incentive to 115 00:06:58,040 --> 00:07:00,960 Speaker 1: advance computer science and technolog g in the US to 116 00:07:01,080 --> 00:07:06,080 Speaker 1: outpace the Russians. Project max primary purpose was to advance 117 00:07:06,120 --> 00:07:09,880 Speaker 1: computer science in several ways, including the development of new 118 00:07:09,960 --> 00:07:14,080 Speaker 1: operating systems and computational theory. It largely grew out of 119 00:07:14,160 --> 00:07:17,560 Speaker 1: a meeting between m i T Professor Robert Fano and 120 00:07:17,640 --> 00:07:21,080 Speaker 1: Joseph C. R. Lick Lighter, who had previously established a 121 00:07:21,120 --> 00:07:24,240 Speaker 1: psychology group in the Electrical Engineering department of m i T. 122 00:07:24,840 --> 00:07:27,840 Speaker 1: Then gone on to join a research firm called Bolt, 123 00:07:27,960 --> 00:07:31,240 Speaker 1: Baroneck and Newman better known as B B N, and 124 00:07:31,280 --> 00:07:35,200 Speaker 1: then was named the first director of ARPA's Information Processing 125 00:07:35,280 --> 00:07:39,520 Speaker 1: Techniques Office or I p t O. Lick Lighter convinced 126 00:07:39,520 --> 00:07:43,240 Speaker 1: Fano to head up Project Mac, which would receive funding 127 00:07:43,400 --> 00:07:46,800 Speaker 1: from the I p t O through ARPA. But standing 128 00:07:46,800 --> 00:07:49,600 Speaker 1: in the way of this goal were the limitations I've 129 00:07:49,600 --> 00:07:52,840 Speaker 1: mentioned already. It's hard to make real progress if you're 130 00:07:52,880 --> 00:07:55,920 Speaker 1: limited to just one person working on one computer at 131 00:07:55,960 --> 00:07:58,680 Speaker 1: any given time, and so M I T sought out 132 00:07:58,680 --> 00:08:02,520 Speaker 1: proposals from companies like General Electric and IBM to develop 133 00:08:02,560 --> 00:08:05,800 Speaker 1: a computer system that could support multiple users through this 134 00:08:06,080 --> 00:08:10,480 Speaker 1: time sharing idea. Now, the basic idea behind time sharing 135 00:08:10,880 --> 00:08:14,080 Speaker 1: is that you have multiple workstations that all connect back 136 00:08:14,080 --> 00:08:17,760 Speaker 1: to the same computer. The workstations are all dummy terminals 137 00:08:17,840 --> 00:08:21,080 Speaker 1: or thin clients. The computer can only work on one 138 00:08:21,160 --> 00:08:23,360 Speaker 1: job at a time, but it can do so at 139 00:08:23,360 --> 00:08:26,480 Speaker 1: a pretty darn fast pace, and so as you run 140 00:08:26,480 --> 00:08:29,040 Speaker 1: a job at your workstation, the computer waits for a 141 00:08:29,080 --> 00:08:32,040 Speaker 1: break and its processing of other jobs, then slots your 142 00:08:32,120 --> 00:08:35,160 Speaker 1: job in that break and runs your job to you. 143 00:08:35,320 --> 00:08:37,439 Speaker 1: It's like you've got the full attention of the computer, 144 00:08:37,559 --> 00:08:40,400 Speaker 1: but in reality, the computer is actually switching back and 145 00:08:40,440 --> 00:08:44,280 Speaker 1: forth between users, finishing each job quickly before moving on 146 00:08:44,320 --> 00:08:46,920 Speaker 1: to the next one, rather than doing all the jobs 147 00:08:46,920 --> 00:08:49,480 Speaker 1: at the same time. The benefit of time sharing is 148 00:08:49,480 --> 00:08:52,320 Speaker 1: that it's as if you've increased the number of computers 149 00:08:52,360 --> 00:08:55,480 Speaker 1: by the number of workstations, and so more people can 150 00:08:55,520 --> 00:08:58,480 Speaker 1: take advantage of the computer than with older systems. You 151 00:08:58,559 --> 00:09:02,520 Speaker 1: reduce downtime, you increase efficiency, and more people can actually 152 00:09:02,520 --> 00:09:07,400 Speaker 1: get stuff done. IBM was initially not interested in working 153 00:09:07,400 --> 00:09:10,000 Speaker 1: with m I T. The company wasn't convinced that a 154 00:09:10,080 --> 00:09:12,520 Speaker 1: multi user computer was going to be that big of 155 00:09:12,559 --> 00:09:15,320 Speaker 1: a deal and that most of their customers would have 156 00:09:15,400 --> 00:09:18,840 Speaker 1: no need for such a computer. So rather than dedicate 157 00:09:18,880 --> 00:09:21,480 Speaker 1: the time and resources needed to develop something that the 158 00:09:21,520 --> 00:09:24,439 Speaker 1: company wasn't convinced would ever be an actual product, it 159 00:09:24,480 --> 00:09:27,080 Speaker 1: would just be a one off, they bowed out and 160 00:09:27,120 --> 00:09:30,040 Speaker 1: so ge became the vendor for the early days of 161 00:09:30,080 --> 00:09:33,720 Speaker 1: Project Mac. But over at IBM, minds were slowly changing. 162 00:09:33,800 --> 00:09:37,120 Speaker 1: The Project Mac contract was a big deal with a 163 00:09:37,120 --> 00:09:40,079 Speaker 1: lot of funding at that time, and then it became 164 00:09:40,120 --> 00:09:42,480 Speaker 1: known that Bell Labs was also looking out for a 165 00:09:42,520 --> 00:09:45,400 Speaker 1: system that would grant access to multiple users to a 166 00:09:45,400 --> 00:09:48,360 Speaker 1: computer at the same time, and this was enough for 167 00:09:48,400 --> 00:09:51,920 Speaker 1: the folks at IBM to say, huh, maybe we were wrong, 168 00:09:52,240 --> 00:09:54,040 Speaker 1: and they changed their minds and they put some work 169 00:09:54,040 --> 00:09:57,840 Speaker 1: into developing such a system. They created a prototype called 170 00:09:58,040 --> 00:10:03,120 Speaker 1: the c P forty mainframe computer. The computer never became 171 00:10:03,120 --> 00:10:06,720 Speaker 1: a product sold by IBM, but was used internally in 172 00:10:06,800 --> 00:10:10,360 Speaker 1: IBM S labs. But the CP forty will be really 173 00:10:10,400 --> 00:10:13,280 Speaker 1: important in our story because it was the starting point 174 00:10:13,360 --> 00:10:15,280 Speaker 1: for a journey that would take us to the first 175 00:10:15,320 --> 00:10:20,360 Speaker 1: commercial mainframe computer system that could support virtualization. The time 176 00:10:20,400 --> 00:10:25,000 Speaker 1: sharing approach involved sharing parts of a computer's processing capabilities, 177 00:10:25,280 --> 00:10:29,280 Speaker 1: such as its system memory or its storage, and sharing 178 00:10:29,320 --> 00:10:32,240 Speaker 1: that with each user. But this was not just useful, 179 00:10:32,280 --> 00:10:35,160 Speaker 1: it was also limiting. If something went wrong for one user, 180 00:10:35,600 --> 00:10:39,360 Speaker 1: it would affect everyone on that computer. Creating more meaningful 181 00:10:39,400 --> 00:10:43,360 Speaker 1: partitions that would isolate each user would be more useful. Now. 182 00:10:43,400 --> 00:10:47,839 Speaker 1: Typically we described this process as a hypervisor, or sometimes 183 00:10:47,880 --> 00:10:51,559 Speaker 1: as a control program. A hypervisor's job is to separate 184 00:10:51,600 --> 00:10:55,079 Speaker 1: the applications and operating system running on a computer from 185 00:10:55,120 --> 00:10:58,440 Speaker 1: the computer's actual hardware. There are a couple of different 186 00:10:58,440 --> 00:11:02,400 Speaker 1: types of hypervisors. Type one hypervisors are also known as 187 00:11:02,520 --> 00:11:06,400 Speaker 1: bare metal hypervisors because they exist in a layer that's 188 00:11:06,480 --> 00:11:09,600 Speaker 1: directly on top of a machine's hardware. Then you have 189 00:11:09,679 --> 00:11:13,880 Speaker 1: type two hypervisors that's a software layer that exists over 190 00:11:13,960 --> 00:11:18,200 Speaker 1: top the existing machines operating system, so there's an extra 191 00:11:18,360 --> 00:11:22,360 Speaker 1: layer of abstraction there. Now, through a hypervisor, a single 192 00:11:22,440 --> 00:11:26,760 Speaker 1: machine can host multiple virtual guest machines. This idea would 193 00:11:26,800 --> 00:11:30,880 Speaker 1: be further explored in the next phase, that of true virtualization, 194 00:11:31,320 --> 00:11:33,160 Speaker 1: which I'll get to in just a moment. But first 195 00:11:33,240 --> 00:11:43,800 Speaker 1: let's take a quick break. Okay, so we just got 196 00:11:43,800 --> 00:11:48,439 Speaker 1: into what you could think of as the prehistoric virtualization era, 197 00:11:48,679 --> 00:11:53,240 Speaker 1: with hypervisor technology just coming into development. IBM was at 198 00:11:53,240 --> 00:11:56,640 Speaker 1: the forefront of this research with the CP forty mainframe 199 00:11:56,720 --> 00:11:59,560 Speaker 1: system in the nineteen sixties. The system ran on a 200 00:11:59,600 --> 00:12:05,000 Speaker 1: special operating system called CP slash c MS, which originally 201 00:12:05,040 --> 00:12:10,240 Speaker 1: stood for Control Program slash Cambridge Monitor System, though later 202 00:12:10,280 --> 00:12:13,760 Speaker 1: CMS would change to mean Conversational Monitor System and I've 203 00:12:13,800 --> 00:12:16,200 Speaker 1: even seen a couple of other variants out there. The 204 00:12:16,240 --> 00:12:20,280 Speaker 1: control program part was what allowed for this early virtualization 205 00:12:20,440 --> 00:12:24,760 Speaker 1: in the CP forty. It effectively created a full virtualization 206 00:12:24,920 --> 00:12:28,200 Speaker 1: of the underlying hardware of the CP forty for each 207 00:12:28,400 --> 00:12:32,560 Speaker 1: virtual machine, so people on dumb terminals terminals that did 208 00:12:32,600 --> 00:12:36,319 Speaker 1: not have their own solely dedicated computer could have a 209 00:12:36,440 --> 00:12:40,280 Speaker 1: virtual computer at their disposal. All the work was actually 210 00:12:40,360 --> 00:12:43,719 Speaker 1: being done on top of the single CP forty prototype, 211 00:12:43,960 --> 00:12:45,800 Speaker 1: but to each user it was as if they had 212 00:12:45,880 --> 00:12:51,239 Speaker 1: access to their own individual computer. The virtualization software partitioned 213 00:12:51,320 --> 00:12:55,120 Speaker 1: computer assets to each user. This wasn't just a matter 214 00:12:55,240 --> 00:12:59,280 Speaker 1: of convenience. It also allowed for rapid innovation. Programmers could 215 00:12:59,320 --> 00:13:03,320 Speaker 1: work on their own virtual machines, creating applications without having 216 00:13:03,320 --> 00:13:07,120 Speaker 1: to worry about a bug affecting everyone else. The partitions 217 00:13:07,160 --> 00:13:10,880 Speaker 1: provided protection, so if you were plugging away on a 218 00:13:10,960 --> 00:13:14,679 Speaker 1: difficult section of code and your coworker fouled something up 219 00:13:14,679 --> 00:13:17,320 Speaker 1: on their virtual machine, you didn't have to worry about 220 00:13:17,400 --> 00:13:20,840 Speaker 1: their mistake bringing you down with them. Each virtual machine 221 00:13:21,080 --> 00:13:25,640 Speaker 1: acted like its own individual physical computer. You can see 222 00:13:25,679 --> 00:13:29,080 Speaker 1: some similarities between this model of computing and what would 223 00:13:29,120 --> 00:13:32,200 Speaker 1: come much later in the era of cloud computing and 224 00:13:32,240 --> 00:13:36,800 Speaker 1: the brief age of netbooks. Technically, netbooks are still around, 225 00:13:37,000 --> 00:13:41,760 Speaker 1: but they are no longer the heyday type device that 226 00:13:41,800 --> 00:13:44,920 Speaker 1: they were for a very short while. The netbook essentially 227 00:13:44,960 --> 00:13:47,360 Speaker 1: had a five year run from two thousand seven to 228 00:13:47,400 --> 00:13:51,520 Speaker 1: two thousand twelve, and it's a category of lightweight laptop 229 00:13:51,559 --> 00:13:55,800 Speaker 1: computers that had modest specifications because the real purpose of 230 00:13:55,800 --> 00:13:58,760 Speaker 1: the computer was to use cloud based services. You didn't 231 00:13:58,800 --> 00:14:01,960 Speaker 1: have to have a b E fee computer because most 232 00:14:01,960 --> 00:14:05,320 Speaker 1: of the processing was taking place somewhere else. The netbooks 233 00:14:05,320 --> 00:14:07,920 Speaker 1: were a type of thin client, kind of like those 234 00:14:08,000 --> 00:14:11,920 Speaker 1: dummy terminals used in time sharing mainframe systems. You didn't 235 00:14:11,960 --> 00:14:14,000 Speaker 1: have to have a lot of horsepower. You just needed 236 00:14:14,040 --> 00:14:18,719 Speaker 1: input devices like a keyboard and output devices like a display, 237 00:14:18,760 --> 00:14:21,520 Speaker 1: and the actual computing was happening on some other machine 238 00:14:21,560 --> 00:14:24,080 Speaker 1: out on the internet. We'll talk about that more a 239 00:14:24,120 --> 00:14:27,920 Speaker 1: bit later in this episode. So while work on and 240 00:14:28,040 --> 00:14:31,640 Speaker 1: with the CP forty system was going, IBM researchers were 241 00:14:31,680 --> 00:14:34,840 Speaker 1: looking into other breakthroughs that would become important for computers 242 00:14:34,840 --> 00:14:39,120 Speaker 1: in general and virtualization in particular. In nineteen sixty five, 243 00:14:39,200 --> 00:14:42,240 Speaker 1: IBM announced it was developing a thirty two bit central 244 00:14:42,280 --> 00:14:46,360 Speaker 1: processing unit that included virtual memory hardware in it. This 245 00:14:46,480 --> 00:14:50,920 Speaker 1: was called the IBM System SLASH three sixty. IBM researchers 246 00:14:51,000 --> 00:14:54,560 Speaker 1: used what they learned developing the CP forty to create 247 00:14:54,640 --> 00:14:58,000 Speaker 1: the CP sixty seven, which was built on this IBM 248 00:14:58,040 --> 00:15:02,560 Speaker 1: system Slash three sixty DASH sixties seven hardware. I love 249 00:15:02,640 --> 00:15:06,200 Speaker 1: these names, by the way, there's so much fun to say. Anyway, 250 00:15:06,360 --> 00:15:09,040 Speaker 1: this would be the first computer to support virtualization that 251 00:15:09,040 --> 00:15:12,880 Speaker 1: would actually be widely available as a commercial product, not 252 00:15:12,960 --> 00:15:16,880 Speaker 1: just a prototype. This was an important component for mainframe users, 253 00:15:17,160 --> 00:15:20,760 Speaker 1: but it wouldn't really transfer to micro or mini computers. 254 00:15:20,960 --> 00:15:23,000 Speaker 1: So this is still in the main frame age where 255 00:15:23,000 --> 00:15:26,480 Speaker 1: you have the big centralized computer, and it's not that 256 00:15:26,560 --> 00:15:29,240 Speaker 1: big of a surprise. You know, a mainframe is a 257 00:15:29,280 --> 00:15:33,960 Speaker 1: centralized machine, but later computers didn't necessarily follow that model. Instead, 258 00:15:34,200 --> 00:15:36,640 Speaker 1: you could have a computer at your own desk. The 259 00:15:36,680 --> 00:15:39,800 Speaker 1: need to partition and separate your machine from everyone else 260 00:15:40,200 --> 00:15:43,200 Speaker 1: wasn't as pressing since you were working on an actual 261 00:15:43,320 --> 00:15:47,800 Speaker 1: separate piece of hardware rather than sharing a centralized computer 262 00:15:47,920 --> 00:15:51,440 Speaker 1: amongst everybody else, and the hardware you were using was 263 00:15:51,480 --> 00:15:54,000 Speaker 1: capable enough to do whatever it was you were doing. 264 00:15:54,400 --> 00:15:57,800 Speaker 1: Majorization reached the point where it was possible to produce 265 00:15:57,840 --> 00:16:01,760 Speaker 1: a relatively small computer, especially compared to the giant mainframes 266 00:16:01,840 --> 00:16:04,480 Speaker 1: of the nineteen fifties and nineteen sixties, and it could 267 00:16:04,520 --> 00:16:07,440 Speaker 1: handle all the tasks that your average user could throw 268 00:16:07,480 --> 00:16:09,760 Speaker 1: at it. So we started to see a shift away 269 00:16:09,880 --> 00:16:13,480 Speaker 1: from this centralized model of the mainframe strategy to a 270 00:16:13,680 --> 00:16:17,000 Speaker 1: decentralized approach in which everyone would work on their own 271 00:16:17,080 --> 00:16:20,800 Speaker 1: separate machine. This would continue and accelerate in the mid 272 00:16:20,840 --> 00:16:24,440 Speaker 1: to late nineteen seventies when the personal computer emerged and 273 00:16:24,480 --> 00:16:27,400 Speaker 1: the general public began to dip their proverbial toe in 274 00:16:27,440 --> 00:16:31,600 Speaker 1: the computational pool or something. Now that's not to say 275 00:16:31,640 --> 00:16:35,880 Speaker 1: that all work on virtualization stopped completely in the nineteen seventies. 276 00:16:36,120 --> 00:16:38,960 Speaker 1: It certainly didn't speed up, and it pretty much remained 277 00:16:39,000 --> 00:16:43,480 Speaker 1: in the domain of mainframe computers, which still had their uses, 278 00:16:43,520 --> 00:16:47,760 Speaker 1: but in niche cases, in fact increasingly niche cases. So 279 00:16:47,840 --> 00:16:50,960 Speaker 1: whether they were legacy systems that companies depended upon to 280 00:16:51,040 --> 00:16:54,600 Speaker 1: keep business going, or they were more powerful machines that 281 00:16:54,640 --> 00:16:57,560 Speaker 1: could be realized in the smaller formats. You know, they 282 00:16:57,560 --> 00:17:00,400 Speaker 1: were these powerful machines that were being used are very 283 00:17:00,440 --> 00:17:04,159 Speaker 1: specific tasks. They still had a place, it was just 284 00:17:04,320 --> 00:17:08,400 Speaker 1: a reduced place, and that was pretty much where virtualization 285 00:17:08,480 --> 00:17:12,439 Speaker 1: was stuck until the mid nineteen eighties. That's when a 286 00:17:12,440 --> 00:17:17,280 Speaker 1: company called Locust Computing Corporation developed special software in collaboration 287 00:17:17,320 --> 00:17:20,000 Speaker 1: with A T and T for a computer called the 288 00:17:20,080 --> 00:17:24,399 Speaker 1: A T and T sixty three hundred plus. The computers 289 00:17:24,440 --> 00:17:28,560 Speaker 1: operating system was Unix s v R two. Now, the 290 00:17:28,600 --> 00:17:31,800 Speaker 1: thing about Unix is. It's an operating system that can 291 00:17:31,800 --> 00:17:36,520 Speaker 1: support Unix programs, but it couldn't run DOSS based programs 292 00:17:36,560 --> 00:17:38,600 Speaker 1: on its own. And for those of you who aren't 293 00:17:38,600 --> 00:17:42,320 Speaker 1: familiar with DOSS, it was the text based operating system 294 00:17:42,400 --> 00:17:45,399 Speaker 1: used by many computers. There were lots of different flavors 295 00:17:45,440 --> 00:17:49,200 Speaker 1: of DOSS um Apple had its own sort of version, 296 00:17:49,280 --> 00:17:52,359 Speaker 1: but the one that everyone really knew was IMMAs DOSS, 297 00:17:52,480 --> 00:17:55,920 Speaker 1: the Microsoft flavor of DOSS that was the most popular 298 00:17:56,040 --> 00:17:58,719 Speaker 1: version of the text based operating system out there for 299 00:17:58,760 --> 00:18:02,399 Speaker 1: IBM and IBM comp udible machines. So there are a 300 00:18:02,400 --> 00:18:06,880 Speaker 1: lot of programs developed for MS DOSS and DAWs in general, 301 00:18:07,240 --> 00:18:10,120 Speaker 1: but you couldn't run them on a Unix based device. 302 00:18:10,520 --> 00:18:14,119 Speaker 1: So Locus developed some software that would handle the interaction 303 00:18:14,480 --> 00:18:18,840 Speaker 1: between DOSS programs designed for the eight eight six instruction 304 00:18:18,920 --> 00:18:24,280 Speaker 1: set that DOSS programs were reliant upon and the underlying 305 00:18:24,400 --> 00:18:27,560 Speaker 1: Unix operating system, so it's kind of like a liaison 306 00:18:27,640 --> 00:18:30,879 Speaker 1: between those. The software have become known as MERGE and 307 00:18:30,920 --> 00:18:33,960 Speaker 1: would be one of the first virtual machine managing or 308 00:18:34,080 --> 00:18:37,800 Speaker 1: VMM products on the market. So now you could have 309 00:18:37,840 --> 00:18:40,560 Speaker 1: a Unix machine and still run DOSS programs on top 310 00:18:40,600 --> 00:18:44,320 Speaker 1: of it. By having this virtual DOSS machine running on 311 00:18:44,400 --> 00:18:47,840 Speaker 1: the Unix hardware. This would mark a new era in 312 00:18:47,880 --> 00:18:51,119 Speaker 1: which companies would make software that would allow computers running 313 00:18:51,160 --> 00:18:54,120 Speaker 1: on one type of operating system in hardware to run 314 00:18:54,160 --> 00:18:57,600 Speaker 1: an instance of a different operating system, and it opened 315 00:18:57,680 --> 00:19:00,879 Speaker 1: up access to other types of programs. Most of us 316 00:19:01,359 --> 00:19:05,040 Speaker 1: don't tend to work on Unix systems. But what about 317 00:19:05,119 --> 00:19:09,040 Speaker 1: max versus PCs. You know that a Mac computer can't 318 00:19:09,160 --> 00:19:12,800 Speaker 1: run a DOSS or later on a Windows program, and 319 00:19:12,920 --> 00:19:17,560 Speaker 1: vice versa Windows computer can't run a Mac program. But 320 00:19:17,640 --> 00:19:21,600 Speaker 1: developers created virtual machine software that would allow a Macintosh 321 00:19:21,600 --> 00:19:25,600 Speaker 1: computer to run a virtual instance of DOSS on a Mac, 322 00:19:25,880 --> 00:19:29,080 Speaker 1: meaning you could access those DOSS programs on a Macintosh 323 00:19:29,240 --> 00:19:32,400 Speaker 1: while running this virtual machine software. Suddenly you could take 324 00:19:32,400 --> 00:19:35,959 Speaker 1: advantage of programs meant for another type of computer on 325 00:19:36,000 --> 00:19:39,439 Speaker 1: your own machine. By the way, it probably comes as 326 00:19:39,520 --> 00:19:41,760 Speaker 1: very little surprised to those of you who are familiar 327 00:19:41,800 --> 00:19:44,840 Speaker 1: with Apple that the company was not a fan of 328 00:19:44,880 --> 00:19:49,240 Speaker 1: anyone running the Mac operating system on a non Apple machine. 329 00:19:49,920 --> 00:19:54,119 Speaker 1: Through virtualization. This was technically possible, but Apple maintained that 330 00:19:54,160 --> 00:19:56,960 Speaker 1: the only legal way to do it was to run 331 00:19:57,080 --> 00:20:00,840 Speaker 1: mac os on a virtual platform on top of another 332 00:20:01,000 --> 00:20:04,440 Speaker 1: Apple branded computer. So why would you want to run 333 00:20:04,520 --> 00:20:07,320 Speaker 1: a virtual version of mac OS on top of a 334 00:20:07,359 --> 00:20:11,520 Speaker 1: computer already running Mac OS. One reason would be to 335 00:20:11,600 --> 00:20:15,399 Speaker 1: test a new program against multiple versions of a single 336 00:20:15,520 --> 00:20:18,640 Speaker 1: operating system. So you might want to run your new 337 00:20:18,720 --> 00:20:22,439 Speaker 1: mac program against the latest version of Mac OS and 338 00:20:22,440 --> 00:20:24,800 Speaker 1: then the previous versions of Mac OS to see if 339 00:20:24,840 --> 00:20:28,000 Speaker 1: it's still compatible, making sure you have backwards compatibility written 340 00:20:28,000 --> 00:20:31,280 Speaker 1: in there. That would be handy to know. For about 341 00:20:31,280 --> 00:20:34,680 Speaker 1: a decade, that was the state of virtualization. Companies made 342 00:20:34,680 --> 00:20:38,159 Speaker 1: programs that would allow users to run one operating system 343 00:20:38,240 --> 00:20:41,399 Speaker 1: on top of a machine running a different operating system. 344 00:20:41,400 --> 00:20:44,119 Speaker 1: It was useful for people who were developing software for 345 00:20:44,160 --> 00:20:47,960 Speaker 1: other platforms, but beyond that, there wasn't much general use 346 00:20:48,040 --> 00:20:50,800 Speaker 1: for it, because, again, everyone was relying on their own 347 00:20:50,800 --> 00:20:53,960 Speaker 1: individual computers anyway, you didn't have to worry about creating 348 00:20:53,960 --> 00:20:57,160 Speaker 1: partitions between users for the most part. There were other 349 00:20:57,240 --> 00:21:00,119 Speaker 1: manifestations of virtualization that would come on the scene a 350 00:21:00,160 --> 00:21:03,359 Speaker 1: little bit later. In the early nineteen nineties, a team 351 00:21:03,400 --> 00:21:06,640 Speaker 1: at Sun Microsystems was hard at work developing a new 352 00:21:06,680 --> 00:21:11,600 Speaker 1: programming language that would eventually take on the name Java. Initially, 353 00:21:12,000 --> 00:21:15,000 Speaker 1: the idea was that this programming language would allow developers 354 00:21:15,040 --> 00:21:19,240 Speaker 1: to create programs running on home appliances like television's. The 355 00:21:19,280 --> 00:21:21,800 Speaker 1: need for a language that developers could use to create 356 00:21:21,840 --> 00:21:25,960 Speaker 1: programs for different platforms was obvious because these appliances would 357 00:21:25,960 --> 00:21:28,760 Speaker 1: be coming from different manufacturers who would be working with 358 00:21:28,880 --> 00:21:32,760 Speaker 1: different microprocessor companies, so there was no guarantee that televisions 359 00:21:32,760 --> 00:21:36,280 Speaker 1: from two different companies would have similar microchips in them. Now, 360 00:21:36,320 --> 00:21:39,400 Speaker 1: this is a non trivial problem. If you are a programmer, 361 00:21:39,640 --> 00:21:42,080 Speaker 1: you have to make some practical decisions that have little 362 00:21:42,119 --> 00:21:44,879 Speaker 1: to do with the actual purpose of your application, and 363 00:21:44,920 --> 00:21:49,360 Speaker 1: one of those decisions is what platform will I develop for. Frequently, 364 00:21:49,400 --> 00:21:52,440 Speaker 1: the answer that many developers gravitate toward is I want 365 00:21:52,480 --> 00:21:55,680 Speaker 1: to develop for the most popular platform out there because 366 00:21:55,680 --> 00:21:59,000 Speaker 1: it represents the largest potential customer base. To put it 367 00:21:59,000 --> 00:22:01,520 Speaker 1: in another way, let's say you're making a video game, 368 00:22:01,840 --> 00:22:04,119 Speaker 1: and let's say there's only two consoles that are on 369 00:22:04,160 --> 00:22:08,119 Speaker 1: the market. One of those consoles has a market share 370 00:22:08,280 --> 00:22:11,000 Speaker 1: and the other has a ten market share, and they're 371 00:22:11,000 --> 00:22:14,000 Speaker 1: both great game consoles, but you're more likely to focus 372 00:22:14,040 --> 00:22:15,760 Speaker 1: on developing the game for the one that has the 373 00:22:16,680 --> 00:22:19,480 Speaker 1: market share because that's where most of the gamers are. 374 00:22:19,920 --> 00:22:22,320 Speaker 1: But one if you could create a programming language that 375 00:22:22,359 --> 00:22:27,440 Speaker 1: could work on different platforms despite the underlying hardware, That 376 00:22:27,520 --> 00:22:31,760 Speaker 1: was the idea behind Java. So programmer James Gosling and 377 00:22:31,880 --> 00:22:34,359 Speaker 1: his team set out to create a programming language that 378 00:22:34,400 --> 00:22:37,280 Speaker 1: could work on top of any device that was running 379 00:22:37,320 --> 00:22:41,200 Speaker 1: a Java virtual machine. While the resulting language wasn't used 380 00:22:41,200 --> 00:22:44,359 Speaker 1: in TVs at that time, it quickly became recognized as 381 00:22:44,359 --> 00:22:46,919 Speaker 1: a valuable tool for web development by the time the 382 00:22:47,040 --> 00:22:51,760 Speaker 1: Java Development Kit debuted in By then, the web was 383 00:22:51,800 --> 00:22:54,680 Speaker 1: really starting to take off, but it was also pretty limited. 384 00:22:54,720 --> 00:22:58,040 Speaker 1: All sorts of computers were acting as servers on the Internet, 385 00:22:58,240 --> 00:23:01,080 Speaker 1: running on different hardware and using for an operating systems, 386 00:23:01,359 --> 00:23:04,800 Speaker 1: and there was a need for more dynamic, interesting, rich 387 00:23:04,880 --> 00:23:08,320 Speaker 1: experiences online. But with everyone running different systems, it was 388 00:23:08,359 --> 00:23:11,520 Speaker 1: impossible to guarantee that a web app would work for everyone. 389 00:23:12,200 --> 00:23:15,880 Speaker 1: Java helped take that pressure off. It was a right, once, 390 00:23:16,080 --> 00:23:20,359 Speaker 1: run anywhere programming language, and so the language was adopted 391 00:23:20,400 --> 00:23:23,919 Speaker 1: widely on the web, with web browsers building Java applets 392 00:23:23,960 --> 00:23:27,920 Speaker 1: to support it within the browser itself. This virtualization made 393 00:23:28,040 --> 00:23:32,040 Speaker 1: rich Internet experiences possible. As it turns out the Internet 394 00:23:32,119 --> 00:23:35,000 Speaker 1: in general and the Web in particular would create the 395 00:23:35,160 --> 00:23:39,600 Speaker 1: perfect environment for the evolution of virtualization. This appeals to 396 00:23:39,680 --> 00:23:43,480 Speaker 1: common sense. After all, the Internet is a network of networks, 397 00:23:43,520 --> 00:23:47,119 Speaker 1: and each network can potentially include millions of computers running 398 00:23:47,119 --> 00:23:51,600 Speaker 1: on different operating systems and hardware. This makes common sense, right, 399 00:23:51,640 --> 00:23:54,119 Speaker 1: after all, being Internet is a network of networks, and 400 00:23:54,160 --> 00:23:57,240 Speaker 1: each network can potentially include millions of computers running on 401 00:23:57,240 --> 00:24:00,440 Speaker 1: different operating systems and hardware. When we come back, I'll 402 00:24:00,480 --> 00:24:03,440 Speaker 1: talk about how virtualization really took off in the late 403 00:24:03,520 --> 00:24:06,760 Speaker 1: nineties and what's been going on up to today. But 404 00:24:06,880 --> 00:24:16,840 Speaker 1: first let's take a quick break. In a way, you 405 00:24:16,920 --> 00:24:21,000 Speaker 1: could say that the Internet made the evolution of virtualization 406 00:24:21,080 --> 00:24:25,760 Speaker 1: not just possible but necessary. Typically, I T departments like 407 00:24:25,880 --> 00:24:29,600 Speaker 1: to dedicate servers to a specific task. They handle that 408 00:24:29,720 --> 00:24:34,080 Speaker 1: one task and nothing else. This dedication helps keep things 409 00:24:34,200 --> 00:24:37,560 Speaker 1: streamlined and reduces the chance that different tasks will start 410 00:24:37,560 --> 00:24:41,480 Speaker 1: to interfere with one another and cost stability issues. But 411 00:24:41,600 --> 00:24:45,120 Speaker 1: as the Internet was growing faster and faster, it became 412 00:24:45,480 --> 00:24:49,280 Speaker 1: clear that this particular strategy was going to be unsustainable. 413 00:24:49,400 --> 00:24:53,119 Speaker 1: It was just getting too big and too complex. Servers 414 00:24:53,280 --> 00:24:57,160 Speaker 1: are expensive and they're not just expensive to purchase, they're 415 00:24:57,160 --> 00:25:01,160 Speaker 1: also expensive to operate and maintain. If you're dedicating a 416 00:25:01,240 --> 00:25:05,240 Speaker 1: single server to every single task and you're adding to 417 00:25:05,320 --> 00:25:08,200 Speaker 1: the number of services you have on offer, your server 418 00:25:08,320 --> 00:25:11,720 Speaker 1: room is going to get really crowded really quickly. Those 419 00:25:11,760 --> 00:25:14,960 Speaker 1: machines take up physical space. Then you have other considerations 420 00:25:14,960 --> 00:25:17,240 Speaker 1: you have to take into account, such as having a 421 00:25:17,280 --> 00:25:21,480 Speaker 1: sufficient cooling system to keep everything operational, because computers don't 422 00:25:21,480 --> 00:25:24,479 Speaker 1: do well when they overheat, and as you add more machines, 423 00:25:24,520 --> 00:25:26,840 Speaker 1: you're generating more and more heat, so you've got to 424 00:25:26,920 --> 00:25:30,480 Speaker 1: cool them down more effectively. Then you have to figure 425 00:25:30,520 --> 00:25:34,720 Speaker 1: out how much electricity these things are gobbling up. It's 426 00:25:35,080 --> 00:25:38,320 Speaker 1: it's getting more expensive as you're adding more servers, and 427 00:25:38,320 --> 00:25:40,960 Speaker 1: and then there's the question of downtime. It's quite possible 428 00:25:41,000 --> 00:25:44,919 Speaker 1: that some servers will be in less demand than others. 429 00:25:45,200 --> 00:25:48,080 Speaker 1: So you might have one server operating at about fifteen 430 00:25:48,160 --> 00:25:51,560 Speaker 1: percent of its overall capacity and it's essentially idling the 431 00:25:51,600 --> 00:25:55,800 Speaker 1: other of the day. That's not an efficient use of resources. 432 00:25:56,040 --> 00:25:58,959 Speaker 1: If you've got fifty servers but all of them are 433 00:25:59,000 --> 00:26:02,080 Speaker 1: working at fifteen percent, you're saying, Wow, I'm I'm really 434 00:26:02,320 --> 00:26:07,360 Speaker 1: inefficient with how I'm using these machines. Virtualization would prove 435 00:26:07,440 --> 00:26:10,600 Speaker 1: to be a solution to this problem, but it wasn't 436 00:26:10,760 --> 00:26:16,359 Speaker 1: an easy solution. One of the big challenges facing developers 437 00:26:16,359 --> 00:26:19,840 Speaker 1: at that time was that the X eight six architecture 438 00:26:20,040 --> 00:26:24,600 Speaker 1: that many modern computers rely upon wasn't designed with virtualization 439 00:26:24,640 --> 00:26:28,199 Speaker 1: in mind, and there were some hurdles to overcome. And 440 00:26:28,240 --> 00:26:31,040 Speaker 1: you may have heard of X eight six and maybe 441 00:26:31,160 --> 00:26:33,720 Speaker 1: you wonder what the heck does that actually mean. It's 442 00:26:33,720 --> 00:26:38,560 Speaker 1: a reference to Intel's eight eighty six microprocessor, which originally 443 00:26:38,600 --> 00:26:43,280 Speaker 1: debuted in ninety eight. The eight eight six architecture is 444 00:26:43,320 --> 00:26:47,639 Speaker 1: the foundation for successive processors such as the two eighty six, 445 00:26:47,920 --> 00:26:50,160 Speaker 1: the e D three eighty six, and the eight four 446 00:26:50,200 --> 00:26:52,480 Speaker 1: eighty six. So if you ever heard someone talking about 447 00:26:52,480 --> 00:26:55,680 Speaker 1: like a three eight six or forty six computer, they 448 00:26:55,680 --> 00:26:58,959 Speaker 1: were actually talking about this particular architecture. It's a computer 449 00:26:59,040 --> 00:27:03,560 Speaker 1: that's based off this microprocessor architecture, which was largely designed 450 00:27:03,600 --> 00:27:06,919 Speaker 1: so that it could be backwards compatible while adding to 451 00:27:07,200 --> 00:27:11,639 Speaker 1: the various features and the processing speed generation to generation. 452 00:27:12,160 --> 00:27:16,600 Speaker 1: More importantly, it became the dominant architecture for computing platforms, 453 00:27:17,080 --> 00:27:22,520 Speaker 1: including Internet servers. But as I said that architecture was 454 00:27:22,640 --> 00:27:26,240 Speaker 1: not created with virtualization in mind, and there were several 455 00:27:26,359 --> 00:27:30,440 Speaker 1: key instructions that, when virtualized, would tend to cause an 456 00:27:30,600 --> 00:27:34,480 Speaker 1: X eight six system to crash. So while there was 457 00:27:34,520 --> 00:27:38,040 Speaker 1: a growing need for virtualization as the Internet was growing, 458 00:27:38,640 --> 00:27:42,960 Speaker 1: there was this challenge of implementing virtualization without actually making 459 00:27:43,000 --> 00:27:47,520 Speaker 1: everything crash all the time. Enter vm Ware. Now I'll 460 00:27:47,560 --> 00:27:50,239 Speaker 1: have to do a full episode on the company a 461 00:27:50,320 --> 00:27:55,760 Speaker 1: vm Ware someday. It's known for its virtualization software. In 462 00:27:55,800 --> 00:27:59,879 Speaker 1: two thousand one, vm Ware would introduce virtualization platforms for 463 00:28:00,000 --> 00:28:03,639 Speaker 1: Internet servers that handled the operations of virtualization in a 464 00:28:03,680 --> 00:28:07,000 Speaker 1: way that wouldn't trigger these system crashes. So now you 465 00:28:07,040 --> 00:28:11,840 Speaker 1: could run virtualization software on X eight six architecture systems 466 00:28:12,200 --> 00:28:16,240 Speaker 1: and not have to worry about them just completely crapping 467 00:28:16,240 --> 00:28:19,480 Speaker 1: out on you at a moment's notice. At first, the 468 00:28:19,480 --> 00:28:22,119 Speaker 1: products were actually slow to catch on It was not 469 00:28:22,240 --> 00:28:25,560 Speaker 1: yet apparent how useful they would be, but that would change, 470 00:28:25,720 --> 00:28:28,920 Speaker 1: and vm Ware's early entry into the space would mean 471 00:28:28,960 --> 00:28:31,720 Speaker 1: that the company would end up holding a dominant portion 472 00:28:32,160 --> 00:28:36,359 Speaker 1: of the virtualization market even as other software companies caught 473 00:28:36,440 --> 00:28:40,400 Speaker 1: onto it. Now, to avoid this episode just becoming a 474 00:28:40,480 --> 00:28:45,160 Speaker 1: list of release dates, for virtualization software. I'm gonna summarize 475 00:28:45,200 --> 00:28:48,360 Speaker 1: this to say that companies like Virtue Tech, A M 476 00:28:48,440 --> 00:28:54,200 Speaker 1: D Connectics, Virtus, Sun, and then later Oracle when it 477 00:28:54,240 --> 00:28:58,600 Speaker 1: would buy Sun Microsystems, also Microsoft itself, all of them 478 00:28:58,640 --> 00:29:03,240 Speaker 1: released various virtual realization solutions over the years. Some were 479 00:29:03,240 --> 00:29:06,240 Speaker 1: built to take advantage of changes in architecture, such as 480 00:29:06,400 --> 00:29:11,120 Speaker 1: sixty four bit instruction sets. But beyond these technical specifications, 481 00:29:11,160 --> 00:29:13,720 Speaker 1: there's not really that much to talk about. So I 482 00:29:13,720 --> 00:29:15,719 Speaker 1: think it's better to go back to a broad picture, 483 00:29:15,760 --> 00:29:19,520 Speaker 1: because otherwise, all I'm telling you is that the virtualization 484 00:29:19,600 --> 00:29:23,680 Speaker 1: software improved so that it could take advantage of improvements 485 00:29:23,920 --> 00:29:29,000 Speaker 1: in microprocessor design. That gets really boring really fast. So 486 00:29:29,440 --> 00:29:33,920 Speaker 1: how did virtualization actually help in the Internet age? Well, 487 00:29:33,920 --> 00:29:37,840 Speaker 1: by using this special software and I T admin could 488 00:29:37,840 --> 00:29:42,520 Speaker 1: take a single existing Internet server and then create multiple 489 00:29:42,640 --> 00:29:46,400 Speaker 1: virtual servers, and then each virtual server would perform as 490 00:29:46,440 --> 00:29:49,120 Speaker 1: if it was its own physical machine, similar to the 491 00:29:49,160 --> 00:29:52,880 Speaker 1: way previous implementations of virtualization would do. But you know, 492 00:29:52,880 --> 00:29:54,960 Speaker 1: in those cases you were talking about running a different 493 00:29:55,000 --> 00:29:57,760 Speaker 1: operating system on top of a machine or something like that. 494 00:29:58,840 --> 00:30:01,320 Speaker 1: But in this case, all of the virtual servers would 495 00:30:01,360 --> 00:30:04,480 Speaker 1: exist on top of a single device, and with careful planning, 496 00:30:04,680 --> 00:30:07,600 Speaker 1: you can build out virtual servers to make each physical 497 00:30:07,640 --> 00:30:12,320 Speaker 1: machine more efficient by run making it run closer to capacity. Right, 498 00:30:12,360 --> 00:30:15,600 Speaker 1: so instead of running at capacity, you might have it 499 00:30:15,720 --> 00:30:18,520 Speaker 1: running at seventy or eighty percent capacity. Now, you never 500 00:30:18,600 --> 00:30:22,000 Speaker 1: really want to run at full capacity because you could 501 00:30:22,000 --> 00:30:24,680 Speaker 1: have response time issues if they're if the demand is 502 00:30:25,000 --> 00:30:29,960 Speaker 1: exceeding the server's ability to serve up data, then you're 503 00:30:29,960 --> 00:30:33,600 Speaker 1: gonna have performance problems. But if you could get it 504 00:30:33,880 --> 00:30:37,560 Speaker 1: closer to capacity, then you have less downtime for your 505 00:30:37,600 --> 00:30:40,239 Speaker 1: machine and you're making better use of your equipment. And 506 00:30:40,280 --> 00:30:44,280 Speaker 1: with the right virtual machine management software, each individual virtual 507 00:30:44,360 --> 00:30:48,240 Speaker 1: server is totally partitioned from the others, which helps you 508 00:30:48,280 --> 00:30:52,640 Speaker 1: maintain security and stability. If one virtual server does go down, 509 00:30:52,720 --> 00:30:55,600 Speaker 1: the other virtual servers on top of that same physical 510 00:30:55,640 --> 00:30:59,520 Speaker 1: machine should be able to continue to operate without being affected. 511 00:30:59,640 --> 00:31:03,720 Speaker 1: So let's say you're a company and you have four 512 00:31:03,760 --> 00:31:07,520 Speaker 1: different apps. This is just a very basic example. So 513 00:31:07,600 --> 00:31:10,160 Speaker 1: you've got a server and you divided it into four 514 00:31:10,280 --> 00:31:13,080 Speaker 1: virtual servers, and then one of your virtual servers for 515 00:31:13,160 --> 00:31:15,880 Speaker 1: one of those apps fails, the other three apps should 516 00:31:15,880 --> 00:31:18,720 Speaker 1: still be able to operate just fine. Meanwhile, you've got 517 00:31:18,720 --> 00:31:22,280 Speaker 1: an I T admin frantically trying to fix the problem 518 00:31:22,320 --> 00:31:24,840 Speaker 1: on the virtual server of the affected app and get 519 00:31:24,880 --> 00:31:28,080 Speaker 1: it back online as fast as possible. But ideally you're 520 00:31:28,120 --> 00:31:30,640 Speaker 1: doing this in a way where your other operations aren't 521 00:31:30,680 --> 00:31:33,400 Speaker 1: being affected at all. So not only could you get 522 00:31:33,440 --> 00:31:36,200 Speaker 1: better use out of your hardware using virtualization, you could 523 00:31:36,200 --> 00:31:39,000 Speaker 1: also reduce the number of physical servers you had in 524 00:31:39,040 --> 00:31:42,600 Speaker 1: your data centers, and this would become increasingly important as 525 00:31:42,600 --> 00:31:45,480 Speaker 1: cloud services came on the scene and grew in popularity. 526 00:31:45,760 --> 00:31:49,600 Speaker 1: A large cloud service, whether it's offering an operational platform, 527 00:31:49,840 --> 00:31:53,400 Speaker 1: or storage space or something else, requires an awful lot 528 00:31:53,440 --> 00:31:56,560 Speaker 1: of hardware, but that requirement would be gargantuan if it 529 00:31:56,600 --> 00:32:00,480 Speaker 1: weren't for virtualization. For example, one of the many important 530 00:32:00,520 --> 00:32:05,680 Speaker 1: concepts in computing is redundancy. That is, making sure the 531 00:32:05,680 --> 00:32:08,440 Speaker 1: service you offer remains available even in the event of 532 00:32:08,480 --> 00:32:10,760 Speaker 1: a failure in the system. And this is true for 533 00:32:10,840 --> 00:32:13,920 Speaker 1: all sorts of services, but it's probably easiest to understand 534 00:32:13,960 --> 00:32:15,680 Speaker 1: if we take something that most of us have had 535 00:32:15,720 --> 00:32:19,000 Speaker 1: experience with. So let's talk about cloud storage. Let's say 536 00:32:19,000 --> 00:32:22,800 Speaker 1: you're using an online data storage service like Google Drive, 537 00:32:22,960 --> 00:32:26,200 Speaker 1: so you've stored some files on Google Drive. You've created 538 00:32:26,280 --> 00:32:30,840 Speaker 1: numerous documents, or you've uploaded files into your personal Google Drive, 539 00:32:30,920 --> 00:32:33,280 Speaker 1: and you expect to be able to access those files 540 00:32:33,880 --> 00:32:36,680 Speaker 1: whenever and wherever you need them, assuming you have some 541 00:32:36,720 --> 00:32:39,360 Speaker 1: sort of Internet connection, and you know that your files 542 00:32:39,400 --> 00:32:42,040 Speaker 1: are not living on your own personal computer or device. 543 00:32:42,360 --> 00:32:45,000 Speaker 1: It's living on the cloud, so you can use whatever 544 00:32:45,040 --> 00:32:48,320 Speaker 1: device you want to connect to those files. So the 545 00:32:48,320 --> 00:32:52,000 Speaker 1: files live somewhere on some server that is owned and 546 00:32:52,040 --> 00:32:55,440 Speaker 1: operated by Google, and that's partly true, but it's more 547 00:32:55,520 --> 00:32:59,560 Speaker 1: accurate to say that those files live on multiple servers 548 00:33:00,000 --> 00:33:03,840 Speaker 1: and and operated by Google, because hardware occasionally fails, and 549 00:33:03,840 --> 00:33:06,120 Speaker 1: if that were to happen to the machine that's holding 550 00:33:06,200 --> 00:33:09,080 Speaker 1: your files, you wouldn't be able to get to your stuff, 551 00:33:09,400 --> 00:33:11,160 Speaker 1: and that would be a problem for you and thus 552 00:33:11,200 --> 00:33:14,200 Speaker 1: a problem for Google. So to avoid that, Google has 553 00:33:14,280 --> 00:33:17,800 Speaker 1: copies of all of your files, and it's spread across 554 00:33:18,120 --> 00:33:22,560 Speaker 1: numerous servers to provide redundancy. If one server should fail, 555 00:33:22,880 --> 00:33:25,440 Speaker 1: Google can switch to a different one to serve up 556 00:33:25,480 --> 00:33:27,760 Speaker 1: your files to you when you request them, and you 557 00:33:27,800 --> 00:33:30,000 Speaker 1: get what you want and you're none the wiser that 558 00:33:30,120 --> 00:33:33,800 Speaker 1: anything is wrong on the back end. Redundancy is important 559 00:33:33,800 --> 00:33:37,600 Speaker 1: for any online service, and virtualization can help reduce the 560 00:33:37,680 --> 00:33:41,880 Speaker 1: physical hardware requirements for redundancy. So now, let's say you're 561 00:33:41,920 --> 00:33:46,120 Speaker 1: the one that's running Google Drive. It's it's under your direction, 562 00:33:46,760 --> 00:33:50,080 Speaker 1: and while you'd be using virtual servers, you would likely 563 00:33:50,080 --> 00:33:53,240 Speaker 1: still want to store the same information from the same 564 00:33:53,280 --> 00:33:57,240 Speaker 1: client on different physical machines. So let's say you've got 565 00:33:57,240 --> 00:34:00,480 Speaker 1: two physical servers. You've got server one and server two, 566 00:34:00,520 --> 00:34:04,160 Speaker 1: and each physical server has four virtual servers on it. 567 00:34:04,360 --> 00:34:07,720 Speaker 1: So Server one has virtual servers A, B, C, and D, 568 00:34:07,960 --> 00:34:11,680 Speaker 1: and server too has virtual servers E, F, G, n H. Now, 569 00:34:11,719 --> 00:34:16,000 Speaker 1: technically you could dedicate virtual servers A and B, both 570 00:34:16,040 --> 00:34:18,719 Speaker 1: of those living on the same physical machine, to act 571 00:34:18,719 --> 00:34:21,120 Speaker 1: as backups for each other. But if something were to 572 00:34:21,160 --> 00:34:23,960 Speaker 1: go wrong in one of the virtual environments, it wouldn't 573 00:34:23,960 --> 00:34:26,760 Speaker 1: affect the other one their partition from each other. However, 574 00:34:26,800 --> 00:34:29,840 Speaker 1: if something were to go wrong to the underlying physical hardware, 575 00:34:30,000 --> 00:34:33,480 Speaker 1: the actual machine that's running everything, you'd be out of 576 00:34:33,560 --> 00:34:37,160 Speaker 1: luck because you'd lose both your copies or you'd at 577 00:34:37,239 --> 00:34:39,520 Speaker 1: least not not be able to access them until you've 578 00:34:39,560 --> 00:34:42,560 Speaker 1: repaired whatever the problem was. So for that reason, you 579 00:34:42,600 --> 00:34:45,759 Speaker 1: want to spread the load around your physical machines, and 580 00:34:45,880 --> 00:34:48,200 Speaker 1: you want to keep everything running at a good efficiency, 581 00:34:48,480 --> 00:34:51,799 Speaker 1: so you want to use virtual servers to reduce downtime. 582 00:34:52,400 --> 00:34:55,040 Speaker 1: And of course virtualization is used for all types of 583 00:34:55,080 --> 00:34:59,759 Speaker 1: cloud services, including app development um. In fact, that's a 584 00:34:59,800 --> 00:35:02,600 Speaker 1: great use of virtualization as it gives developers the chance 585 00:35:02,680 --> 00:35:05,839 Speaker 1: to program in an environment where they are reassured they're 586 00:35:05,840 --> 00:35:08,320 Speaker 1: not gonna mess everything else up if something goes wrong. 587 00:35:08,760 --> 00:35:11,160 Speaker 1: And so there are companies out there that get massive 588 00:35:11,160 --> 00:35:14,480 Speaker 1: amounts of revenue from customers who are essentially renting out 589 00:35:14,520 --> 00:35:17,759 Speaker 1: a virtual server space to develop apps on top of 590 00:35:18,160 --> 00:35:21,520 Speaker 1: before they develop, develop and deploy those apps into the 591 00:35:21,680 --> 00:35:24,560 Speaker 1: into the wild to get them to actual customers. Now, 592 00:35:24,600 --> 00:35:27,719 Speaker 1: I've talked a lot about why virtualization is useful, but 593 00:35:27,800 --> 00:35:31,640 Speaker 1: it also presents challenges. It's not a perfect solution to 594 00:35:31,680 --> 00:35:35,600 Speaker 1: all problems. It also presents opportunities for problems to arise, 595 00:35:36,080 --> 00:35:39,279 Speaker 1: and one of those is in security. If someone is 596 00:35:39,280 --> 00:35:42,920 Speaker 1: able to get access to the underlying hardware, either physically 597 00:35:43,120 --> 00:35:47,800 Speaker 1: or remotely, then they could potentially affect all the virtual 598 00:35:47,920 --> 00:35:50,880 Speaker 1: servers that are running on that physical machine. So instead 599 00:35:50,880 --> 00:35:54,680 Speaker 1: of corrupting one service, a bad actor could have affect 600 00:35:54,719 --> 00:35:58,640 Speaker 1: possibly several services. So security is a big concern in 601 00:35:58,680 --> 00:36:02,840 Speaker 1: the virtualization world and in the information world in general. 602 00:36:03,440 --> 00:36:07,040 Speaker 1: Another challenge is that there's a lack of established standards 603 00:36:07,080 --> 00:36:10,200 Speaker 1: in virtualization, though there's movement in the space to change that, 604 00:36:10,680 --> 00:36:12,960 Speaker 1: and that means that a data center might use several 605 00:36:13,000 --> 00:36:16,120 Speaker 1: different virtualization strategies, which in turn means the I T 606 00:36:16,239 --> 00:36:18,600 Speaker 1: department has to be able to handle all that, and 607 00:36:18,640 --> 00:36:21,839 Speaker 1: this can get pretty tough as organizations and systems grow 608 00:36:21,880 --> 00:36:25,560 Speaker 1: more complicated. There's also the problem that as systems grow, 609 00:36:25,600 --> 00:36:28,239 Speaker 1: things can be forgotten. Just keeping track of all those 610 00:36:28,320 --> 00:36:31,120 Speaker 1: virtual machines and what's running on each of them can 611 00:36:31,160 --> 00:36:34,720 Speaker 1: become challenging in itself, and with a complicated enough system, 612 00:36:34,960 --> 00:36:38,279 Speaker 1: it's possible for virtual servers to go overlooked. And if 613 00:36:38,280 --> 00:36:40,760 Speaker 1: it's overlooked and no one is using it, that brings 614 00:36:40,760 --> 00:36:44,280 Speaker 1: down the operational efficiency of the physical machine that's running 615 00:36:44,280 --> 00:36:47,760 Speaker 1: that server, and it's hard to get around performance issues 616 00:36:47,800 --> 00:36:52,000 Speaker 1: as well. A dedicated physical server that is only running 617 00:36:52,000 --> 00:36:56,000 Speaker 1: one task can more efficiently handle that task than a 618 00:36:56,000 --> 00:36:58,560 Speaker 1: computer that has a virtual layer on top of the 619 00:36:58,600 --> 00:37:01,200 Speaker 1: physical layer. Think of it sort of like getting permission 620 00:37:01,200 --> 00:37:04,520 Speaker 1: from a boss in a smooth operation. You just go 621 00:37:04,600 --> 00:37:07,320 Speaker 1: to your boss and you ask for permission to do something, 622 00:37:07,360 --> 00:37:09,520 Speaker 1: and you get it or you don't get it. But 623 00:37:09,600 --> 00:37:13,240 Speaker 1: in a company that has, say a bloated middle management layer, 624 00:37:13,640 --> 00:37:15,960 Speaker 1: maybe first you have to go through a lower level 625 00:37:16,000 --> 00:37:18,840 Speaker 1: manager who doesn't have that authority, but you still have 626 00:37:18,880 --> 00:37:21,719 Speaker 1: to talk to them before you can get access to 627 00:37:21,760 --> 00:37:24,319 Speaker 1: the boss who actually does have the authority to say 628 00:37:24,440 --> 00:37:28,520 Speaker 1: yes or no to your request. It slows things down. Well, 629 00:37:28,600 --> 00:37:32,799 Speaker 1: virtual platforms can also slow things down a little bit, 630 00:37:33,200 --> 00:37:39,760 Speaker 1: so that's another potential drawback to virtualization. However, overall, virtualization 631 00:37:39,760 --> 00:37:43,560 Speaker 1: has been a huge reason why we've seen such explosive 632 00:37:43,640 --> 00:37:47,800 Speaker 1: growth in online services, and it continues to be important 633 00:37:47,840 --> 00:37:52,680 Speaker 1: for developers who are creating programs for multiple platforms. And 634 00:37:52,760 --> 00:37:56,040 Speaker 1: so I hope this episode has sort of given you 635 00:37:56,080 --> 00:37:59,239 Speaker 1: an idea of what virtualization is all about, where it 636 00:37:59,320 --> 00:38:04,520 Speaker 1: came from, and why it's important. Uh, it's definitely something 637 00:38:04,520 --> 00:38:07,920 Speaker 1: that has enabled us to have a world where we 638 00:38:08,000 --> 00:38:12,120 Speaker 1: have discussions about things like the Internet of Things. Without virtualization, 639 00:38:12,480 --> 00:38:16,200 Speaker 1: we wouldn't have the ability to support all those services 640 00:38:16,640 --> 00:38:18,960 Speaker 1: because you wouldn't have a data center large enough to 641 00:38:19,040 --> 00:38:22,400 Speaker 1: hold all the actual physical servers you would need to 642 00:38:22,480 --> 00:38:24,880 Speaker 1: dedicate to each and every task. It would be a 643 00:38:25,000 --> 00:38:30,640 Speaker 1: terrible waste of space, of energy, of resources, of money. 644 00:38:31,040 --> 00:38:35,880 Speaker 1: So virtualization has really helped create an efficient and cost 645 00:38:35,920 --> 00:38:42,719 Speaker 1: effective approach to deploying numerous services across the Internet. So 646 00:38:42,760 --> 00:38:45,080 Speaker 1: we'll probably see a lot more development in that space, 647 00:38:45,480 --> 00:38:49,560 Speaker 1: will see more competition in it, although the big players 648 00:38:49,640 --> 00:38:52,920 Speaker 1: will probably hold on to a pretty large market share. 649 00:38:53,360 --> 00:38:57,200 Speaker 1: They've got time on their side and their reputations are 650 00:38:57,200 --> 00:39:00,919 Speaker 1: built on that. So I'll probably do more episodes about 651 00:39:01,000 --> 00:39:03,720 Speaker 1: virtualization or the company is involved in it in the future. 652 00:39:04,040 --> 00:39:07,360 Speaker 1: In the meantime, thank you so much for this suggestion. 653 00:39:07,600 --> 00:39:10,799 Speaker 1: I greatly appreciate it. It's the sort of topic that 654 00:39:11,360 --> 00:39:12,960 Speaker 1: I used to cover all the time on tech Stuff, 655 00:39:12,960 --> 00:39:14,839 Speaker 1: but it's been a while since I've covered one like this, 656 00:39:15,440 --> 00:39:18,680 Speaker 1: So Martin, thank you very much. I hope you enjoyed 657 00:39:18,719 --> 00:39:20,960 Speaker 1: this episode, and I hope the rest of you were 658 00:39:21,000 --> 00:39:23,480 Speaker 1: able to learn something from it. If you guys have 659 00:39:23,560 --> 00:39:26,560 Speaker 1: suggestions for future episodes, you can send me an email. 660 00:39:26,640 --> 00:39:30,480 Speaker 1: The address is tech stuff at how stuff works dot com. 661 00:39:30,680 --> 00:39:34,719 Speaker 1: Drop on by our website that's tech stuff podcast dot com. 662 00:39:35,040 --> 00:39:36,960 Speaker 1: There you're gonna find an archive of all of our 663 00:39:36,960 --> 00:39:40,000 Speaker 1: past episodes, as well as links to things like our 664 00:39:40,040 --> 00:39:44,480 Speaker 1: social media presence and our online store, where every purchase 665 00:39:44,520 --> 00:39:46,560 Speaker 1: you make goes to help the show and we greatly 666 00:39:46,560 --> 00:39:50,479 Speaker 1: appreciate it, and I'll talk to you again really soon. 667 00:39:56,360 --> 00:39:58,560 Speaker 1: Text Stuff is a production of I heart Radio's How 668 00:39:58,640 --> 00:40:02,000 Speaker 1: Stuff Works. For more podcasts from I heart Radio, visit 669 00:40:02,040 --> 00:40:05,120 Speaker 1: the I heart Radio app, Apple Podcasts, or wherever you 670 00:40:05,200 --> 00:40:11,080 Speaker 1: listen to your favorite shows. H