diff --git a/en_US.ISO8859-1/captions/2009/dcbsdcon/mckusick-historyofbsd.sbv b/en_US.ISO8859-1/captions/2009/dcbsdcon/mckusick-historyofbsd.sbv index 8b93823c28..9acac33b2c 100644 --- a/en_US.ISO8859-1/captions/2009/dcbsdcon/mckusick-historyofbsd.sbv +++ b/en_US.ISO8859-1/captions/2009/dcbsdcon/mckusick-historyofbsd.sbv @@ -1,3908 +1,3912 @@ -0:00:00.570,0:00:03.510 -Anyways it is my great honour and privilege - -0:00:03.510,0:00:10.510 -to introduce Kirk McKusick uh! Which is -give a talk our history of BSD - -0:00:13.570,0:00:17.170 -So this is actually a three-hour lecture - -0:00:17.170,0:00:19.949 -I but I don't have three hours so there is - -0:00:19.949,0:00:23.659 -uh is this where I allow audience participation - -0:00:23.659,0:00:27.099 -The lecture is really sort of three -main parts - -0:00:27.099,0:00:30.460 -and what I’ll do is - -0:00:30.460,0:00:34.210 -describe the three main parts. Then everyone -will get to vote on which part they find the - -0:00:34.210,0:00:35.490 -most interesting - -0:00:35.490,0:00:36.510 -Then what I.. I won’t.. - -0:00:36.510,0:00:41.309 -I used to just do just that part and I’ve got a -lot of negative feedback about that's all - -0:00:41.309,0:00:43.819 -So I’ll do those two parts don't get elected in - -0:00:43.819,0:00:47.210 -I'll just do quickly and then I'll concentrate -on the the one - -0:00:47.210,0:00:48.010 -piece that - -0:00:48.010,0:00:49.720 -seems to be the most popular - -0:00:49.720,0:00:51.360 -so the history of BSD - -0:00:51.360,0:00:55.750 -This is BSD at Berkeley is supposed -to one to shout into that - -0:00:55.750,0:00:57.050 -open source world - -0:00:57.050,0:01:01.810 -So the first period of time is what I call -the Bill Joy era - -0:01:01.810,0:01:06.360 -And this is where Bill Joy is starting up BSD - and it's really getting a rolling and - -0:01:06.360,0:01:07.180 -so it ends when he - -0:01:07.180,0:01:08.370 -departs -0:01:08.370,0:01:09.610 -and -0:01:09.610,0:01:13.080 -Sponsers uh.. starts up this company -called Sun Microsystems which you may have - -0:01:13.080,0:01:14.680 -heard of - -0:01:14.680,0:01:19.250 -Uh.. Then the second part is one of the heyday -of BSD. So this is the period of time - -0:01:19.250,0:01:20.930 -where everybody is - -0:01:20.930,0:01:24.290 -running is forty two and for three and so on - -0:01:24.290,0:01:24.960 -and - -0:01:24.960,0:01:28.830 -going accurate time we were being funded -by DARPA which - -0:01:28.830,0:01:31.020 -deploy a microphone somewhere in this room - -0:01:31.020,0:01:32.950 -Uh at any rate - -0:01:32.950,0:01:35.160 -there was some very interesting - -0:01:35.160,0:01:36.889 -Uh.. battles that went on - -0:01:36.889,0:01:38.630 -Uh.. about - -0:01:38.630,0:01:41.110 -exactly how to see or to be implemented - -0:01:41.110,0:01:46.180 -and a lot of this at that history all -that all percolates out - -0:01:46.180,0:01:48.000 -and so that's sort of the middle period and - -0:01:48.000,0:01:54.000 -and then the end period is where we have -gotten religion and it decided that - -0:01:54.000,0:01:58.130 -you know maybe BSD isn’t going be at -Berkeley forever and if we want there to be - -0:01:58.130,0:01:58.960 -any - -0:01:58.960,0:02:00.430 -possibility with the continue - -0:02:00.430,0:02:04.530 -Uh.. we better figure out how to get it outside -the university to people that - -0:02:04.530,0:02:08.489 -other than to the people that are licensed -by AT&T Bell Laboratories. - -0:02:08.489,0:02:09.970 -And so it's the whole story out - -0:02:09.970,0:02:13.859 -how we open-sourced it and fought a one lawsuit -about that and - -0:02:13.859,0:02:15.189 -so on and so forth. - -0:02:15.189,0:02:19.049 -So here is the three main parts.. The Bill Joy .. that the middle -PCP - -0:02:19.049,0:02:20.519 -building years - -0:02:20.519,0:02:20.940 -and - -0:02:20.940,0:02:24.099 -the lawsuit years at the end. - -0:02:24.099,0:02:28.879 -So how many people are most interested in hearing -the Bill joy years - -0:02:28.879,0:02:33.999 -one two three four five six seven eight nine -ten eleven twelve thirteen - -0:02:33.999,0:02:35.199 -fourteen fifteen - -0:02:35.199,0:02:39.559 -Sixteen. Ok.. how many people are interested -in hearing through the middle era - -0:02:39.559,0:02:44.579 -one two three four five six seven eight nine -ten eleven twelve thirteen fourteen fifteen - -0:02:44.579,0:02:45.320 -Sixteen.. All right.. - -0:02:45.320,0:02:46.959 -Seventeen eighteen ninety twenty twenty one - -0:02:46.959,0:02:49.959 -twenty five OK and how many people want to hear -the open - -0:02:49.959,0:02:51.079 -source - -0:02:51.079,0:02:53.159 -Lawsuit’s et cetera - -0:02:53.159,0:02:57.120 -Laugh.... Okkk - -0:02:57.120,0:02:58.969 -Do you see this is why I ask - -0:02:58.969,0:03:01.139 -This is usual it's interesting 'cause I get - -0:03:01.139,0:03:03.499 -different different groups votes for different -things - -0:03:03.499,0:03:06.799 -When I was in Japan they all want to hear -about the lawsuit.. you know.. that’s all they - -0:03:06.799,0:03:09.229 -have those in Japan. - -0:03:09.229,0:03:11.669 -Yeah that story is quite well known here - -0:03:11.669,0:03:14.639 -Infact the so interesting tidbit is that - -0:03:14.639,0:03:16.459 -uh threw up - -0:03:16.459,0:03:20.289 -Freedom of Information Act California Freedom -of Information Act - -0:03:20.289,0:03:23.489 -uh we were able to get the uh - -0:03:23.489,0:03:27.819 -decision on that lawsuit unsealed so that -the actual text could get out which was - -0:03:27.819,0:03:30.319 -sort of interesting reading. - -0:03:30.319,0:03:34.349 -Okay, for those of you who are interested in -a section that I'm not doing - -0:03:34.349,0:03:38.050 -I advice to buy them to make a shameless plug for -my DVD. - -0:03:38.050,0:03:41.709 -This is the entire three-and-a-half hour version -of this lecture - -0:03:41.709,0:03:45.949 -I wish I could conveniently have a box up your surf -if it's worth twenty dollars to you could - -0:03:45.949,0:03:52.219 -got one of these and walk away with it. - -0:03:52.219,0:03:57.119 -Ok. So uh unlike most of my talks and I don’t actually have a -laptop with slides on it and I just have these - -0:03:57.119,0:03:59.529 -handwritten notes - -0:03:59.529,0:04:01.680 -and the top line of my handwritten note now it says - -0:04:01.680,0:04:06.190 -the first four pages of this were written -on the Indian Pacific train on way to Greater Perth - -0:04:06.190,0:04:12.629 -in January 1986 because I had -to give a lecture on the day I arrived. - -0:04:12.629,0:04:14.219 -So I have been uh told - -0:04:14.219,0:04:18.100 - that this was what my talk was going -to be and I was unprepared so - -0:04:18.100,0:04:23.259 -it's what a bouncy up and down the handwriting -but it was the early history - -0:04:23.259,0:04:24.840 -so anyway - -0:04:24.840,0:04:25.880 -we're just gonna zip - -0:04:25.880,0:04:27.029 -quickly through - -0:04:27.029,0:04:29.750 -what BSD started at Berkeley - -0:04:29.750,0:04:31.150 -Uh by Bill Joy - -0:04:31.150,0:04:34.120 -uh Bill Joy was a graduate student I -happen to - -0:04:34.120,0:04:38.050 -share the same adviser with him, we were both -working on programming languages. - -0:04:38.050,0:04:41.610 -Uh you might find that hard to believe considering -that he did the seashell but - -0:04:41.610,0:04:44.539 -Uh.. laugh -0:04:44.539,0:04:48.000 -at any rate up that's what we're doing and - -0:04:48.000,0:04:50.740 -So I shared an office with him and along with - -0:04:50.740,0:04:53.720 -three other graduate students uh - -0:04:53.720,0:04:56.120 -and - -0:04:56.120,0:05:00.060 -So uh I sort of was sitting there watching a lot of -this unfolding and in fact Bill was very good - -0:05:00.060,0:05:03.080 -at getting other people enthusiastic about -doing work. - -0:05:03.080,0:05:06.849 -There was his typical comment was.. “how hard -can it be, you could just knock this off in - -0:05:06.849,0:05:08.869 -a couple hours” - -0:05:08.869,0:05:12.709 -and usually you could knock off one thing -but of course that with can you sucked - -0:05:12.709,0:05:16.060 -in and you know you end up writing the entire pascal -interpreter of - -0:05:16.060,0:05:18.039 -the back and or something - -0:05:18.039,0:05:20.249 -At any rate - -0:05:20.249,0:05:24.749 -Bill started doing initially just utilities -so was the seashell - -0:05:24.749,0:05:27.439 -uh that ex editor later - -0:05:27.439,0:05:29.750 -it also became the vi editor - -0:05:29.750,0:05:31.490 -the pascal system - -0:05:31.490,0:05:37.080 -and say start packaging these things out and -sending out tapes to people and - -0:05:37.080,0:05:38.050 -then when - -0:05:38.050,0:05:39.930 -Ken Thompson who would - -0:05:39.930,0:05:42.099 -in an Alumnus of Berkeley - -0:05:42.099,0:05:45.610 -on without for one year's sabbatical and brought -UNIX with him - -0:05:45.610,0:05:49.909 -when he left Bill sort of took over running -the system what we would call assistant administrator - -0:05:49.909,0:05:51.729 -today - -0:05:51.729,0:05:55.660 -Uh at any rate this got him interested in this the system -There were patches that were coming back - -0:05:55.660,0:05:58.550 -from AT&T he was putting those in and he was then - -0:05:58.550,0:06:01.590 -making some other sending them back to AT&T -and he - -0:06:01.590,0:06:01.930 -and - -0:06:01.930,0:06:03.729 - so - -0:06:03.729,0:06:07.770 -over time there were bigger and bigger bits of -the system and finally got tired of trying - -0:06:07.770,0:06:08.370 -to - -0:06:08.370,0:06:10.909 -track what other people's UNIX is look -like - -0:06:10.909,0:06:11.729 -and so - -0:06:11.729,0:06:16.569 -uh with the advance of 3 BSD the -third distribution - -0:06:16.569,0:06:18.560 -He just put together an entire package - -0:06:18.560,0:06:22.310 -uh and this was actually to the VAX rather -than the PDP-11 which is what we've started - -0:06:22.310,0:06:23.080 -on - -0:06:23.080,0:06:25.069 -all the two dot - -0:06:25.069,0:06:27.310 -versions of the of BSD - -0:06:27.310,0:06:30.889 -nicely worked on by the other people not by -the Bill especially not the stuff where - -0:06:30.889,0:06:33.050 -the kernel begins to become involved - -0:06:33.050,0:06:35.300 -2.9, 10, 11 et cetera - -0:06:35.300,0:06:37.569 -uh was actually done by - -0:06:37.569,0:06:41.090 -other people many years uh later so 2.11 - -0:06:41.090,0:06:43.279 -does not preceed 3.0 - -0:06:43.279,0:06:48.550 -Uh 2.11 is you know contemporary -with 4.4 - -0:06:48.550,0:06:51.100 -Uh at any rate uh - -0:06:51.100,0:06:52.800 -once we got the - -0:06:52.800,0:06:54.790 -uh the BSD - -0:06:54.790,0:06:57.360 -distribution out into the world - -0:06:57.360,0:07:00.870 -Uh it started getting used by a lot of people -because it - -0:07:00.870,0:07:01.589 -really - -0:07:01.589,0:07:05.000 -was a big step forward over what AT&T were -shipping - -0:07:05.000,0:07:06.660 -in particular - -0:07:06.660,0:07:09.529 -uh as we start getting things like - -0:07:09.529,0:07:11.450 -the TCP/IP networking - -0:07:11.450,0:07:15.770 -Uh So you had a choice you can run a AT& T -version which had UUCP as networking - -0:07:15.770,0:07:19.149 -or you could run BSD that had sockets et - cetera - -0:07:19.149,0:07:20.610 -you could run - -0:07:20.610,0:07:24.090 -AT&T's version which had a file system that -could utilize 3 to 5 percent of the bandwidth - -0:07:24.090,0:07:24.979 -of the disk - -0:07:24.979,0:07:28.810 -or you could run BSD which could utilize 50 percent -of the bandwidth of the disk - -0:07:28.810,0:07:30.519 -et cetera. - -0:07:30.519,0:07:34.939 -So many people would buy the AT&T license - and immediately drop Berkeley to add UNIX - -0:07:34.939,0:07:37.180 -on to it. - -0:07:37.180,0:07:41.879 -Uh consequently it was getting wide distribution -atleast in the university environments - -0:07:41.879,0:07:44.139 -Uh - -0:07:44.139,0:07:46.979 -And uh starting this way he got into the commercial -environments - -0:07:46.979,0:07:51.249 -The commercial environments were not large because -commercial environments just weren’t using UNIX - -0:07:51.249,0:07:52.679 -at that time - -0:07:52.679,0:07:54.679 -for the most part - -0:07:54.679,0:07:58.090 -Uh at any rate - -0:07:58.090,0:07:59.290 -Bill got it - -0:07:59.290,0:08:00.349 -Uh well - -0:08:00.349,0:08:04.299 -with 3 BSD coming out uh - -0:08:04.299,0:08:06.340 -The DARPA which is - -0:08:06.340,0:08:07.540 -essentially - -0:08:07.540,0:08:10.160 -put out research contracts for - -0:08:10.160,0:08:12.629 -all the different branches of the military - -0:08:12.629,0:08:13.780 -Uh was - -0:08:13.780,0:08:15.960 -had a huge number of contracts - -0:08:15.960,0:08:19.850 -uh with lots of different people being stuff -related computers all have different computers - -0:08:19.850,0:08:22.939 -and operating systems and maybe using some different -languages - -0:08:22.939,0:08:24.969 -and so if one group would do something - -0:08:24.969,0:08:27.309 -they just couldn't really pass that - -0:08:27.309,0:08:30.739 -over take some other group that might want -to utilize it because this was written in - -0:08:30.739,0:08:33.390 -FORTRAN and that was written in Pearl 1 - -0:08:33.390,0:08:35.830 -You know this was running on - -0:08:35.830,0:08:40.830 -you know some deck machine that was running on some -IBM's hardware et cetera. - -0:08:40.830,0:08:47.220 -and so DARPA decided that they -really wanted to consolidate - -0:08:47.220,0:08:50.280 -on hardware and operating system - -0:08:50.280,0:08:55.000 -and then how people work there and so there's a -better chance if they would be able to co-operate. - -0:08:55.000,0:08:57.640 -So they put out a a sort of - -0:08:57.640,0:08:59.829 -call sends a request for - -0:08:59.829,0:09:02.430 -proposals or whatever they called in those -days - -0:09:02.430,0:09:04.290 -and - -0:09:04.290,0:09:05.520 -essentially there were two - -0:09:05.520,0:09:08.500 -uh main contending things that came in - -0:09:08.500,0:09:10.029 -one was the VAX - -0:09:10.029,0:09:11.320 -running VMX - -0:09:11.320,0:09:14.300 -and the other one was the VAX running - -0:09:14.300,0:09:16.800 -Berkeley UNIX - -0:09:16.800,0:09:18.150 -and of course - -0:09:18.150,0:09:21.650 -the uh the people that were promoting the -VAX running VMS - -0:09:21.650,0:09:27.220 -were arguing like uh you know this is a real -vendor supported operating system and - -0:09:27.220,0:09:32.059 -you know that this not just some flaky students -at Berkeley that are doing it - -0:09:32.059,0:09:34.530 -then you know therefore there's sort of the operating -system - -0:09:34.530,0:09:39.500 -And that really put the final nail -on the coffin - -0:09:39.500,0:09:43.410 -Uh this time they encased and came up with a set of -benchmarks - -0:09:43.410,0:09:47.370 -Uh what we would call micro benchmarks -today so how fast can you do get a PID - -0:09:47.370,0:09:49.970 -and how fast you could pipe thing - -0:09:49.970,0:09:54.180 -When you pack it back and forth to see -up that certain context which is so on. - -0:09:54.180,0:09:55.410 -and - -0:09:55.410,0:09:56.710 -uh - -0:09:56.710,0:10:00.910 -showed that we must have did these things much faster -than BSD did. - -0:10:00.910,0:10:01.760 -and this of course - -0:10:01.760,0:10:03.680 -made Bill go ballistic - -0:10:03.680,0:10:04.360 -and - -0:10:04.360,0:10:07.780 -Uh besides saying that they were as stupid as benchmarks - he'd ever since have zipped that's the way - -0:10:07.780,0:10:11.070 -they're gonna decide then we'll just go -make this thing run fast - -0:10:11.070,0:10:14.920 -and it was sort of an interesting story about -other half and what - -0:10:14.920,0:10:19.980 -he got uh the BSD to run those benchmarks as fast -as the VMS - -0:10:19.980,0:10:21.450 -and - -0:10:21.450,0:10:22.170 -so - -0:10:22.170,0:10:24.900 -the upshot of it was that DARPA - -0:10:24.900,0:10:28.740 -was still sort of sitting on the fence -and Bill’s comment was well VMS will stock - -0:10:28.740,0:10:30.380 -with VMX forever - -0:10:30.380,0:10:34.490 -and you know may be some other computer might -be interesting down the road - -0:10:34.490,0:10:40.700 -and BSD is set up so that it's much more portable -uh you know it's tie. UNIX, in general is - -0:10:40.700,0:10:44.750 -the portable across different architectures we've -already proved it by running it for any cost too - -0:10:44.750,0:10:45.910 -so therefore - -0:10:45.910,0:10:48.010 -it's proved point - -0:10:48.010,0:10:49.040 -so - -0:10:49.040,0:10:51.850 -at any rate DARPA agreed to that - -0:10:51.850,0:10:54.780 -and they put in some initial money to Berkeley - -0:10:54.780,0:10:57.230 -and the initial things that Berkley was -really just - -0:10:57.230,0:11:00.720 -uh to come up with - -0:11:00.720,0:11:02.500 -Uh well we've put out 3 BSD - -0:11:02.500,0:11:05.950 -which had a lot of functionality but the -performance wasn't so great - -0:11:05.950,0:11:09.330 -and so the that first point was to get -4 BSD out - -0:11:09.330,0:11:10.790 -which was going to happen - -0:11:10.790,0:11:12.870 -sort of that - -0:11:12.870,0:11:14.960 -that additional functionality they really felt -they needed - -0:11:14.960,0:11:16.459 -uh which would just is of the - -0:11:16.459,0:11:17.930 -really small tweeks - -0:11:17.930,0:11:22.510 -Uh things like the ability to automatically -reboot after crash - -0:11:22.510,0:11:23.880 -Uh Job control - -0:11:23.880,0:11:29.540 -uh PRAM’s list which was created by a bunch -of their uh folks, deliver mail, smoke in air - -0:11:29.540,0:11:32.810 - that was the uh the predecessor to -send mail - -0:11:32.810,0:11:36.820 -except without a configuration file you just -complied and check the way he needs things - -0:11:36.820,0:11:37.700 -that were - -0:11:37.700,0:11:39.720 -uh at any rate - -0:11:39.720,0:11:41.260 -Uh that came out - -0:11:41.260,0:11:42.800 -and that 4.1 - -0:11:42.800,0:11:44.550 -so it nail that down cleaned it up - -0:11:44.550,0:11:46.590 -got the performance decent - -0:11:46.590,0:11:49.680 -and that fulfilled the first DARPA contract. - -0:11:49.680,0:11:52.450 -DARPA had put in something like - -0:11:52.450,0:11:56.390 -you know three-quarters of a million dollars or something -and boomed topped this huge pay back from it - -0:11:56.390,0:11:56.960 -and - -0:11:56.960,0:11:58.380 -people seem to be happy with it - -0:11:58.380,0:12:02.880 -so they decided that maybe that the funky graduate students -at Berkeley could do stuff - -0:12:02.880,0:12:05.640 -and so then they put in that of - -0:12:05.640,0:12:07.310 -considerably larger - -0:12:07.310,0:12:10.710 -contract it was I don't know what three or -five million dollars - -0:12:10.710,0:12:12.260 -on this was a longer term - -0:12:12.260,0:12:13.520 -he knows he would’ve at - -0:12:13.520,0:12:15.870 - those times he would get - -0:12:15.870,0:12:17.839 -for example a three-year contract - -0:12:17.839,0:12:20.320 -of which is sort of unheard of in lot of a - -0:12:20.320,0:12:22.440 -research stuff today. - -0:12:22.440,0:12:25.630 -So you could really sort of spent some time -figuring out what you can do and do it - -0:12:25.630,0:12:28.789 -for eighteen months to two years before you had -to start working about - -0:12:28.789,0:12:31.030 -the new assignment et cetera. - -0:12:31.030,0:12:33.180 -Uh in any way - -0:12:33.180,0:12:34.930 -the grand goals for this - -0:12:34.930,0:12:37.300 -Big hunt that DARPA gave - -0:12:37.300,0:12:38.800 -was - -0:12:38.800,0:12:41.470 -Uh there were four pieces. One was - -0:12:41.470,0:12:42.779 -to get a - -0:12:42.779,0:12:43.880 -real networking end - -0:12:43.880,0:12:46.220 -uh at that time - -0:12:46.220,0:12:47.980 -Uh there was just NCP - -0:12:47.980,0:12:49.680 -Uh which was that - -0:12:49.680,0:12:54.240 -Network Control Protocol predecessor to TCP/IP - -0:12:54.240,0:12:57.100 -Uh a good file system in their - -0:12:57.100,0:13:01.490 -Uh restart able signal so you could actually -use them to drive work as opposed to just - -0:13:01.490,0:13:03.440 -terminating programs - -0:13:03.440,0:13:05.600 -and a new virtual memory system - -0:13:05.600,0:13:07.390 -Uh that wasn't - -0:13:07.390,0:13:09.810 -well essentially that allowed shared memory - -0:13:09.810,0:13:11.530 -uh that the one - -0:13:11.530,0:13:13.640 -the predecessor - -0:13:13.640,0:13:15.880 -that we were running BSD at that -time - -0:13:15.880,0:13:19.810 -shared the text space that would be only the part -of your program but all the rest - -0:13:19.810,0:13:21.580 -could not shared - -0:13:21.580,0:13:23.810 -So there’re the four deliverables. - -0:13:23.810,0:13:25.980 -now for the kind of networking - -0:13:25.980,0:13:28.000 -the students really trust us. - -0:13:28.000,0:13:30.879 -So they decided that what they were going -to do - -0:13:30.879,0:13:33.720 -was divide into two parts. - -0:13:33.720,0:13:35.300 -So they were going to get - -0:13:35.300,0:13:37.630 - Bolt, Beranek and Newman BBN - -0:13:37.630,0:13:42.360 -we are going to actually write the TCP/IP protocols -stuff - -0:13:42.360,0:13:44.709 -and What Berkley was supposed to do - -0:13:44.709,0:13:46.589 -was designed the - -0:13:46.589,0:13:47.550 -programming interface - -0:13:47.550,0:13:49.040 -uh so - -0:13:49.040,0:13:53.130 -the socket connect except so on - -0:13:53.130,0:13:55.639 -and then VB9 was to deliver - -0:13:55.639,0:14:00.159 -the thing plug-in underneath that interface -and Berkley was to integrated into - -0:14:00.159,0:14:02.150 -BSD and uh - -0:14:02.150,0:14:04.570 -they would ship it. - -0:14:04.570,0:14:05.239 -and - -0:14:05.239,0:14:08.090 -Uh so - -0:14:08.090,0:14:11.240 -this all started on and VB9 gets to work - -0:14:11.240,0:14:13.090 -and - -0:14:13.090,0:14:15.750 -Joy gets to work on the interface and - -0:14:15.750,0:14:18.620 -uh so - -0:14:18.620,0:14:22.610 -eventually what happens is that Bill has sort -of the framework of this stuff. And Bill being - -0:14:22.610,0:14:23.960 -Bill uh - -0:14:23.960,0:14:26.580 -he he work rather quickly - -0:14:26.580,0:14:29.880 -Uh someone wants to ask you to compare myself -to build Joy and I said look - -0:14:29.880,0:14:33.980 -there's really nothing that he's done that -I couldn't do but the problem is - -0:14:33.980,0:14:36.810 -what he gets done in a year would take me -a decade - -0:14:36.810,0:14:39.430 -because he was the master of figuring out. - -0:14:39.430,0:14:40.730 -I'm here - -0:14:40.730,0:14:42.039 -that's where I want to get to - -0:14:42.039,0:14:44.740 -what is absolutely shortest half from here -to there - -0:14:44.740,0:14:45.810 -and he would do it - -0:14:45.810,0:14:47.339 -and you end up with code - -0:14:47.339,0:14:48.260 -that worked but - -0:14:48.260,0:14:51.699 -that was not maintainable, expendable, changeable. - -0:14:51.699,0:14:56.130 -Anybody looked at the old version of the VI -understand what I’m talking about. - -0:14:56.130,0:14:56.860 -so - -0:14:56.860,0:14:58.430 -So some of the rest of us you know - -0:14:58.430,0:14:59.709 -like to have stuff that like - -0:14:59.709,0:15:02.910 -you could go back and do something with later -but that takes longer - -0:15:02.910,0:15:03.689 -In any way - -0:15:03.689,0:15:06.300 -Bill figured out this socket interface the first - -0:15:06.300,0:15:07.930 -draft away it anyway - -0:15:07.930,0:15:12.140 -and he's got it and now he needs the newer call protocols -to put underneath it - -0:15:12.140,0:15:15.480 -so he goes to to - -0:15:15.480,0:15:16.399 -Uh Rob Gurvitz who was - -0:15:16.399,0:15:18.259 -leading the program of - -0:15:18.259,0:15:20.429 -development of TCP/IP at PBN - -0:15:20.429,0:15:23.660 -and says hey I got a socket interface and I need something to put -in here - -0:15:23.660,0:15:28.140 -and Rob says well we're not really done yet -but we have we have a slight prototype code - -0:15:28.140,0:15:29.990 -and you know you could put that in it - -0:15:29.990,0:15:31.319 -see how that works in - -0:15:31.319,0:15:33.100 -you know then we’ll iterate hopefully the race - -0:15:33.100,0:15:35.810 -up so that we can work in parallel of you. - -0:15:35.810,0:15:38.410 -So Bill gets the code and - -0:15:38.410,0:15:40.420 -he puts it in - -0:15:40.420,0:15:40.859 -and - -0:15:40.859,0:15:42.979 -cranks it up and gets a kind of working - -0:15:42.979,0:15:43.820 -and - -0:15:43.820,0:15:45.580 -then decides to run - -0:15:45.580,0:15:49.110 -Some full test between machines to see -how well it works. - -0:15:49.110,0:15:55.150 -And we’re running at the at that time our development -machines development inputs were - -0:15:55.150,0:15:55.820 -VAC 750’s -0:15:55.820,0:15:59.640 -so that was the big honk at VAC 780 -that ran entire NIP - -0:15:59.640,0:16:04.600 -and then there were these much smaller things -that were merely the size of a large - -0:16:04.600,0:16:05.769 -uh dishwasher - -0:16:05.769,0:16:11.839 -uh its bigger than a dishwasher more like -washing machine yes -its over range at any rate and used about - -0:16:11.839,0:16:13.660 -as much power as the same. - -0:16:13.660,0:16:16.260 -Uh with all the burners turned ON assuming its electric - -0:16:16.260,0:16:23.080 -uh anyway and the VAC 750 only -ran at 0.7 NIPs - -0:16:23.080,0:16:25.480 -Uh and so - -0:16:25.480,0:16:28.920 -Bill needs to be overrun sometimes back and forth -between these machines - -0:16:28.920,0:16:31.080 -and of course we don't have - -0:16:31.080,0:16:34.900 -anything like FTP or TELNET -anything that, which is not written yet - -0:16:34.900,0:16:36.890 -and so he just - -0:16:36.890,0:16:38.369 -being Bill as well - -0:16:38.369,0:16:39.699 -hack up something - -0:16:39.699,0:16:43.309 -uh which was all logged in RCP et cetera. - -0:16:43.309,0:16:47.820 -which was really just the design so that he -could test running between these two machines - -0:16:47.820,0:16:48.710 -Uh - -0:16:48.710,0:16:52.130 -This is the legacy that we end up with and -why the protocol number or anything like - -0:16:52.130,0:16:57.820 -that in the header you know it’s just a -test program no one is gonna actually use this - -0:16:57.820,0:17:02.020 -so the uh upshot of all this that - -0:17:02.020,0:17:03.840 -Bill fires up - -0:17:03.840,0:17:05.530 -RCP and - -0:17:05.530,0:17:08.230 -to copy a file between machines - -0:17:08.230,0:17:08.730 -and - -0:17:08.730,0:17:15.300 -and it copies a file at about 50..6 or -60 kilobits per second - -0:17:15.300,0:17:17.520 -and at that point the CPU is PEC - -0:17:17.520,0:17:19.799 -on the VAX 750 - -0:17:19.799,0:17:20.810 -And it you know - -0:17:20.810,0:17:24.810 -there's plenty of bandwidth still available -because we had 10 megabit Ethernet at that point - -0:17:24.810,0:17:28.519 -we had the new 10 megabit Ethernet because mostly - it was 3 megabit but - -0:17:28.519,0:17:31.059 -we had a 10 which was like really cool stuff. - -0:17:31.059,0:17:32.260 -uh and - -0:17:32.260,0:17:37.090 -uh so he talks to her rocker you know this thing runs -and girl was his attitude - -0:17:37.090,0:17:39.280 -as well the backbone - -0:17:39.280,0:17:44.540 -of the only the 56 K so as long as -we can saturate that what's the problem - -0:17:44.540,0:17:48.710 -and Bill’s attitude is well know I need to be - all you know get closer to the bandwidth of - -0:17:48.710,0:17:51.450 -the network between these local machines - -0:17:51.450,0:17:56.430 -And so of course Bill being Bill -dives in and see why this is the case that it's not running very - -0:17:56.430,0:17:57.440 -fast. - -0:17:57.440,0:17:58.500 -Infact DRAPA - -0:17:58.500,0:17:59.880 - wrote to - -0:17:59.880,0:18:01.680 -to some of this stuff to figure out - -0:18:01.680,0:18:06.320 -what was not running quickly. We already -had it for usual of our programs that’s what we - -0:18:06.320,0:18:09.170 -put it into the kernel - -0:18:09.170,0:18:12.160 -And said to say some of these tools are still like -considered - -0:18:12.160,0:18:17.050 -like leading tools but are not leading tools but -still used tools today - -0:18:17.050,0:18:22.800 -Uh which isn't to say bad that it's just that -seems like in twenty years you could do better - -0:18:22.800,0:18:23.690 -at any rate - -0:18:23.690,0:18:27.490 -he quickly discovers that way the TCP/IP -code is written - -0:18:27.490,0:18:30.000 -is it’s this elaborate state machine - -0:18:30.000,0:18:32.970 -and there's the state transitions that you -go through and - -0:18:32.970,0:18:36.919 -each time we want to a state transition the -you jump through an indirect - -0:18:36.919,0:18:39.090 -this and that and other things and - -0:18:39.090,0:18:42.520 -and he goes well you know this is just great -and efficient and you know - -0:18:42.520,0:18:46.620 -we could just take this machine turned -into a giant switch statement - -0:18:46.620,0:18:49.860 -And you know if you're going to see a red area -know to get from here to there are going to - -0:18:49.860,0:18:53.070 -need to switch states buttoning ON and that’s that - -0:18:53.070,0:18:54.380 -We'll just do that - -0:18:54.380,0:18:57.770 -And so he starts crank on his way -and - -0:18:57.770,0:18:59.230 -pounding out all of that - -0:18:59.230,0:19:01.680 -the structure and getting a down - -0:19:01.680,0:19:04.110 -of what it looks like today - -0:19:04.110,0:19:06.200 -And uh - -0:19:06.200,0:19:09.390 -that's the spin cleaned up considerably over -the years but - -0:19:09.390,0:19:12.280 -Uh so he cranks it down to this and - -0:19:12.280,0:19:14.770 -gets up to the point where - -0:19:14.770,0:19:19.420 -he can at least saturate that 3 megabit wire -we can’t saturate the - -0:19:19.420,0:19:21.960 -10 megabit wire but it's because the - -0:19:21.960,0:19:24.640 -actually Ethernet controllers are which themselves are - -0:19:24.640,0:19:26.740 -not able to uh - -0:19:26.740,0:19:30.310 -really run at 10 megabits uh - -0:19:30.310,0:19:33.330 -these were you know prototype early release -stuff and so - -0:19:33.330,0:19:35.020 -we get it upto - -0:19:35.020,0:19:36.960 -somewhere around four - -0:19:36.960,0:19:39.370 -megabit uh - -0:19:39.370,0:19:43.370 -But we're only looking at 40% CPU time -so in theory if we could have run at wire’s - -0:19:43.370,0:19:46.809 -speed we got up to 10 megabit -and for other reasons it wouldn't have - -0:19:46.809,0:19:47.350 -but - -0:19:47.350,0:19:53.760 -the point is we were like uh a way way over of magnitude -ahead of where we started from later of - -0:19:53.760,0:19:56.350 -and so - -0:19:56.350,0:19:59.480 -Uh there's a lot of pressure from a lot of the - -0:19:59.480,0:20:02.950 -uh the people that have been that have 4.1 - -0:20:02.950,0:20:04.640 -that they want to - -0:20:04.640,0:20:07.320 -try out this networking stuff - -0:20:07.320,0:20:10.080 -and so uh - -0:20:10.080,0:20:11.870 -this code - -0:20:11.870,0:20:13.210 -as such as it was - -0:20:13.210,0:20:17.280 -uh got released as something that we call -4.1a - -0:20:17.280,0:20:20.680 -Uh so 4.1a was sort of the - -0:20:20.680,0:20:22.559 -first intermediate release of - -0:20:22.559,0:20:26.020 -Uh between 4.1 and 4.2 - -0:20:26.020,0:20:28.860 -and this got surprisingly large - -0:20:28.860,0:20:32.890 -larger distribution then we have really planned -on because you know you give it to one person - -0:20:32.890,0:20:38.010 -and then someone else hears about it. May want it -then someone else wants it nahnah..... -0:20:38.010,0:20:42.030 -It's not like today and where you just put it up - just anonymous FTP. This was still - -0:20:42.030,0:20:45.340 -put it on a tape Mule tape somebody big - -0:20:45.340,0:20:46.640 -nine track tapes - -0:20:46.640,0:20:48.110 -uh - -0:20:48.110,0:20:52.900 -And uh if you'd want lucky enough to have a high -tape drive 6250 - -0:20:52.900,0:20:55.090 -Which for inchtape drive then you had to get - -0:20:55.090,0:20:56.430 -the 1604 - -0:20:56.430,0:20:59.360 - tapes together all out there - -0:20:59.360,0:21:01.660 -Uh at any rate - -0:21:01.660,0:21:03.820 -This this code goes out - -0:21:03.820,0:21:04.299 -Uh and uh - -0:21:04.299,0:21:10.039 -measured about this time Sam Leffler -somebody's name probably know in contemporary - -0:21:10.039,0:21:11.800 -stuff having to do with wireless - -0:21:11.800,0:21:14.000 -Uh I actually joined - -0:21:14.000,0:21:15.710 -the Source Forge group there - -0:21:15.710,0:21:17.340 -uh and - -0:21:17.340,0:21:19.530 -he begins to help build with - -0:21:19.530,0:21:21.669 -a rewrite of the networking interface - -0:21:21.669,0:21:23.020 -on in particular - -0:21:23.020,0:21:27.210 -uh Bill hadn't quiet hard on to the -fact that - -0:21:27.210,0:21:30.320 -uh When you may want to have multiple connections - -0:21:30.320,0:21:33.970 -concurrently on a particular port -so if you're running some TP - -0:21:33.970,0:21:35.720 -server of HTTP - -0:21:35.720,0:21:38.640 -Uh the way he had written had a except - -0:21:38.640,0:21:42.780 -that the that the what we think of surround view of -the socket today was actually connected - -0:21:42.780,0:21:46.350 -and so that nobody else to talk to you on -that particular port to you. When you’re - -0:21:46.350,0:21:48.170 -finished with that conversation and then - -0:21:48.170,0:21:51.520 -that the sock would become free again and you -could’ve the next connection. - -0:21:51.520,0:21:52.759 -he says like that no - -0:21:52.759,0:21:54.389 -no we got it like -0:21:54.389,0:21:56.500 -to have more than one at a time - -0:21:56.500,0:22:01.510 -and so that's when the whole listen and the -rendezvous socket works up returns to a new - -0:22:01.510,0:22:03.670 -connected socket and so on - -0:22:03.670,0:22:06.960 -uh and so at any rate - -0:22:06.960,0:22:08.900 -this this all it gets done - -0:22:08.900,0:22:10.970 -And uh - -0:22:10.970,0:22:15.930 -I've gotten ropped into doing the files system -which is another part of an earlier story. - -0:22:15.930,0:22:20.130 -uh and so the file system is sort of the -point where we're ready to inflicted I mean - -0:22:20.130,0:22:22.120 -let other users try it - -0:22:22.120,0:22:24.480 -and we have revise networking - -0:22:24.480,0:22:25.600 -and so this - -0:22:25.600,0:22:26.460 -Uh came up - -0:22:26.460,0:22:28.960 -as a release called 4.1b - -0:22:28.960,0:22:33.390 -and then fairly quickly thereafter the signal -stuff got cleaned up - -0:22:33.390,0:22:36.670 -so 4.1b got replaced to 4.1c - -0:22:36.670,0:22:40.450 -Uh remember there were four things that we need -to get done so A was the networking B was the file system - -0:22:40.450,0:22:42.309 -and C was the signalling and - -0:22:42.309,0:22:43.920 -D was supposed to be - -0:22:43.920,0:22:47.880 -the virtual memory which of course did happen -for another six or seven years - -0:22:47.880,0:22:49.190 -Uh but - -0:22:49.190,0:22:52.390 -at any rate 4.1c was another one -of these ones - -0:22:52.390,0:22:54.600 -which was an enormously picked up - -0:22:54.600,0:22:56.300 -very wide distribution - -0:22:56.300,0:22:57.860 -uh and in - -0:22:57.860,0:23:01.110 -in the meantime - -0:23:01.110,0:23:05.640 -Uh you know the folks at the PBNF continues to -work and developing and - -0:23:05.640,0:23:06.570 -polishing their code - -0:23:06.570,0:23:09.720 -uh but Bill had asked another copy -of it so - -0:23:09.720,0:23:12.570 -they hadn’t delivered it because it -wasn’t done yet any way - -0:23:12.570,0:23:15.370 -uh and they’re just get it done - -0:23:15.370,0:23:18.450 -then give it to Berkley we could put it -in this - -0:23:18.450,0:23:20.790 -preparation for shipping 4.2 - -0:23:20.790,0:23:24.090 -Well 4.1c got out there - -0:23:24.090,0:23:25.610 -and uh - -0:23:25.610,0:23:29.760 -Bill then was setting about to work on -the VM stuff - -0:23:29.760,0:23:34.260 -When one day going to his office to -Chat with him. He says, “ Come into my office and you know I - -0:23:34.260,0:23:37.840 - I am - -0:23:37.840,0:23:41.870 -involved with these other folks down at Stanford -and they have some hardware - -0:23:41.870,0:23:42.860 -and they want - -0:23:42.860,0:23:45.020 -me to put some Berkley UNIX on it - -0:23:45.020,0:23:46.020 -and you know - -0:23:46.020,0:23:48.770 -starts selling these things as workstations - -0:23:48.770,0:23:49.889 -and uh - -0:23:49.889,0:23:52.500 -I’m going I gonna go - -0:23:52.500,0:23:56.430 -I am going down there and you know that one of the -founding members of this and you should come - -0:23:56.430,0:23:57.230 -along - -0:23:57.230,0:23:58.750 -uh because you know - -0:23:58.750,0:24:03.989 -you being a single digit -employee at workstations. - -0:24:03.989,0:24:06.559 -You’ll get huge stock option -it’s gonna be really exciting and you know - -0:24:06.559,0:24:11.450 -I at that time I had already completed my degree -in business from - -0:24:11.450,0:24:12.580 -Uh University California so - -0:24:12.580,0:24:14.710 -I knew something about business - -0:24:14.710,0:24:18.460 -in fact I've taken an entrepreneurial course -so I knew a lot about starting up companies - -0:24:18.460,0:24:19.830 -and selling back. - -0:24:19.830,0:24:23.230 -And so I said,” Well you know Bill - -0:24:23.230,0:24:27.750 -this all sounds good what you know what what -is that’s going to make you so successful.” - -0:24:27.750,0:24:31.480 -He says,” All those facts that you know we're -not going to vendor lock in and you know it's going - -0:24:31.480,0:24:33.190 -to be running the UNIX and - -0:24:33.190,0:24:38.000 -if SUN doesn’t do it right they -can always go to another vendor and can get UNIX from now. - -0:24:38.000,0:24:40.730 -and uh that’s that's going to be the story - -0:24:40.730,0:24:43.320 -And I said, “Well you know this is well and good but - -0:24:43.320,0:24:46.120 -let me explain about workstations.” - -0:24:46.120,0:24:50.860 -Uh workstations is about the install base of applications -as people buy workstations because the applications - -0:24:50.860,0:24:52.700 - run on it - -0:24:52.700,0:24:56.810 -And uh you know this is company APPOLO that had - -0:24:56.810,0:25:01.220 -a 4 years head start on SUN and they've -got a lock on the applications - -0:25:01.220,0:25:04.860 -and people aren’t going to switch the SUN because -they need the applications that run on APPOLO. - -0:25:04.860,0:25:06.690 -So you know - -0:25:06.690,0:25:09.400 -I'm sure it's going to be interesting but -uh - -0:25:09.400,0:25:13.909 -you know I'm only a few months from finishing -my PHD in I know I got a SUN with you that - -0:25:13.909,0:25:15.249 -won't happen - -0:25:15.249,0:25:18.390 -So I’m gonna my PhD we'll see how SUN is doing in - -0:25:18.390,0:25:20.660 -over six or eight months and you know - -0:25:20.660,0:25:22.130 -We’ll evaluate - -0:25:22.130,0:25:26.640 -well of course it took me in and fourteen -fifteen months to finish my PhD and of - -0:25:26.640,0:25:27.740 -course by that time - -0:25:27.740,0:25:31.590 -SUN had burst onto the scene and didn't -have anything interesting stock options - -0:25:31.590,0:25:33.910 -left - -0:25:33.910,0:25:39.410 -So uh if you want it buy it's about business perhaps -I'm not the one to ask - -0:25:39.410,0:25:41.410 -at any rate - -0:25:41.410,0:25:44.420 -Bill left without doing to the VM system - -0:25:44.420,0:25:49.500 -Uh and he took 4.1c with him to get it -ported on to the the SUN hardware. - -0:25:49.500,0:25:51.300 -and - -0:25:51.300,0:25:54.240 -with this sort uh of hit - -0:25:54.240,0:25:55.910 -on the the main developer - -0:25:55.910,0:26:00.510 -uh we decided that rather than trying up to get -someone else up to speed in getting to the - -0:26:00.510,0:26:02.710 -VM done and so on. - -0:26:02.710,0:26:05.520 -We would instead - -0:26:05.520,0:26:09.370 -just declare the first three pieces of this -4 piece contract - -0:26:09.370,0:26:11.580 -uh work released - -0:26:11.580,0:26:14.020 -and so - -0:26:14.020,0:26:15.720 -uh around this time - -0:26:15.720,0:26:18.050 -this be back June of 1983 - -0:26:18.050,0:26:20.620 -Uh Micheal Karl joins the group - -0:26:20.620,0:26:22.590 -essentially coming in uh - -0:26:22.590,0:26:25.500 -to replace in into the position that was - -0:26:25.500,0:26:27.119 -up formerly held by - -0:26:27.119,0:26:29.330 -Sam ..Sam uh out by - -0:26:29.330,0:26:32.000 -Bill as that sort of - -0:26:32.000,0:26:33.250 -Head of lead programmer - -0:26:33.250,0:26:36.510 -uh and - -0:26:36.510,0:26:40.490 -because Sam also Sam had also considered taking -that position but ultimately decided that - -0:26:40.490,0:26:44.610 -uh he he didn't want to do that he was gonna -to go off to do graphic and - -0:26:44.610,0:26:46.990 - looks as well - -0:26:46.990,0:26:48.830 -and so - -0:26:48.830,0:26:51.030 -the uh - -0:26:51.030,0:26:52.980 -the upshot of this was that - -0:26:52.980,0:26:55.429 -4.2 got released - -0:26:55.429,0:26:57.920 -in about August of 83 - -0:26:57.920,0:27:01.549 -And uh - -0:27:01.549,0:27:05.640 -there’re uh about 1000 copies around remember for each -copy that goes out that’s like an institution gets - -0:27:05.640,0:27:07.429 -a copy and you know - -0:27:07.429,0:27:10.760 -spread across all those machines et cetera. - -0:27:10.760,0:27:14.470 -Uh there's another way of looking at it is you can -look at the number of licenses that AT&T - -0:27:14.470,0:27:16.400 - had outstanding - -0:27:16.400,0:27:21.420 -and how many licenses that Berkley had - -0:27:21.420,0:27:24.310 -at the time we had shipped a thousand, there were -about twelve hundred - -0:27:24.310,0:27:27.450 -uh AT&T licenses. So it says that - -0:27:27.450,0:27:29.149 -fair number of people were running - -0:27:29.149,0:27:35.310 -Uh now at this point just for context AT&T is -releasing system 5 release one - -0:27:35.310,0:27:37.380 -So that is short of where they are. - -0:27:37.380,0:27:39.290 -Uh They had taken their file system and - -0:27:39.290,0:27:44.010 -up the block size from 512 bytes - to 1 K - -0:27:44.010,0:27:46.750 -Uh at any rate - -0:27:46.750,0:27:47.870 -PBNN - -0:27:47.870,0:27:50.650 -was very upset that their TCP/IP - -0:27:50.650,0:27:53.340 -had not been incorporated. - -0:27:53.340,0:27:57.650 -and here we released it but it was this like -prototype early version had been bastardize - -0:27:57.650,0:27:59.100 -by Bill - -0:27:59.100,0:28:04.290 -and like you know this is it that you know -DARPA paid and now you know have the shiny wonderful - -0:28:04.290,0:28:05.990 -TCP/IP stack. - -0:28:05.990,0:28:09.150 -You should be putting this in - -0:28:09.150,0:28:10.369 -and so - -0:28:10.369,0:28:15.310 -they began agitating with DARPA and saying -what you know Blah Blah got this happened - -0:28:15.310,0:28:16.280 -and so - -0:28:16.280,0:28:20.950 -uh Michael Karl being very deliberative -what a person he is. - -0:28:20.950,0:28:23.330 -Says Ok well - -0:28:23.330,0:28:27.780 -I'll take the TCP/IP code from BBN and I'll -take the TCP code from - -0:28:27.780,0:28:28.870 -that we have in 4.2 - -0:28:28.870,0:28:31.550 -and will evaluate both of them - -0:28:31.550,0:28:38.430 -and the evaluation involves you know -performance and maintenance abilities - -0:28:38.430,0:28:41.980 -and functionality and all these various -necessary things - -0:28:41.980,0:28:42.779 -and - -0:28:42.779,0:28:47.370 -He says, “ Well you know the TCP/IP the idea comes -from BBN and has some really good ideas - -0:28:47.370,0:28:49.039 -and we don't have so we'll just - -0:28:49.039,0:28:51.330 -Pick those up and drop it in our distribution - -0:28:51.330,0:28:55.510 -Uh but we don't really feel that their - -0:28:55.510,0:28:57.950 -code is uh you know - -0:28:57.950,0:29:01.090 -is the good place to start from. There are lot of people -this point - -0:29:01.090,0:29:05.730 -that have worked with the prickly code -and they know that code is based on huge amount of enhancements - -0:29:05.730,0:29:07.570 -on it. - -0:29:07.570,0:29:10.880 -Uh This is wonderful book that's been written -all about it - -0:29:10.880,0:29:13.049 -So it is very well documented - -0:29:13.049,0:29:13.500 -and - -0:29:13.500,0:29:17.960 -it just doesn't seem to have really make sense -to - -0:29:17.960,0:29:22.460 -reset back to here and then have to get all -of those improvements changes et cetera. - -0:29:22.460,0:29:23.809 -Uh into this - -0:29:23.809,0:29:25.280 -particular new version. - -0:29:25.280,0:29:27.150 -uh it it - -0:29:27.150,0:29:30.440 -I finally graduated in 84 and during -the project - -0:29:30.440,0:29:33.260 -uh foolishly that taking over as - -0:29:33.260,0:29:34.170 -it's technically but - -0:29:34.170,0:29:35.419 -is the lead - -0:29:35.419,0:29:38.960 -which meant that I got to deal with all of -the political polls showed while - -0:29:38.960,0:29:41.870 -Mike got to do lots of programming - -0:29:41.870,0:29:45.140 -So let that be a lesson to you that if you think -that they're trying to sweet talk - -0:29:45.140,0:29:50.409 -you and How great it is to be in-charge -of things. - -0:29:50.409,0:29:50.960 -Uh - -0:29:50.960,0:29:53.080 -At any rate we - -0:29:53.080,0:29:56.680 -continue debating back and forth about this -stuff with BBN. - -0:29:56.680,0:30:00.180 -We kept taking stuff putting it into -And look you know that we've taken that we've we’ve taken that - -0:30:00.180,0:30:03.720 -“No No. You have to take the code -You got to take the code.” - -0:30:03.720,0:30:05.440 -So at any rate 4.3 - -0:30:05.440,0:30:07.750 -was really designed - -0:30:07.750,0:30:12.340 -much like 4.1 in the sense of consolidating -what we already had. So throughout the eh - -0:30:12.340,0:30:17.350 -the even-numbered releases from Berkeley had -a lot of functionality and odd releases - -0:30:17.350,0:30:19.930 -tried to really get the performance up - -0:30:19.930,0:30:24.170 -Uh we we're always striving to make sure that -things worked when the released up, but we didn't - -0:30:24.170,0:30:24.830 -always - -0:30:24.830,0:30:27.169 -strive to make sure they work optimally. - -0:30:27.169,0:30:30.090 -Uh figuring that it was better to sort of -tune things - -0:30:30.090,0:30:33.090 -after the fact that once you had a electrode working -in right way. - -0:30:33.090,0:30:37.510 -So anyway we made an announcement -of 4.3 - -0:30:37.510,0:30:39.379 -Uh actually at the June 1985 - -0:30:39.379,0:30:43.510 -it's the fact that two years basically have -gone by here. - -0:30:43.510,0:30:44.510 - and - -0:30:44.510,0:30:45.620 -uh - -0:30:45.620,0:30:46.470 -BBN - -0:30:46.470,0:30:50.620 -you know immediately objects that we have -not taken their code - -0:30:50.620,0:30:51.110 -and - -0:30:51.110,0:30:52.970 -uh they go to DARPA - -0:30:52.970,0:30:57.940 -and they said, “You paid BBN -how many millions of dollars, more than you paid to - -0:30:57.940,0:30:59.719 -Berkley to do this code - -0:30:59.719,0:31:00.730 -you gonna uh you know -0:31:00.730,0:31:02.900 -and now they're not taking it - -0:31:02.900,0:31:04.330 -and and you know - -0:31:04.330,0:31:06.360 -you got look like ninnies or something.” I -don't know - -0:31:06.360,0:31:08.390 -I don’t know what they’ve -said I wasn't there - -0:31:08.390,0:31:10.179 -But at any rate - -0:31:10.179,0:31:13.280 -DARPA - -0:31:13.280,0:31:16.600 -representative shows up in my office - -0:31:16.600,0:31:18.220 -and - -0:31:18.220,0:31:19.240 -Uh very calmly - -0:31:19.240,0:31:21.090 -uh explains that. - -0:31:21.090,0:31:22.100 -You know - -0:31:22.100,0:31:27.940 -the agreement was that BBN&N was going to -TCP/IP code and - -0:31:27.940,0:31:30.240 -Uh Berkley was to do the interface - -0:31:30.240,0:31:31.070 -and - -0:31:31.070,0:31:33.049 -This is this is the way the world and - -0:31:33.049,0:31:36.769 -you know we appreciate that you know you’ve -done with other’s stuff and it was it was great work - -0:31:36.769,0:31:38.670 -but - -0:31:38.670,0:31:42.460 -they are funding us and this is the way it is. - -0:31:42.460,0:31:44.120 -And my quarrel is like - -0:31:44.120,0:31:48.370 -uh you know arguing with them and look, you -know we've taken this and we’ve - -0:31:48.370,0:31:52.160 -put over here, all the reasons that I gave earlier - -0:31:52.160,0:31:55.410 -and you know the guy finally at the end just -says, - -0:31:55.410,0:31:57.679 -“ Not . You don't understand. - -0:31:57.679,0:31:58.549 -we're in charge - -0:31:58.549,0:32:02.500 -this is what you doing. Goodbye! - -0:32:02.500,0:32:04.960 -And you know - -0:32:04.960,0:32:08.000 -it just doesn't work very well at Berkeley -just come in and say, - -0:32:08.000,0:32:10.730 -“This is what you're going to do.” - -0:32:10.730,0:32:13.000 -The free speech movement comes to mind. - -0:32:13.000,0:32:15.970 -Uh so - -0:32:15.970,0:32:17.970 -You know Mike just go particularly BANANAS. - -0:32:17.970,0:32:21.190 -This like , “Aggarh” - -0:32:21.190,0:32:23.370 -and then fires off - -0:32:23.370,0:32:26.570 -unannounced to me fires off the thing -that the DARPA uh - -0:32:26.570,0:32:30.050 -which if I'd been would keep in shut -because I would not let them blame SUN - -0:32:30.050,0:32:31.690 -At any rate - -0:32:31.690,0:32:35.350 -I mean I only see it because DARPA guy -sent it back to me and says you need to keep - -0:32:35.350,0:32:38.720 -your staff under control. - -0:32:38.720,0:32:39.650 -Uh so - -0:32:39.650,0:32:44.130 -at any rate um you know -0:32:44.130,0:32:46.090 -Mike just says, “I'm not doing it. - -0:32:46.090,0:32:49.510 -They can't make me, I'll just leave.” - -0:32:49.510,0:32:51.640 - You know so you know - -0:32:51.640,0:32:56.450 -You tell them that they can either this way or -they can have that way or we won’t release it. Um - -0:32:56.450,0:32:57.619 -Agrh . um - -0:32:57.619,0:33:00.330 -Come on there’s got to be some compromise -we can do here. -0:33:00.330,0:33:01.730 -So - -0:33:01.730,0:33:05.360 -Finally uh I say, “Okay let’s I - -0:33:05.360,0:33:07.820 -I propose that we have a break-off. - -0:33:07.820,0:33:13.150 -So we will uh we we had already incorporated -into the paper there was big switch to compile one - -0:33:13.150,0:33:14.190 - way or the other - -0:33:14.190,0:33:15.609 -So my first proposal was - -0:33:15.609,0:33:16.910 -we will just ship it - -0:33:16.910,0:33:20.820 -with a compile time options. -So you can compile for VBN code -or it may compile powerful Berkley code. - -0:33:20.820,0:33:21.640 -Even BBN - -0:33:21.640,0:33:24.799 -Even DARPA could see -this was a no-win - -0:33:24.799,0:33:27.950 -because you’ll end up with some -people running one some people running the - -0:33:27.950,0:33:30.549 -other, this won’t work smoothly. - -0:33:30.549,0:33:31.539 - This was just not - -0:33:31.539,0:33:33.550 -where they want it to go. - -0:33:33.550,0:33:35.409 -and so we said, “Okay well - -0:33:35.409,0:33:38.480 -switch is there it's really easy to compile -with two different systems. - -0:33:38.480,0:33:41.830 -Let’s have a break-off - -0:33:41.830,0:33:43.649 -you know we’ll have compiler - -0:33:43.649,0:33:46.549 -with one and compiler with other one and have bunch of tests - -0:33:46.549,0:33:49.059 -and you know will decide which one is better. - -0:33:49.059,0:33:50.610 -Well of course we're not going to let - -0:33:50.610,0:33:55.429 -Berkley do the testing because there’ll be biased -for Berkley. We’re not going to let BBN to do the testing - -0:33:55.429,0:33:57.640 -because they’ll be biased for BB&N. - -0:33:57.640,0:33:59.720 -so we’ve to find a - -0:33:59.720,0:34:01.210 -uh - -0:34:01.210,0:34:03.480 -a third party and - -0:34:03.480,0:34:08.440 -uh the third party that DARPA actually proposes -is Col Mike Moose at the Ballistics - -0:34:08.440,0:34:10.979 -Research Laboratory, just up the road from -here and - -0:34:10.979,0:34:12.929 -Uh yeah - -0:34:12.929,0:34:14.509 -little known to - -0:34:14.509,0:34:18.659 -most of the people is that we actually knew Mike Moose -very well because we worked a lot with him. - -0:34:18.659,0:34:19.910 -working on TCP/IP - -0:34:19.910,0:34:23.659 -so - -0:34:23.659,0:34:25.059 -we’re like uhm yah it’s ok with us. - -0:34:25.059,0:34:27.869 -And you know he was in military there’re - -0:34:27.869,0:34:31.139 -chain of command and BBN mock -new ones so - -0:34:31.139,0:34:33.589 -they’re fine with it - -0:34:33.589,0:34:34.370 -So ok great so - -0:34:34.370,0:34:36.469 -you know off we ship that tape and - -0:34:36.469,0:34:40.749 -He does not tell us what test he is gonna do -so neither side gets to - -0:34:40.749,0:34:44.720 -do anything other than make some suggestions -general suggestions so - -0:34:44.720,0:34:48.779 -Of course we suggest the 3 port performance -test could be important - -0:34:48.779,0:34:51.659 -and the BBN suggests that - -0:34:51.659,0:34:55.320 -uh how well it works in that phase of large -package - -0:34:55.320,0:34:57.049 -great losses is important - -0:34:57.049,0:35:01.430 -because of course the military you know will drop -a nuclear bomb on Chicago we want to make sure - -0:35:01.430,0:35:03.589 -we make outstand through that - -0:35:03.589,0:35:07.320 -At any rate Mike Moose sets up these the systems -and - -0:35:07.320,0:35:09.150 -runs a bunch of tests - -0:35:09.150,0:35:12.179 -and of course without talking to either side - -0:35:12.179,0:35:16.950 -and so we're sort of pens and needles -because you know several weeks goes by - -0:35:16.950,0:35:18.550 -and finally duh - -0:35:18.550,0:35:19.589 -his report lands. - -0:35:19.589,0:35:23.029 -You know humh comes in the mail here's his report - -0:35:23.029,0:35:26.269 -And the first thing you’d do is -to flip to the last page to see what the conclusion - -0:35:26.269,0:35:29.479 -is but he knew that's what we're going to -do so he hid the conclusion somewhere in the - -0:35:29.479,0:35:31.660 -middle - -0:35:31.660,0:35:33.369 -what's the need to read the entire thing - -0:35:33.369,0:35:36.229 -but it's a it's a very interesting week because - -0:35:36.229,0:35:39.910 -in terms of three protocols -we expected we did better - -0:35:39.910,0:35:40.840 -Uh what - -0:35:40.840,0:35:44.929 -that he introduced a thing where it would -randomly drop about every - -0:35:44.929,0:35:46.769 -fourth package - -0:35:46.769,0:35:47.799 -and - -0:35:47.799,0:35:49.390 -under this scenario - -0:35:49.390,0:35:50.919 -he says uh - -0:35:50.919,0:35:52.420 -the BBN code - -0:35:52.420,0:35:56.820 -Jumps out to an early start getting a lot -more data through interface of hardware - -0:35:56.820,0:35:59.039 -packet loss uh - -0:35:59.039,0:36:03.099 -but but the Berkley part managers to catch up -while the BB&N machine reboots. - -0:36:03.099,0:36:07.719 -Uh - -0:36:07.719,0:36:12.109 -Ultimately resulting in the conclusion -that even in the phase of the packet - -0:36:12.109,0:36:14.739 -loss, Berkley code seems to - -0:36:14.739,0:36:16.349 -do a little better. - -0:36:16.349,0:36:17.739 -And uh so his - -0:36:17.739,0:36:22.119 -conclusion is that it should continue to ship -with the BSD code. - -0:36:22.119,0:36:25.519 -Uh so with this result in hand - -0:36:25.519,0:36:28.749 -we are authorized by DARPA to do the release - -0:36:28.749,0:36:32.189 -and we finally managed to release - -0:36:32.189,0:36:35.829 -4.3 in June of - -0:36:35.829,0:36:38.420 -1986 - -0:36:38.420,0:36:39.599 -so - -0:36:39.599,0:36:41.519 -at this point uh - -0:36:41.519,0:36:42.199 -At this point - -0:36:42.199,0:36:45.389 -the new TCP code is gone out - -0:36:45.389,0:36:47.189 -were you know that - -0:36:47.189,0:36:52.289 -The revised BSD TCP/IP code is gone out - -0:36:52.289,0:36:54.689 -[with or without subnets] -With or without uh..subnets - -0:36:54.689,0:36:56.150 -uh that had - -0:36:56.150,0:36:59.809 -well the the class ABC type of subnets -not - -0:36:59.809,0:37:01.319 -not the uh - -0:37:01.319,0:37:02.910 -the sider stuff - -0:37:02.910,0:37:09.910 -sider came along - -0:37:16.329,0:37:17.299 -okay - -0:37:17.299,0:37:19.409 -uh at any rate uh - -0:37:19.409,0:37:23.719 -now we start accelerating the story hope -that again because I have to finish in - -0:37:23.719,0:37:25.559 -eight minutes - -0:37:25.559,0:37:27.540 -so at this point - -0:37:27.540,0:37:28.260 -Keith Bostic - -0:37:28.260,0:37:29.209 -comes to - -0:37:29.209,0:37:30.469 -comes to Berkeley - -0:37:30.469,0:37:34.059 -uh he had been at excise which some of you -may know - -0:37:34.059,0:37:37.329 -and this is in the fall of 1986 so - -0:37:37.329,0:37:40.219 -we've released 4.3 we’re just -getting cranked up - -0:37:40.219,0:37:43.049 -to work on 4.4 uh - -0:37:43.049,0:37:45.259 -remember that VM thing - -0:37:45.259,0:37:48.039 -and I think by this time this is other little - -0:37:48.039,0:37:50.329 -protocol MFS you may’ve heard of it - -0:37:50.329,0:37:54.839 -and it was felt that we ought to have that -as well - -0:37:54.839,0:37:57.150 -uh so bring Keith to pass the protocol - -0:37:57.150,0:37:59.560 -Uh one of his of requirements for coming - -0:37:59.560,0:38:03.420 -is that we have to agree to allow him to finish -that port of - -0:38:03.420,0:38:06.539 -2.11 to the PDP 11 ah - -0:38:06.539,0:38:08.489 -and uh you know - -0:38:08.489,0:38:12.470 -it's it's a real challenge to get a kernel which -adapt the port where it was about - -0:38:12.470,0:38:17.239 -just under 200 kilobyte of text -to fit on to a machine that has a maximum - -0:38:17.239,0:38:20.299 -amount of program space of 64 kilobytes - -0:38:20.299,0:38:23.450 - because what you have to do is to -break and overlays - -0:38:23.450,0:38:27.789 -and then you map in the overly and - the granularity of mapping is 4k - -0:38:27.789,0:38:28.530 -okay - -0:38:28.530,0:38:33.079 -So there's only eight pieces that you -can remap uh - -0:38:33.079,0:38:37.519 -Mike can I added to it is that’s -incredibly challenging problem and it's - -0:38:37.519,0:38:41.469 -probably you know intellectually very stimulating -but there's no way how we would do that. - -0:38:41.469,0:38:43.139 -Well if you want to do it you know - -0:38:43.139,0:38:45.849 -by all means you can do that in your -spare time - -0:38:45.849,0:38:48.309 -uh there is only three jobs you need to do - -0:38:48.309,0:38:51.540 -uh one is uh you need to be the answer the -phone - -0:38:51.540,0:38:55.409 -uh first thing other than distribution like -technical questions - -0:38:55.409,0:38:58.149 -and answer the incoming the mail stream for technical -questions. - -0:38:58.149,0:39:03.900 -Uh do some programming in in in your spare -time you can work on the PDP 11 - -0:39:03.900,0:39:04.850 -and know he was - -0:39:04.850,0:39:08.669 -had no other support for the phones and the -email - -0:39:08.669,0:39:09.460 -and we had - -0:39:09.460,0:39:12.209 -you know by this time about two thousand - -0:39:12.209,0:39:14.749 -uh distributions - -0:39:14.749,0:39:19.730 -So at any rate Keith did in fact finally -finished the PDP 11. - -0:39:19.730,0:39:20.779 -Uh port uh - -0:39:20.779,0:39:23.029 -got 2.11 out of the door - -0:39:23.029,0:39:26.960 -and we have a party to celebrate the fact -that he had completed this. - -0:39:26.960,0:39:29.850 -and part of the party was opening the window - -0:39:29.850,0:39:31.240 -on the fourth floor - -0:39:31.240,0:39:33.519 -of our uh building - -0:39:33.519,0:39:38.849 -and taking his PDP 11 and -ceremoniously dropping out of the window to the cement - -0:39:38.849,0:39:40.979 -sidewalks four stories below - -0:39:40.979,0:39:43.100 -to insure that he would never - -0:39:43.100,0:39:44.749 -work on it again. - -0:39:44.749,0:39:50.409 -This was him doing this not us. - -0:39:50.409,0:39:51.849 -At any rate uh - -0:39:51.849,0:39:53.930 -Keith of course being in the front line - -0:39:53.930,0:39:55.919 -uh support - -0:39:55.919,0:39:59.199 -Uh had a lot of feedback from various users uh - -0:39:59.199,0:40:00.509 -in particular - -0:40:00.509,0:40:03.559 -there were a number of vendors that work - -0:40:03.559,0:40:05.159 -trying to build - -0:40:05.159,0:40:05.930 -uh -0:40:05.930,0:40:08.560 -Network cards you could plug into a PC - -0:40:08.560,0:40:10.999 -that would provide TCP/IP network - -0:40:10.999,0:40:16.180 -and of course the PC it was way too feeble -to actually run the code in the PC itself - -0:40:16.180,0:40:17.539 -so they had a outward - - -0:40:17.539,0:40:18.799 -processor on the card - -0:40:18.799,0:40:22.039 -and they’d put the TCP/IP in there -that would sort of look - -0:40:22.039,0:40:23.200 -uh like a - -0:40:23.200,0:40:26.779 -file or some kind of device on -that PC and - -0:40:26.779,0:40:28.900 -so they would just open the uh - -0:40:28.900,0:40:30.709 -get connected to the network - -0:40:30.709,0:40:34.939 -and So of course they wanted TCP/IP -code from Berkeley along with the important - -0:40:34.939,0:40:38.210 -utilities like O or log in and - -0:40:38.210,0:40:38.659 -RCP uh - -0:40:38.659,0:40:42.709 -by that time FTP and TELNET uh - -0:40:42.709,0:40:45.189 -and - -0:40:45.189,0:40:48.909 -they didn't our standard thing was -to buy the distribution and take whatever - -0:40:48.909,0:40:50.100 -they need to get out of it. - -0:40:50.100,0:40:52.769 -But that meant they had to get an AT&T license. - -0:40:52.769,0:40:57.680 -By the late 80’s the AT&T -licenses or up to a quarter million dollars - -0:40:57.680,0:40:59.379 -and when you're in a little - -0:40:59.379,0:41:03.939 -commodity PC business a quarter million dollar -cost just to get the surfer before you do - -0:41:03.939,0:41:04.619 -anything with it - -0:41:04.619,0:41:06.669 -was just a non-starter for them. - -0:41:06.669,0:41:09.850 -And so we're getting requests for just - -0:41:09.850,0:41:13.199 -that TCP/IP code and associated utilities. - -0:41:13.199,0:41:17.479 -clearly since it all been developed in Berkley -was none of that in the original version 7 UNIX - -0:41:17.479,0:41:19.910 -which started from uh - -0:41:19.910,0:41:22.099 -AT&T couldn’t place any claim to that. - -0:41:22.099,0:41:26.829 -And so we talked to the lawyers at Berkeley and -they’re like this “How can we make money on this?” uh - -0:41:26.829,0:41:29.249 -because that's what they were paid to say and - -0:41:29.249,0:41:33.089 -so we pointed out to them that It had been developed -under a government contract and we showed them - -0:41:33.089,0:41:36.630 -the government contract saying that you know -this stuff done in this contract has to be - -0:41:36.630,0:41:37.229 -made - -0:41:37.229,0:41:40.769 -available to the public at reasonable cost or -whatever it said - -0:41:40.769,0:41:41.380 -uh - -0:41:41.380,0:41:42.100 -so - -0:41:42.100,0:41:45.669 -it didn’t really say that but be convinced the -lawyers that it did - -0:41:45.669,0:41:46.359 -and so - -0:41:46.359,0:41:48.369 -They agreed to lead us to pull out - -0:41:48.369,0:41:50.889 -this chunk of Berkley code and we - -0:41:50.889,0:41:51.859 -released that - -0:41:51.859,0:41:52.579 -under - -0:41:52.579,0:41:54.980 -this new license that the lawyers coped up - -0:41:54.980,0:41:59.299 -uh which is the one that we today think of -as the BSD license. - -0:41:59.299,0:42:03.569 -And of course our goal was to the absolutely -as - -0:42:03.569,0:42:07.979 -free as you know free to give away as we could possibly could -the really only thing you had to do was to give the credit to - -0:42:07.979,0:42:08.789 -Berkeley. - -0:42:08.789,0:42:12.140 -Uh so this was networking release one. - -0:42:12.140,0:42:14.019 -and uh it was a wild success - -0:42:14.019,0:42:17.519 -uh the amazing thing was that we sold at 100 -we could - -0:42:17.519,0:42:20.249 -Buy it from Berkeley for 1000 dollars - -0:42:20.249,0:42:24.169 -or you could just downloaded it off your net -for free - -0:42:24.169,0:42:28.209 -and yet a thousand people chose to pay a 1000 -dollars at Berkeley to get it. - -0:42:28.209,0:42:30.220 -and the only difference was that you got - -0:42:30.220,0:42:33.660 -to take a 9 track tape which many people didn't -have any way of reading - -0:42:33.660,0:42:34.100 -and - -0:42:34.100,0:42:35.719 -hey uh - -0:42:35.719,0:42:39.869 -that a piece of paper signed by Berkley -lawyers - -0:42:39.869,0:42:42.289 -essentially saying “Yes you can use this” - -0:42:42.289,0:42:44.939 -and that's what they were paying a 1000 dollars for - -0:42:44.939,0:42:48.239 -and the lawyers of course got paid something -like a hundred dollars for every one of - -0:42:48.239,0:42:50.790 -these that they signed because of the overhead - -0:42:50.790,0:42:51.650 -et cetera - -0:42:51.650,0:42:54.349 -they thought this was the cat's pyjamas - -0:42:54.349,0:42:57.499 -you know maybe the campus was making a lot of -money but their office was confined to offer just to Thank - -0:42:57.499,0:42:59.009 -you very much! - -0:42:59.009,0:43:01.409 -so - -0:43:01.409,0:43:03.420 -Uh at any rate oh - -0:43:03.420,0:43:04.440 -Network one was - -0:43:04.440,0:43:06.059 -widely successful - -0:43:06.059,0:43:08.309 -and so there was pressure as Keith - -0:43:08.309,0:43:12.369 -would come inside uh someone today want to want to -be I or somebody wants this is or somebody - -0:43:12.369,0:43:13.589 -wants that - -0:43:13.589,0:43:16.289 -and you know we really ought to do this and uh - -0:43:16.289,0:43:19.440 -you know how about figuring out other parts of the -kernel. - -0:43:19.440,0:43:20.559 -Mike and I would - -0:43:20.559,0:43:24.929 -Michael and I would look at the each other we -look at Keith it’s like yah yah all right. - -0:43:24.929,0:43:28.989 -Uh what you figured out you know I mean -You know all entire of the C library and all - -0:43:28.989,0:43:29.819 -this and that -0:43:29.819,0:43:31.760 -so we got to the conferences and - -0:43:31.760,0:43:32.859 -Keith is - -0:43:32.859,0:43:36.809 -putting up you know these huge list of utilities -you’ll rewrite this utility and get their name - -0:43:36.809,0:43:37.729 -in lights. - -0:43:37.729,0:43:40.869 -and uh you know and uh - -0:43:40.869,0:43:43.939 -So he would get this stuff send too along - -0:43:43.939,0:43:48.529 -and he would almost always just take a -bash and Keith’s normal form which - -0:43:48.529,0:43:54.139 -usually get look a lot like what he got but -he started from cleans so that - -0:43:54.139,0:43:55.119 -Was uh - -0:43:55.119,0:43:59.229 -you know good and you know it’s sort of easy - you know that first someone sensing cat in. - -0:43:59.229,0:44:01.450 -you know someone like really go ho hog and - -0:44:01.450,0:44:04.849 -does that all options to allow uh - -0:44:04.849,0:44:07.629 -this is in the days before the new software -you know - -0:44:07.629,0:44:10.119 -lots of options for in vote - -0:44:10.119,0:44:13.079 -Uh and then - -0:44:13.079,0:44:15.239 -one day uh - -0:44:15.239,0:44:16.759 -Keith comes into to report - -0:44:16.759,0:44:18.470 -that somebody is redoing - -0:44:18.470,0:44:20.449 -the T graph family - -0:44:20.449,0:44:24.099 -and this is when Mike and I look at each -sort of grope - -0:44:24.099,0:44:28.190 -because the next question out of -Keith’s mouth is How’s that kernel coming guys? - -0:44:28.190,0:44:32.299 -We can't go to the useless conferences and say rewrite -the kernel to get your name in lights you know - -0:44:32.299,0:44:36.400 -so we actually have to like go through and -figure out what's - -0:44:36.400,0:44:39.130 -Berkley and what's not Berkeley and - -0:44:39.130,0:44:40.499 -segregate stuff out uh - -0:44:40.499,0:44:43.459 -A long story but eventually we get - -0:44:43.459,0:44:45.599 -something we feel that was clean - -0:44:45.599,0:44:47.929 -and uh so - -0:44:47.929,0:44:51.699 -we go back to the lawyers and say we’ll -cut the update to the networking tape - -0:44:51.699,0:44:52.989 -that we'd like to do - -0:44:52.989,0:44:59.079 -uh that uh we're going to call it networking -release 2 not 2 and - -0:44:59.079,0:45:00.470 -so actually - -0:45:00.470,0:45:04.599 -we do sort of come on and explain it is practically -the entire system and - -0:45:04.599,0:45:07.759 -lots of stuff happens but they finally sign -off on it - -0:45:07.759,0:45:09.469 -and we put it out there - -0:45:09.469,0:45:14.519 -and it's out there for good half a year before -BSD i - -0:45:14.519,0:45:17.499 -was in the missing bits and start telling -it - -0:45:17.499,0:45:19.650 -they you know - -0:45:19.650,0:45:21.439 -engineers are - -0:45:21.439,0:45:23.230 -not really that good at - -0:45:23.230,0:45:25.419 -marketing and so - -0:45:25.419,0:45:28.859 -in particular they think that the sort of -cutesy see things like - -0:45:28.859,0:45:32.729 -having your phone number being 1800 -its UNIX - -0:45:32.729,0:45:38.759 -and adds to save a ninety nine percent of the -price of a AT&T charges for the source code - -0:45:38.759,0:45:40.439 -Uh are cute - -0:45:40.439,0:45:41.670 -Got it really irritates - -0:45:41.670,0:45:44.759 -the piss out of AT&T - -0:45:44.759,0:45:46.270 -And so they sue us - -0:45:46.270,0:45:49.319 -imagine that why they sue BSD I - -0:45:49.319,0:45:53.509 -and BSD i is what added only the 6 -file and you know all the rest came from Berkley. - -0:45:53.509,0:45:57.129 -So we would be happy to talk about any of -the six files you’d like to - -0:45:57.129,0:45:59.530 -uh but otherwise you know forget it - -0:45:59.530,0:46:01.009 -and the judge agrees - -0:46:01.009,0:46:04.539 -because they don't have any problem about -those six files and so - -0:46:04.539,0:46:07.769 -there's no choice but to sue the University - -0:46:07.769,0:46:09.259 -and uh - -0:46:09.259,0:46:11.160 -that’s another long story for which I did - -0:46:11.160,0:46:12.629 -become an expert witness - -0:46:12.629,0:46:14.390 -which is actually proven - -0:46:14.390,0:46:18.809 -to be of relatively lucrative thing because -being an expert witness - -0:46:18.809,0:46:20.039 -it's something that you - -0:46:20.039,0:46:24.669 -it's really hard to break into that is no -one wants to hire someone hasn't done it before - -0:46:24.669,0:46:28.359 -top and it turns out that it really didn't -matter how much you know, do - -0:46:28.359,0:46:33.829 -you have a PhD because if you have PhD by definition -you must know you're talking about - -0:46:33.829,0:46:34.859 -himself - -0:46:34.859,0:46:36.219 -and number two is - -0:46:36.219,0:46:40.839 -How you speak in public then you know especially -people harassing you look at ten thousand - -0:46:40.839,0:46:41.830 -students you know - -0:46:41.830,0:46:45.309 -there's not a question that a graduate student -has never asked me but I’d deal with it - -0:46:45.309,0:46:51.309 -and lawyer is not up to a graduate student. - -0:46:51.309,0:46:53.219 -So I did pretty well that score too - -0:46:53.219,0:46:55.129 -uh and so - -0:46:55.129,0:46:57.599 -because I that they were forced to use me - in this case. - -0:46:57.599,0:47:00.080 -And but I did ran after then - -0:47:00.080,0:47:03.879 -the lawyer the outside lawyer that the Berkeley -got me to do some other stuff and - -0:47:03.879,0:47:08.800 -one thing leads to another so today I am uh -an expert in the - -0:47:08.800,0:47:12.989 -network complaints vs SUN microsystem -lawsuit vs ZFS lawsuit - -0:47:12.989,0:47:14.439 -which is uh - -0:47:14.439,0:47:17.739 -an interesting story that you can ask over -here - -0:47:17.739,0:47:18.679 -At any rate - -0:47:18.679,0:47:21.629 -we eventually win the the lawsuit - -0:47:21.629,0:47:26.089 -And uh and we don't win it be subtle the -lawsuit excuse me I have to use proper terminology - -0:47:26.089,0:47:27.029 -Here. - -0:47:27.029,0:47:28.750 -We have to agree - -0:47:28.750,0:47:32.999 -that networking released 2 did in fact have -things in it that infringed - -0:47:32.999,0:47:34.490 -uh and - -0:47:34.490,0:47:35.999 -however - -0:47:35.999,0:47:40.329 -Uh the things that infringe were sufficiently -minor that was some - -0:47:40.329,0:47:40.730 -changes - -0:47:40.730,0:47:42.039 -uh we can - -0:47:42.039,0:47:43.370 -get something else clean - -0:47:43.370,0:47:45.959 - we agreed that we will re-release - -0:47:45.959,0:47:50.890 -we'd do new release that has all these -changes made in it as 4.4 BSD lite. - -0:47:50.890,0:47:54.449 -So it’s 4.4 BSD which is the whole -thing complete with AT&T stuff and release - -0:47:54.449,0:47:56.059 -AT&T licenses - -0:47:56.059,0:47:57.580 -and for 4.4 BSD lite - -0:47:57.580,0:48:00.979 - which is got the stuff AT&T stuffs stripped out -of it. - -0:48:00.979,0:48:04.869 -And AT&T really thought they’d won big-time -because all these people had been using the - -0:48:04.869,0:48:05.509 -Net 2. - -0:48:05.509,0:48:08.909 -They're going to be forced to throw out -because we’re not allowed to tell what the changes - -0:48:08.909,0:48:09.640 -were - -0:48:09.640,0:48:12.729 -and have to start all over again - -0:48:12.729,0:48:14.929 -from lite - -0:48:14.929,0:48:19.339 -And the Bill Joy in particular has never did that -and so that's why this distribution got hammered - -0:48:19.339,0:48:22.150 -FreeBSD had to do it - -0:48:22.150,0:48:24.329 -not the BSD folks had to do it uh - -0:48:24.329,0:48:26.289 -and it was a huge amount of work but they -did it - -0:48:26.289,0:48:30.489 -and it was great because we got two more years -worth of our technology out - -0:48:30.489,0:48:32.959 -at any rate - -0:48:32.959,0:48:36.289 -we actually did one more incremental sort of the -release to - -0:48:36.289,0:48:39.510 -I would just fix some of the most egregious -bugs - -0:48:39.510,0:48:43.309 -that’s what all happened was we got all these people -who bought this BSD lite licenses - -0:48:43.309,0:48:46.519 -Because they wanted to pay the -thousand dollars to get the piece of paper - -0:48:46.519,0:48:46.940 -saying - -0:48:46.940,0:48:48.899 -and this is fine too - -0:48:48.899,0:48:49.640 -and uh - -0:48:49.640,0:48:52.819 -so we had a chunk of money and so Keith -and I started to do the work - -0:48:52.819,0:48:54.689 -through that money - -0:48:54.689,0:48:56.329 -and it's just spend it - -0:48:56.329,0:48:58.640 -essentially doing bug fixes and stuff on lite - -0:48:58.640,0:49:00.839 -And finally released when the money ran out then - -0:49:00.839,0:49:03.769 -we left the university and that was the last release - -0:49:03.769,0:49:05.679 -Uh from from Berkley - -0:49:05.679,0:49:12.679 -and that is the end of my story -So any questions? -Uh .. Yes - - -0:49:20.069,0:49:21.929 -Sorry.. uh VM system - - -0:49:21.929,0:49:25.359 -VM system yup. - -0:49:25.359,0:49:30.579 -So the VM system was actually sort of an interesting -story uh.. - -0:49:30.579,0:49:33.759 -Actually both VM and NFS were interesting -Stories. - -0:49:33.759,0:49:36.890 -The VM system uh - -0:49:36.890,0:49:41.160 -one of our attitudes was that why always come -up with a good idea when you can steal a better - -0:49:41.160,0:49:42.759 -one and - -0:49:42.759,0:49:46.369 -you know we’re just allowed to write -a VM system this uh - -0:49:46.369,0:49:47.579 -you know that BSD folks - -0:49:47.579,0:49:48.599 -clearly know - -0:49:48.599,0:49:49.530 -and - -0:49:49.530,0:49:50.889 -uh so - -0:49:50.889,0:49:54.539 -we looked around to see if there's anything -that we could use - -0:49:54.539,0:49:57.969 -rather than have to interpret it from the scratch -ourselves. and - -0:49:57.969,0:50:01.689 - evaluated two different things one -was - -0:50:01.689,0:50:04.759 -uh the the stuff that SUN had done - -0:50:04.759,0:50:10.109 -and the other was the stuff that had been done at -Carnegie Mellon under the Mark’s then and - -0:50:10.109,0:50:14.069 -Uh they've done a whole lot of very good work -on the VM system we didn't really agree with - -0:50:14.069,0:50:18.179 -the microphone kernel principle but we liked -the VM system - -0:50:18.179,0:50:21.589 -and so we talked to SUN about potentially - -0:50:21.589,0:50:23.479 -Contributing uh - -0:50:23.479,0:50:27.159 -chunk of their VM system we talked to them -about contributing a chunk of their - -0:50:27.159,0:50:27.949 -VFS stuff. -0:50:27.949,0:50:31.649 -We knew that we couldn’t get the NFS from them but - -0:50:31.649,0:50:32.659 -they they you know - -0:50:32.659,0:50:36.809 -the folks at SUN is sorts of an engineering were too -enthusiastic about it and percolated it all the way - -0:50:36.809,0:50:39.459 -up to the Scott McNealy, he was the CEO at that -time - -0:50:39.459,0:50:42.979 -and even Scott McNealy was pretty enthusiastic about -giving the stuff to Berkley. - -0:50:42.979,0:50:45.239 -you know as long as SUN would get credit for -it - -0:50:45.239,0:50:47.140 -And uh - -0:50:47.140,0:50:51.549 -so we've really got to the point where it -is needed to be signed off by the the SUN - -0:50:51.549,0:50:52.429 -lawyers - -0:50:52.429,0:50:58.919 -and sent off to them and after that SUN -lawyers came back and said, - -0:50:58.919,0:51:03.199 -“ Well you know your stock holders could accuse you of giving -away company property - -0:51:03.199,0:51:07.309 -and and sue you in court and we really don't -recommend that you do this.” - -0:51:07.309,0:51:08.380 -and so - -0:51:08.380,0:51:09.999 -that the very last minute it was .. - -0:51:09.999,0:51:12.779 -We couldn't get any of that stuff from SUN. - -0:51:12.779,0:51:14.699 -So we ended up - -0:51:14.699,0:51:17.859 -adopting this stuff from Mark -the Mark VM system - -0:51:17.859,0:51:18.699 -and - -0:51:18.699,0:51:22.369 -so it fell to myself to take that and - -0:51:22.369,0:51:24.669 -figure out essentially how to plug it in. - -0:51:24.669,0:51:27.140 -apart of all of this the old VM system - -0:51:27.140,0:51:32.259 -was very portable provided you are pouring -into something that looked a lot like a VAX. - -0:51:32.259,0:51:37.429 -because it came down to uh you know the that the -basic page data structure was VAX - -0:51:37.429,0:51:38.979 -page data structure. - -0:51:38.979,0:51:40.590 -and so when people will ported it. - -0:51:40.590,0:51:44.440 -If they have something with the page data structure -to look different they wouldn't take it from - -0:51:44.440,0:51:48.360 -the VAX and would shuffle the bits around and put -it in the right order and then dropped it into - -0:51:48.360,0:51:50.829 -the whatever that architecture was - -0:51:50.829,0:51:55.509 -a page table. So it worked pretty well for porting -into the motorola uh because the - -0:51:55.509,0:51:57.959 -NMU network was a lot like the VAX -uh - -0:51:57.959,0:52:01.899 -and some other machines but in other ways it -just really didn't cut it at all - -0:52:01.899,0:52:06.130 -whereas the VM had been done by -the the folks at the CMU. - -0:52:06.130,0:52:09.389 -In Mark was uh you know - -0:52:09.389,0:52:11.059 -very elegantly designed - -0:52:11.059,0:52:13.150 -uh and in fact - -0:52:13.150,0:52:14.740 -it had in some ways - -0:52:14.740,0:52:18.980 -too many bells and whistles and too many options -and because a lot of sort of dead end so they - -0:52:18.980,0:52:21.189 -just sort of left hanging there - -0:52:21.189,0:52:22.589 -Uh but uh - -0:52:22.589,0:52:26.200 -the structure itself was nicely done about it was -about 90% machine independent code - -0:52:26.200,0:52:28.459 -10 % machine dependent code so that - -0:52:28.459,0:52:30.119 -a well defined interface. - -0:52:30.119,0:52:32.239 -the PMAC interface. - -0:52:32.239,0:52:34.359 -got that put in and of course we - -0:52:34.359,0:52:40.019 -did onto the the Berkeley mmap Interface -rather than what they did - -0:52:40.019,0:52:42.700 -with uh ports and so on - -0:52:42.700,0:52:43.160 -Uh and - -0:52:43.160,0:52:48.210 -So I got back together sort in the that -the 4 3 phase I didn’t talk about there were - -0:52:48.210,0:52:51.130 -two releases between 4.3 and 4.4 -4.3 - -0:52:51.130,0:52:53.789 -Taha and 4.3 Reno and - -0:52:53.789,0:52:56.689 -the first of them having to the VM and the - -0:52:56.689,0:52:58.099 -second one having the NFS in it. - -0:52:58.099,0:52:59.759 -And uh - -0:52:59.759,0:53:01.499 -so - -0:53:01.499,0:53:05.529 -backup put out and then luckily people would feel -sort of look at it and said well you know - -0:53:05.529,0:53:07.709 -this really needs like a lot of work - -0:53:07.709,0:53:11.699 -so Michael, University Utah did a tremendous -amount of the clean up in it. - -0:53:11.699,0:53:16.489 -and then later actually after we release -lite BSD in agreement - -0:53:16.489,0:53:18.719 -Uh did a whole lot more work on it. - -0:53:18.719,0:53:22.069 -really were just throwing tons of shit out -that shouldn’t have been at first place. - -0:53:22.069,0:53:26.559 -I had this whole notion of an external user -driven page which was nice but the cost - -0:53:26.559,0:53:30.129 -of all the extra context switching other -things that would happen on page was sort of - -0:53:30.129,0:53:32.549 -a killer uh - -0:53:32.549,0:53:39.479 -And so at any rate that's that's how the the -VM system got in there. - -0:53:39.479,0:53:40.420 -Any more questions? - -0:53:40.420,0:53:45.349 -See I can take like five minutes to answer -one question. - -0:53:45.349,0:53:45.599 -All right ! Well Thank You very much. +0:00:00.570,0:00:03.510 +Anyways it is my great honor and privilege + +0:00:03.510,0:00:10.510 +to introduce Kirk McKusick. He is going +to give a talk of the history of BSD. + +0:00:13.570,0:00:17.170 +So this is actually a three-hour lecture + +0:00:17.170,0:00:19.949 +but I don't have three hours so there is + +0:00:19.949,0:00:23.659 +uh is this where I allow audience participation + +0:00:23.659,0:00:27.099 +The lecture is really sort of three +main parts + +0:00:27.099,0:00:30.460 +and what I’ll do is + +0:00:30.460,0:00:34.210 +describe the three main parts. Then everyone +will get to vote on which part they find the + +0:00:34.210,0:00:35.490 +most interesting + +0:00:35.490,0:00:36.510 +Then what I.. I won’t.. + +0:00:36.510,0:00:41.309 +I used to just do just that part and I’ve got a +lot of negative feedback about that + +0:00:41.309,0:00:43.819 +So I’ll do those two parts don't get elected in + +0:00:43.819,0:00:47.210 +I'll just do quickly and then I'll concentrate +on the the one + +0:00:47.210,0:00:48.010 +piece that + +0:00:48.010,0:00:49.720 +seems to be the most popular + +0:00:49.720,0:00:51.360 +so the history of BSD + +0:00:51.360,0:00:55.750 +This is BSD at Berkeley as opposed +to once it's out into the + +0:00:55.750,0:00:57.050 +open source world + +0:00:57.050,0:01:01.810 +So the first period of time is what I call +the Bill Joy era + +0:01:01.810,0:01:06.360 +And this is where Bill Joy is starting up BSD +and it's really getting it rolling and + +0:01:06.360,0:01:07.180 +so it ends when he + +0:01:07.180,0:01:08.370 +departs + +0:01:08.370,0:01:09.610 +and + +0:01:09.610,0:01:13.080 +Sponsers uh.. starts up this company +called Sun Microsystems which you may have + +0:01:13.080,0:01:14.680 +heard of + +0:01:14.680,0:01:19.250 +Uh.. Then the second part is sort of the heyday +of BSD. So this is the period of time + +0:01:19.250,0:01:20.930 +where everybody is + +0:01:20.930,0:01:24.290 +running is 4.2 and 4.3 and so on + +0:01:24.290,0:01:24.960 +and + +0:01:24.960,0:01:28.830 +during that period of time we were being funded +by DARPA which + +0:01:28.830,0:01:31.020 +deploy a microphone somewhere in this room + +0:01:31.020,0:01:32.950 +Uh at any rate + +0:01:32.950,0:01:35.160 +there was some very interesting + +0:01:35.160,0:01:36.889 +Uh.. battles that went on + +0:01:36.889,0:01:38.630 +Uh.. about + +0:01:38.630,0:01:41.110 +exactly how TCP ought to be implemented + +0:01:41.110,0:01:46.180 +and a lot of this at that history all +that all percolates out + +0:01:46.180,0:01:48.000 +and so that's sort of the middle period and + +0:01:48.000,0:01:54.000 +and then the end period is where we have +gotten religion and have decided that + +0:01:54.000,0:01:58.130 +you know maybe BSD isn’t going be at +Berkeley forever and if we want there to be + +0:01:58.130,0:01:58.960 +any + +0:01:58.960,0:02:00.430 +possibility for it to continue + +0:02:00.430,0:02:04.530 +Uh.. we better figure out how to get it outside +the university to people that + +0:02:04.530,0:02:08.489 +other than to the people that are licensed +by AT&T Bell Laboratories. + +0:02:08.489,0:02:09.970 +And so it's the whole story of + +0:02:09.970,0:02:13.859 +how we open-sourced it and fought a one lawsuit +about that and + +0:02:13.859,0:02:15.189 +so on and so forth. + +0:02:15.189,0:02:19.049 +So those are the three main parts.. The Bill Joy .. the +middle TCP + +0:02:19.049,0:02:20.519 +building years + +0:02:20.519,0:02:20.940 +and + +0:02:20.940,0:02:24.099 +the lawsuit years at the end. + +0:02:24.099,0:02:28.879 +So how many people are most interested in hearing +the Bill Joy years + +0:02:28.879,0:02:33.999 +one two three four five, six seven eight nine +ten, eleven twelve thirteen + +0:02:33.999,0:02:35.199 +fourteen fifteen + +0:02:35.199,0:02:39.559 +Sixteen. Ok.. how many people are interested +in hearing sort of the middle era + +0:02:39.559,0:02:44.579 +one two three, four five six, seven eight nine +ten, eleven twelve thirteen fourteen fifteen + +0:02:44.579,0:02:45.320 +Sixteen.. All right.. + +0:02:45.320,0:02:46.959 +Seventeen eighteen ninety twenty twenty one + +0:02:46.959,0:02:49.959 +twenty five OK and how many people want to hear +the open + +0:02:49.959,0:02:51.079 +source + +0:02:51.079,0:02:53.159 +Lawsuit et cetera + +0:02:53.159,0:02:57.120 +Laugh.... Okkk + +0:02:57.120,0:02:58.969 +Do you see this is why I ask + +0:02:58.969,0:03:01.139 +This is usual it's interesting 'cause I get + +0:03:01.139,0:03:03.499 +different different groups votes for different +things + +0:03:03.499,0:03:06.799 +When I was in Japan they all want to hear +about the lawsuit.. you know.. that’s all they + +0:03:06.799,0:03:09.229 +have those in Japan. + +0:03:09.229,0:03:11.669 +Yeah that story is quite well known here + +0:03:11.669,0:03:14.639 +Infact the so interesting tidbit is that + +0:03:14.639,0:03:16.459 +uh through + +0:03:16.459,0:03:20.289 +Freedom of Information Act, California Freedom +of Information Act + +0:03:20.289,0:03:23.489 +uh we were able to get the uh + +0:03:23.489,0:03:27.819 +decision on that lawsuit unsealed so that +the actual text could get out which was + +0:03:27.819,0:03:30.319 +sort of interesting reading. + +0:03:30.319,0:03:34.349 +Okay, well for those of you who are interested in +a section that I'm not doing + +0:03:34.349,0:03:38.050 +This is where I get to make a shameless plug for +my DVD. + +0:03:38.050,0:03:41.709 +This is the entire three-and-a-half hour version +of this lecture + +0:03:41.709,0:03:45.949 +Which conveniently have a box of, so +if it's worth twenty dollars to you could + +0:03:45.949,0:03:52.219 +got one of these and walk away with it. + +0:03:52.219,0:03:57.119 +Ok. So uh unlike most of my talks and I don’t actually +have a laptop with slides on it and I just have these + +0:03:57.119,0:03:59.529 +handwritten notes + +0:03:59.529,0:04:01.680 +and the top line of my handwritten note says + +0:04:01.680,0:04:06.190 +the first four pages of this were written +on the Indian Pacific train on way to Perth + +0:04:06.190,0:04:12.629 +in January 1986 because I had +to give a lecture on the day I arrived. + +0:04:12.629,0:04:14.219 +So I have been uh told + +0:04:14.219,0:04:18.100 + that this was what my talk was going +to be and I was unprepared so + +0:04:18.100,0:04:23.259 +it's what a bouncy up-and-down handwriting +but it was the early history + +0:04:23.259,0:04:24.840 +so anyway + +0:04:24.840,0:04:25.880 +we're just gonna zip + +0:04:25.880,0:04:27.029 +quickly through + +0:04:27.029,0:04:29.750 +what BSD started at Berkeley + +0:04:29.750,0:04:31.150 +Uh by Bill Joy + +0:04:31.150,0:04:34.120 +uh Bill Joy was a graduate student I +happened to + +0:04:34.120,0:04:38.050 +share the same adviser with him, we were both +working on programming languages. + +0:04:38.050,0:04:41.610 +Uh you might find that hard to believe considering +that he did the C shell but + +0:04:41.610,0:04:44.539 +Uh.. laugh +0:04:44.539,0:04:48.000 +at any rate up that's what we're doing and + +0:04:48.000,0:04:50.740 +So I shared an office with him and along with + +0:04:50.740,0:04:53.720 +three other graduate students uh + +0:04:53.720,0:04:56.120 +and + +0:04:56.120,0:05:00.060 +So uh I sort of was sitting there watching a lot of +this unfolding and in fact Bill was very good + +0:05:00.060,0:05:03.080 +at getting other people enthusiastic about +doing work. + +0:05:03.080,0:05:06.849 +There was his typical comment was.. “how hard +can it be, you could just knock this off in + +0:05:06.849,0:05:08.869 +a couple hours” + +0:05:08.869,0:05:12.709 +and usually you could knock off that one thing +but of course that with can you sucked + +0:05:12.709,0:05:16.060 +in and you know you end up writing the entire Pascal +interpreter or + +0:05:16.060,0:05:18.039 +the back-end or something + +0:05:18.039,0:05:20.249 +At any rate + +0:05:20.249,0:05:24.749 +Bill started doing initially just utilities +so was the C shell + +0:05:24.749,0:05:27.439 +uh that EX editor later + +0:05:27.439,0:05:29.750 +it also became the VI editor + +0:05:29.750,0:05:31.490 +the Pascal system + +0:05:31.490,0:05:37.080 +and say start packaging these things out and +sending out tapes to people and + +0:05:37.080,0:05:38.050 +then when + +0:05:38.050,0:05:39.930 +Ken Thompson who would + +0:05:39.930,0:05:42.099 +in an Alumnus of Berkeley + +0:05:42.099,0:05:45.610 +went out for one year's sabbatical and brought +UNIX with him + +0:05:45.610,0:05:49.909 +when he left Bill sort of took over running +the system what we would call a system administrator + +0:05:49.909,0:05:51.729 +today + +0:05:51.729,0:05:55.660 +Uh at any rate this got him interested in this the system +There were patches that were coming back + +0:05:55.660,0:05:58.550 +from AT&T he was putting those in and he was then + +0:05:58.550,0:06:01.590 +making some others sending them back to AT&T +and he + +0:06:01.590,0:06:01.930 +and + +0:06:01.930,0:06:03.729 + so + +0:06:03.729,0:06:07.770 +over time there were bigger and bigger bits of +the system and finally got tired of trying + +0:06:07.770,0:06:08.370 +to + +0:06:08.370,0:06:10.909 +track what other people's UNIXes look +like + +0:06:10.909,0:06:11.729 +and so + +0:06:11.729,0:06:16.569 +uh with the advent of FreeBSD the +third distribution + +0:06:16.569,0:06:18.560 +He just put together an entire package + +0:06:18.560,0:06:22.310 +uh and this was actually to the VAX rather +than the PDP-11 which is what we had started + +0:06:22.310,0:06:23.080 +on + +0:06:23.080,0:06:25.069 +all the 2. + +0:06:25.069,0:06:27.310 +versions of the of BSD + +0:06:27.310,0:06:30.889 +were actually worked on by the other people not by +the Bill especially not the stuff where + +0:06:30.889,0:06:33.050 +the kernel begins to become involved + +0:06:33.050,0:06:35.300 +2.9, 2.10, 2.11 et cetera + +0:06:35.300,0:06:37.569 +uh was actually done by + +0:06:37.569,0:06:41.090 +other people many years uh later so 2.11 + +0:06:41.090,0:06:43.279 +does not preceed 3.0 + +0:06:43.279,0:06:48.550 +Uh 2.11 is you know contemporary +with 4.4 + +0:06:48.550,0:06:51.100 +Uh at any rate uh + +0:06:51.100,0:06:52.800 +once we got the + +0:06:52.800,0:06:54.790 +uh the BSD + +0:06:54.790,0:06:57.360 +distribution out into the world + +0:06:57.360,0:07:00.870 +Uh it started getting used by a lot of people +because it + +0:07:00.870,0:07:01.589 +really + +0:07:01.589,0:07:05.000 +was a big step forward over what AT&T were +shipping + +0:07:05.000,0:07:06.660 +in particular + +0:07:06.660,0:07:09.529 +uh as we started getting things like + +0:07:09.529,0:07:11.450 +the TCP/IP networking + +0:07:11.450,0:07:15.770 +Uh So you had a choice you can run the AT&T +version which had UUCP as networking + +0:07:15.770,0:07:19.149 +or you could run BSD that had sockets, TCP et + cetera + +0:07:19.149,0:07:20.610 +you could run + +0:07:20.610,0:07:24.090 +AT&T's version which had a file system that +could utilize 3 to 5 percent of the bandwidth + +0:07:24.090,0:07:24.979 +of the disk + +0:07:24.979,0:07:28.810 +or you could run BSD which could utilize 50 percent +of the bandwidth of the disk + +0:07:28.810,0:07:30.519 +et cetera. + +0:07:30.519,0:07:34.939 +So many people would buy the AT&T license + and immediately drop Berkeley to add UNIX + +0:07:34.939,0:07:37.180 +on to it. + +0:07:37.180,0:07:41.879 +Uh consequently it was getting wide distribution +atleast in the university environments + +0:07:41.879,0:07:44.139 +Uh + +0:07:44.139,0:07:46.979 +And uh starting to sort of eek out into the commercial +environments + +0:07:46.979,0:07:51.249 +The commercial environments were not large because +commercial environments just weren’t using UNIX + +0:07:51.249,0:07:52.679 +at that time + +0:07:52.679,0:07:54.679 +for the most part + +0:07:54.679,0:07:58.090 +Uh So at any rate + +0:07:58.090,0:07:59.290 +Bill got it + +0:07:59.290,0:08:00.349 +Uh well + +0:08:00.349,0:08:04.299 +with FreeBSD coming out uh + +0:08:04.299,0:08:06.340 +The DARPA which is + +0:08:06.340,0:08:07.540 +essentially + +0:08:07.540,0:08:10.160 +puts out research contracts for + +0:08:10.160,0:08:12.629 +all the different branches of the military + +0:08:12.629,0:08:13.780 +Uh was + +0:08:13.780,0:08:15.960 +had a huge number of contracts + +0:08:15.960,0:08:19.850 +out with lots of different people being stuff +related computers and they all have different computers + +0:08:19.850,0:08:22.939 +and different operating systems and they were using +different languages + +0:08:22.939,0:08:24.969 +and so if one group would do something + +0:08:24.969,0:08:27.309 +they just couldn't really pass that + +0:08:27.309,0:08:30.739 +over take some other group that might want +to utilize it because this was written in + +0:08:30.739,0:08:33.390 +FORTRAN and that was written in PL1 + +0:08:33.390,0:08:35.830 +You know this was running on + +0:08:35.830,0:08:40.830 +you know some deck machine and that was running on some +IBM hardware et cetera. + +0:08:40.830,0:08:47.220 +and so DARPA decided that they +really wanted to consolidate + +0:08:47.220,0:08:50.280 +on hardware and operating system + +0:08:50.280,0:08:55.000 +and then have people work there and so there's a +better chance if they would be able to co-operate. + +0:08:55.000,0:08:57.640 +So they put out a a sort of + +0:08:57.640,0:08:59.829 +call, essentially a request for + +0:08:59.829,0:09:02.430 +proposals or whatever they called in those +days + +0:09:02.430,0:09:04.290 +and + +0:09:04.290,0:09:05.520 +essentially there were two + +0:09:05.520,0:09:08.500 +uh main contending things that came in + +0:09:08.500,0:09:10.029 +one was the VAX + +0:09:10.029,0:09:11.320 +running VMS + +0:09:11.320,0:09:14.300 +and the other one was the VAX running + +0:09:14.300,0:09:16.800 +Berkeley UNIX + +0:09:16.800,0:09:18.150 +and of course + +0:09:18.150,0:09:21.650 +the uh the people that were promoting the +VAX running VMS + +0:09:21.650,0:09:27.220 +were arguing like well you know this is a real +vendor supported operating system and + +0:09:27.220,0:09:32.059 +you know that this not just some flaky students +at Berkeley that are doing it + +0:09:32.059,0:09:34.530 +then you know therefore this ought to be the operating +system + +0:09:34.530,0:09:39.500 +And that really put the final nail +on the coffin + +0:09:39.500,0:09:43.410 +Uh this guy named Dave Cashkin came up with a set of +benchmarks + +0:09:43.410,0:09:47.370 +Uh what we would call micro benchmarks +today so how fast can you do Get PID + +0:09:47.370,0:09:49.970 +and how fast can you do that pipe thing + +0:09:49.970,0:09:54.180 +When you ping a single packet back and forth to see +how fast you can contact switch + +0:09:54.180,0:09:55.410 +and + +0:09:55.410,0:09:56.710 +uh + +0:09:56.710,0:10:00.910 +showed that VMS did these things much faster +than BSD did. + +0:10:00.910,0:10:01.760 +and this of course + +0:10:01.760,0:10:03.680 +made Bill go ballistic + +0:10:03.680,0:10:04.360 +and + +0:10:04.360,0:10:07.780 +Uh besides saying that they were as stupidest benchmarks + he'd ever since he said, ""If that's the way + +0:10:07.780,0:10:11.070 +they're gonna decide then we'll just go +make those things run fast"" + +0:10:11.070,0:10:14.920 +and it was sort of an interesting story about +other half and what + +0:10:14.920,0:10:19.980 +he got uh the BSD to run those benchmarks as fast +as the VMS + +0:10:19.980,0:10:21.450 +and + +0:10:21.450,0:10:22.170 +so + +0:10:22.170,0:10:24.900 +the upshot of it was that DARPA + +0:10:24.900,0:10:28.740 +was still sort of sitting on the fence +and Bill’s comment was well VMS we're stuck + +0:10:28.740,0:10:30.380 +with VMX forever + +0:10:30.380,0:10:34.490 +and you know may be some other computer might +be interesting down the road + +0:10:34.490,0:10:40.700 +and BSD is set up so that it's much more portable +uh you know it's tie. UNIX, in general is + +0:10:40.700,0:10:44.750 +portable across different architectures we've +already proved it by running it for n=2 + +0:10:44.750,0:10:45.910 +so therefore + +0:10:45.910,0:10:48.010 +it's a proved point + +0:10:48.010,0:10:49.040 +so + +0:10:49.040,0:10:51.850 +at any rate DARPA agreed to that + +0:10:51.850,0:10:54.780 +and they put in some initial money to Berkeley + +0:10:54.780,0:10:57.230 +and the initial things that Berkeley was +really just + +0:10:57.230,0:11:00.720 +uh to come up with + +0:11:00.720,0:11:02.500 +Uh well we had out 3BSD + +0:11:02.500,0:11:05.950 +which had a lot of functionality but the +performance wasn't so great + +0:11:05.950,0:11:09.330 +and so the that first point was to get +4 BSD out + +0:11:09.330,0:11:10.790 +which was going to have + +0:11:10.790,0:11:12.870 +sort of that + +0:11:12.870,0:11:14.960 +that additional functionality they really felt +they needed + +0:11:14.960,0:11:16.459 +uh which were just + +0:11:16.459,0:11:17.930 +really small tweeks + +0:11:17.930,0:11:22.510 +Uh things like the ability to automatically +reboot after crash + +0:11:22.510,0:11:23.880 +Uh Job control + +0:11:23.880,0:11:29.540 +uh PRAM’s list which was needed by a bunch +of their uh folks, deliver mail, smoke in air + +0:11:29.540,0:11:32.810 + that was the uh the predecessor to +send mail + +0:11:32.810,0:11:36.820 +except without a configuration file you just +compiled and checked the way you needed things + +0:11:36.820,0:11:37.700 +that were + +0:11:37.700,0:11:39.720 +uh at any rate + +0:11:39.720,0:11:41.260 +Uh that came out + +0:11:41.260,0:11:42.800 +and that 4.1 + +0:11:42.800,0:11:44.550 +so it nail that down cleaned it up + +0:11:44.550,0:11:46.590 +got the performance decent + +0:11:46.590,0:11:49.680 +and that fulfilled the first DARPA contract. + +0:11:49.680,0:11:52.450 +DARPA had put in something like + +0:11:52.450,0:11:56.390 +you know three-quarters of a million dollars or something +and boom topped this huge pay back from it + +0:11:56.390,0:11:56.960 +and + +0:11:56.960,0:11:58.380 +people seem to be happy with it + +0:11:58.380,0:12:02.880 +so they decided that maybe that the funky graduate students +at Berkeley could do stuff + +0:12:02.880,0:12:05.640 +and so then they put in that of + +0:12:05.640,0:12:07.310 +considerably larger + +0:12:07.310,0:12:10.710 +contract it was I don't know what three or +five million dollars + +0:12:10.710,0:12:12.260 +and this was a longer term + +0:12:12.260,0:12:13.520 +and in + +0:12:13.520,0:12:15.870 + those times he would get + +0:12:15.870,0:12:17.839 +for example a three-year contract + +0:12:17.839,0:12:20.320 +of which is sort of unheard of in lot of the + +0:12:20.320,0:12:22.440 +research stuff today. + +0:12:22.440,0:12:25.630 +So you could really sort of spend some time +figuring out what you can do and do it + +0:12:25.630,0:12:28.789 +for eighteen months to two years before you had +to start working about + +0:12:28.789,0:12:31.030 +renweing et cetera. + +0:12:31.030,0:12:33.180 +Uh in any way + +0:12:33.180,0:12:34.930 +the grand goals for this + +0:12:34.930,0:12:37.300 +Big contract that DARPA gave + +0:12:37.300,0:12:38.800 +was + +0:12:38.800,0:12:41.470 +Uh there were four pieces. One was + +0:12:41.470,0:12:42.779 +to get a + +0:12:42.779,0:12:43.880 +real networking end + +0:12:43.880,0:12:46.220 +uh at that time + +0:12:46.220,0:12:47.980 +Uh there was just NCP + +0:12:47.980,0:12:49.680 +Uh which was that + +0:12:49.680,0:12:54.240 +Network Control Protocol, the predecessor to TCP/IP + +0:12:54.240,0:12:57.100 +Uh a good file system in there + +0:12:57.100,0:13:01.490 +Uh restartable signals so you could actually +use them to drive work as opposed to just + +0:13:01.490,0:13:03.440 +terminating programs + +0:13:03.440,0:13:05.600 +and a new virtual memory system + +0:13:05.600,0:13:07.390 +Uh that wasn't + +0:13:07.390,0:13:09.810 +well essentially that allowed shared memory + +0:13:09.810,0:13:11.530 +uh that the one + +0:13:11.530,0:13:13.640 +the predecessor + +0:13:13.640,0:13:15.880 +that we were running BSD at that +time + +0:13:15.880,0:13:19.810 +shared the text space that would be only the part +of your program but all the rest + +0:13:19.810,0:13:21.580 +could not shared + +0:13:21.580,0:13:23.810 +So those were the four deliverables. + +0:13:23.810,0:13:25.980 +now for the kind of networking + +0:13:25.980,0:13:28.000 +they still didn't really trust us. + +0:13:28.000,0:13:30.879 +So they decided that what they were going +to do + +0:13:30.879,0:13:33.720 +was divide into two parts. + +0:13:33.720,0:13:35.300 +So they were going to get + +0:13:35.300,0:13:37.630 + Bolt, Beranek and Newman BBN + +0:13:37.630,0:13:42.360 +we are going to actually write the TCP/IP protocol +stuff + +0:13:42.360,0:13:44.709 +and then What Berkeley was supposed to do + +0:13:44.709,0:13:46.589 +was design the + +0:13:46.589,0:13:47.550 +programming interface + +0:13:47.550,0:13:49.040 +uh so + +0:13:49.040,0:13:53.130 +the socket, connect, except so on + +0:13:53.130,0:13:55.639 +and then BBN was to deliver + +0:13:55.639,0:14:00.159 +the thing that plugged in underneath that interface +and Berkeley was to integrate it into + +0:14:00.159,0:14:02.150 +BSD and uh + +0:14:02.150,0:14:04.570 +they would ship it. + +0:14:04.570,0:14:05.239 +and + +0:14:05.239,0:14:08.090 +Uh so + +0:14:08.090,0:14:11.240 +this all starts on and BBN gets to work + +0:14:11.240,0:14:13.090 +and + +0:14:13.090,0:14:15.750 +Bill Joy gets to work on the interface and + +0:14:15.750,0:14:18.620 +uh so + +0:14:18.620,0:14:22.610 +eventually what happens is that Bill has sort +of the framework of this stuff. And Bill being + +0:14:22.610,0:14:23.960 +Bill uh + +0:14:23.960,0:14:26.580 +he he worked rather quickly + +0:14:26.580,0:14:29.880 +Uh someone wants to ask you to compare myself +to Bill Joy and I said look + +0:14:29.880,0:14:33.980 +there's really nothing that he's done that +I couldn't do but the problem is + +0:14:33.980,0:14:36.810 +what he gets done in a year would take me +a decade + +0:14:36.810,0:14:39.430 +because he was the master of figuring out. + +0:14:39.430,0:14:40.730 +I'm here + +0:14:40.730,0:14:42.039 +that's where I want to get to + +0:14:42.039,0:14:44.740 +what is absolutely shortest path from here +to there + +0:14:44.740,0:14:45.810 +and he would do it + +0:14:45.810,0:14:47.339 +and you end up with code + +0:14:47.339,0:14:48.260 +that worked but + +0:14:48.260,0:14:51.699 +that was not maintainable, extendable, changeable. + +0:14:51.699,0:14:56.130 +Anybody looked at the old version of the VI +understands what I’m talking about. + +0:14:56.130,0:14:56.860 +so + +0:14:56.860,0:14:58.430 +So some of the rest of us you know + +0:14:58.430,0:14:59.709 +like to have stuff that like + +0:14:59.709,0:15:02.910 +you could go back and do something with later +but that takes longer + +0:15:02.910,0:15:03.689 +At any rate + +0:15:03.689,0:15:06.300 +Bill figured out this socket interface the first + +0:15:06.300,0:15:07.930 +draft of it it anyway + +0:15:07.930,0:15:12.140 +and he's got it and now he needs the networking protocols +to put underneath it + +0:15:12.140,0:15:15.480 +so he goes to to + +0:15:15.480,0:15:16.399 +Uh Rob Gurvitz who was + +0:15:16.399,0:15:18.259 +leading the program of + +0:15:18.259,0:15:20.429 +development of TCP/IP at BBN + +0:15:20.429,0:15:23.660 +and says hey I got the socket interface and I need +something to put in here + +0:15:23.660,0:15:28.140 +and Rob says well we're not really done yet +but we have we have this slight prototype code + +0:15:28.140,0:15:29.990 +and you know you could put that in it + +0:15:29.990,0:15:31.319 +see how that works in + +0:15:31.319,0:15:33.100 +you know then we’ll iterate + +0:15:33.100,0:15:35.810 +up so that we can work in parallel of you. + +0:15:35.810,0:15:38.410 +So Bill gets the code and + +0:15:38.410,0:15:40.420 +he puts it in + +0:15:40.420,0:15:40.859 +and + +0:15:40.859,0:15:42.979 +cranks it up and he gets a kind of working + +0:15:42.979,0:15:43.820 +and + +0:15:43.820,0:15:45.580 +then decides to run + +0:15:45.580,0:15:49.110 +Some full test between machines to see +how well it works. + +0:15:49.110,0:15:55.150 +And we’re running at the at that time our development +machines development inputs were + +0:15:55.150,0:15:55.820 +VAC 750’s +0:15:55.820,0:15:59.640 +so that was the big honk at VAC 780 +that ran an entire NIP + +0:15:59.640,0:16:04.600 +and then there were these much smaller things +that were merely the size of a large + +0:16:04.600,0:16:05.769 +uh dishwasher + +0:16:05.769,0:16:11.839 +uh its bigger than a dishwasher more like +washing machine yes +its over range at any rate and used about + +0:16:11.839,0:16:13.660 +as much power as the same. + +0:16:13.660,0:16:16.260 +Uh with all the burners turned ON assuming its electric + +0:16:16.260,0:16:23.080 +uh anyway the VAC 750 only +ran at 0.7 NIPs + +0:16:23.080,0:16:25.480 +Uh and so + +0:16:25.480,0:16:28.920 +Bill needs to be able to run sometests back and forth +between these machines + +0:16:28.920,0:16:31.080 +and of course we don't have + +0:16:31.080,0:16:34.900 +anything like FTP or TELNET +anything that, which is not written yet + +0:16:34.900,0:16:36.890 +and so he just + +0:16:36.890,0:16:38.369 +being Bill says well + +0:16:38.369,0:16:39.699 +I'll just hack up something + +0:16:39.699,0:16:43.309 +uh which was RLogin RCP et cetera. + +0:16:43.309,0:16:47.820 +which was really just the design so that he +could test running between these two machines + +0:16:47.820,0:16:48.710 +Uh + +0:16:48.710,0:16:52.130 +This is the legacy that we end up with and +why the protocol number or anything like + +0:16:52.130,0:16:57.820 +that in the header you know it’s just a +test program no one is gonna actually use this + +0:16:57.820,0:17:02.020 +so the uh upshot of all this that + +0:17:02.020,0:17:03.840 +Bill fires up + +0:17:03.840,0:17:05.530 +RCP and + +0:17:05.530,0:17:08.230 +to copy a file between machines + +0:17:08.230,0:17:08.730 +and + +0:17:08.730,0:17:15.300 +and it copies the file at about 56 or +60 kilobits per second + +0:17:15.300,0:17:17.520 +and at that point the CPU was pegged + +0:17:17.520,0:17:19.799 +on the VAX 750 + +0:17:19.799,0:17:20.810 +And it you know + +0:17:20.810,0:17:24.810 +there's plenty of bandwidth still available +because we had 10 megabit Ethernet at that point + +0:17:24.810,0:17:28.519 +we had the new 10 megabit Ethernet because mostly + it was 3 megabit but + +0:17:28.519,0:17:31.059 +we had the 10 which was like really cool stuff. + +0:17:31.059,0:17:32.260 +uh and + +0:17:32.260,0:17:37.090 +uh so he talks to Rob Gerwitz you know this thing runs +and Gerwitz was his attitude + +0:17:37.090,0:17:39.280 +as well the backbone + +0:17:39.280,0:17:44.540 +of the only the 56 K so as long as +we can saturate that what's the problem + +0:17:44.540,0:17:48.710 +and Bill’s attitude is well no I need to be + all you know get closer to the bandwidth of + +0:17:48.710,0:17:51.450 +the network between these local machines + +0:17:51.450,0:17:56.430 +And so of course Bill being Bill dives in to see +why this is the case that it's not running very + +0:17:56.430,0:17:57.440 +fast. + +0:17:57.440,0:17:58.500 +Infact, he probably + +0:17:58.500,0:17:59.880 + wrote this + +0:17:59.880,0:18:01.680 +to some of this stuff to figure out + +0:18:01.680,0:18:06.320 +what was not running quickly. We already +had it for user=level of our programs that’s what we + +0:18:06.320,0:18:09.170 +put it into the kernel + +0:18:09.170,0:18:12.160 +And sad to say some of these tools are still like +considered + +0:18:12.160,0:18:17.050 +like leading tools but are not leading tools but +still used tools today + +0:18:17.050,0:18:22.800 +Uh which isn't to say bad that it's just that +seems like in twenty years you could do better + +0:18:22.800,0:18:23.690 +at any rate + +0:18:23.690,0:18:27.490 +he quickly discovers that way the TCP/IP +code is written + +0:18:27.490,0:18:30.000 +is it’s this elaborate state machine + +0:18:30.000,0:18:32.970 +and there's the state transitions that you +go through and + +0:18:32.970,0:18:36.919 +each time we want do a state transition the +you jump through an indirect + +0:18:36.919,0:18:39.090 +this and that and other things and + +0:18:39.090,0:18:42.520 +and he goes well you know this is just way too +efficient and you know + +0:18:42.520,0:18:46.620 +we could just take the state machine turned +into a giant switch statement + +0:18:46.620,0:18:49.860 +And you know there will be a few GOTO's here and there + +0:18:49.860,0:18:53.070 +when you need to switch states buttoning ON and that’s that + +0:18:53.070,0:18:54.380 +We'll just do that + +0:18:54.380,0:18:57.770 +And so he starts cranking away on this thing +and + +0:18:57.770,0:18:59.230 +pounding out all of that + +0:18:59.230,0:19:01.680 +the structure and getting a down + +0:19:01.680,0:19:04.110 +of what it looks like today + +0:19:04.110,0:19:06.200 +And uh + +0:19:06.200,0:19:09.390 +actually it's been cleaned up considerably over +the years but + +0:19:09.390,0:19:12.280 +Uh so he cranks it down to this and + +0:19:12.280,0:19:14.770 +gets up to the point where + +0:19:14.770,0:19:19.420 +he can at least saturate the 3 megabit wire +we can’t saturate the + +0:19:19.420,0:19:21.960 +10 megabit wire but it's because the + +0:19:21.960,0:19:24.640 +actually Ethernet controllers themselves are + +0:19:24.640,0:19:26.740 +not able to uh + +0:19:26.740,0:19:30.310 +really run at 10 megabits uh + +0:19:30.310,0:19:33.330 +these were you know prototype early release +stuff and so + +0:19:33.330,0:19:35.020 +we get it upto + +0:19:35.020,0:19:36.960 +somewhere around four + +0:19:36.960,0:19:39.370 +megabit uh + +0:19:39.370,0:19:43.370 +But we're only running at 40% CPU time +so in theory if we could have run at wire + +0:19:43.370,0:19:46.809 +speed we got up to 10 megabit +and for other reasons it wouldn't have + +0:19:46.809,0:19:47.350 +but + +0:19:47.350,0:19:53.760 +the point is we were like uh a way way, order of magnitude +ahead of where we started from literally + +0:19:53.760,0:19:56.350 +and so + +0:19:56.350,0:19:59.480 +Uh there's a lot of pressure from a lot of the + +0:19:59.480,0:20:02.950 +uh the people that have been that have 4.1 + +0:20:02.950,0:20:04.640 +that they want to + +0:20:04.640,0:20:07.320 +try out this new networking stuff + +0:20:07.320,0:20:10.080 +and so uh + +0:20:10.080,0:20:11.870 +this code + +0:20:11.870,0:20:13.210 +as such as it was + +0:20:13.210,0:20:17.280 +uh got released as something that we called +4.1a + +0:20:17.280,0:20:20.680 +Uh so 4.1a was sort of the + +0:20:20.680,0:20:22.559 +first incremental release of + +0:20:22.559,0:20:26.020 +Uh between 4.1 and 4.2 + +0:20:26.020,0:20:28.860 +and this got surprisingly large + +0:20:28.860,0:20:32.890 +larger distribution then we had really planned +on because you know you give it to one person + +0:20:32.890,0:20:38.010 +and then someone else hears about it. They want it +then someone else wants it nahnah..... +0:20:38.010,0:20:42.030 +It's not like today and where you just put it up + and anonymous FTP. This was still + +0:20:42.030,0:20:45.340 +put it on a tape mail the tape to somebody, big + +0:20:45.340,0:20:46.640 +nine track tapes + +0:20:46.640,0:20:48.110 +uh + +0:20:48.110,0:20:52.900 +And uh if you'd want lucky enough to have a high +tape drive, a 6250 + +0:20:52.900,0:20:55.090 +bits per inch drive then you had to get + +0:20:55.090,0:20:56.430 +the 16 in four + +0:20:56.430,0:20:59.360 + tapes to get all out there + +0:20:59.360,0:21:01.660 +Uh at any rate + +0:21:01.660,0:21:03.820 +This this code goes out + +0:21:03.820,0:21:04.299 +Uh and uh + +0:21:04.299,0:21:10.039 +measured about this time Sam Leffler +somebody's name probably know in contemporary + +0:21:10.039,0:21:11.800 +stuff having to do with wireless + +0:21:11.800,0:21:14.000 +Uh I actually joined + +0:21:14.000,0:21:15.710 +the CSFG, the group there + +0:21:15.710,0:21:17.340 +uh and + +0:21:17.340,0:21:19.530 +he begins to help build with + +0:21:19.530,0:21:21.669 +a rewrite of the networking interface + +0:21:21.669,0:21:23.020 +in particular + +0:21:23.020,0:21:27.210 +uh Bill hadn't quiet gotten on to the +fact that + +0:21:27.210,0:21:30.320 +uh When you may want to have multiple connections + +0:21:30.320,0:21:33.970 +concurrently on a particular port +so if you're running SMTP + +0:21:33.970,0:21:35.720 +service or HTTP + +0:21:35.720,0:21:38.640 +Uh the way he had written had uh except + +0:21:38.640,0:21:42.780 +that the that the what we think of a rendezvous +socket today was actually connected + +0:21:42.780,0:21:46.350 +and so that nobody else to talk to you on +that particular port to you. When you’re + +0:21:46.350,0:21:48.170 +finished with that conversation and then + +0:21:48.170,0:21:51.520 +that the sock would become free again and you +could’ve the next connection. + +0:21:51.520,0:21:52.759 +he says like that no + +0:21:52.759,0:21:54.389 +no we got it like +0:21:54.389,0:21:56.500 +to have more than one at a time + +0:21:56.500,0:22:01.510 +and so that's when the whole listen and the +rendezvous socket works up returns to a new + +0:22:01.510,0:22:03.670 +connected socket and so on + +0:22:03.670,0:22:06.960 +uh and so at any rate + +0:22:06.960,0:22:08.900 +this this all gets done + +0:22:08.900,0:22:10.970 +And uh + +0:22:10.970,0:22:15.930 +I've gotten roped into doing the file system +which is another part of the earlier story. + +0:22:15.930,0:22:20.130 +uh and so the file system is sort of the +point where we're ready to inflict I mean + +0:22:20.130,0:22:22.120 +let other users try it + +0:22:22.120,0:22:24.480 +and we have revised networking + +0:22:24.480,0:22:25.600 +and so this + +0:22:25.600,0:22:26.460 +Uh came up + +0:22:26.460,0:22:28.960 +as a release called 4.1b + +0:22:28.960,0:22:33.390 +and then fairly quickly thereafter the signal +stuff got cleaned up + +0:22:33.390,0:22:36.670 +and so 4.1b got replaced with 4.1c + +0:22:36.670,0:22:40.450 +Uh remember there were four things that we need +to get done so A was the networking B was the file system + +0:22:40.450,0:22:42.309 +and C was the signalling and + +0:22:42.309,0:22:43.920 +D was supposed to be + +0:22:43.920,0:22:47.880 +the virtual memory which of course didn't happen +for another six or seven years + +0:22:47.880,0:22:49.190 +Uh but + +0:22:49.190,0:22:52.390 +at any rate 4.1c was another one +of these ones + +0:22:52.390,0:22:54.600 +which was an enormously picked up + +0:22:54.600,0:22:56.300 +very wide distribution + +0:22:56.300,0:22:57.860 +uh and in + +0:22:57.860,0:23:01.110 +in the meantime + +0:23:01.110,0:23:05.640 +Uh you know the folks at the BBN continued +working and developing and + +0:23:05.640,0:23:06.570 +polishing their code + +0:23:06.570,0:23:09.720 +uh but Bill had asked another copy +of it so + +0:23:09.720,0:23:12.570 +they hadn’t delivered it because it +wasn’t done yet any way + +0:23:12.570,0:23:15.370 +uh and they’re just get it done + +0:23:15.370,0:23:18.450 +then give it to Berkeley we could put it +in this + +0:23:18.450,0:23:20.790 +preparation for shipping 4.2 + +0:23:20.790,0:23:24.090 +Well 4.1c got out there + +0:23:24.090,0:23:25.610 +and uh + +0:23:25.610,0:23:29.760 +Bill then was setting about to work on +the VM stuff + +0:23:29.760,0:23:34.260 +When one day going to his office to +chat with him. He says, “Come into my office"" and he says +""you know I + +0:23:34.260,0:23:37.840 +I am + +0:23:37.840,0:23:41.870 +involved with these other folks down at Stanford +and they have some hardware + +0:23:41.870,0:23:42.860 +and they want + +0:23:42.860,0:23:45.020 +me to put some Berkeley UNIX on it + +0:23:45.020,0:23:46.020 +and you know + +0:23:46.020,0:23:48.770 +start selling these things as workstations + +0:23:48.770,0:23:49.889 +and uh + +0:23:49.889,0:23:52.500 +I’m going I gonna go + +0:23:52.500,0:23:56.430 +I am going down there to be one of the +founding members of this and you should come + +0:23:56.430,0:23:57.230 +along + +0:23:57.230,0:23:58.750 +uh because you know + +0:23:58.750,0:24:03.989 +you being a single digit +employee at workstations. + +0:24:03.989,0:24:06.559 +You’ll get huge stock option +it’s gonna be really exciting"" and you know + +0:24:06.559,0:24:11.450 +I at that time I had already completed my degree +in business from + +0:24:11.450,0:24:12.580 +Uh University California so + +0:24:12.580,0:24:14.710 +I knew something about business + +0:24:14.710,0:24:18.460 +in fact I had taken an entrepreneurial course +so I knew a lot about starting up companies + +0:24:18.460,0:24:19.830 +or so I thought. + +0:24:19.830,0:24:23.230 +And so I said,” Well you know Bill + +0:24:23.230,0:24:27.750 +this all sounds good what you know what what +is that’s going to make you so successful.” + +0:24:27.750,0:24:31.480 +He says, ”It's the gact that you know we're +not going to vendor lock in and you know it's going + +0:24:31.480,0:24:33.190 +to be running the UNIX and + +0:24:33.190,0:24:38.000 +if SUN doesn’t do it right they can always go to +another vendor and can get UNIX from them."" + +0:24:38.000,0:24:40.730 +and uh that’s that's going to be the story + +0:24:40.730,0:24:43.320 +And I said, “Well you know this is well and good but + +0:24:43.320,0:24:46.120 +let me explain about workstations” + +0:24:46.120,0:24:50.860 +Uh workstations is about the install base of applications +because people buy workstations because the applications + +0:24:50.860,0:24:52.700 + run on it + +0:24:52.700,0:24:56.810 +And uh you know this is company APPOLO that had + +0:24:56.810,0:25:01.220 +a 4 year head start on SUN and they've +got a lock on the applications + +0:25:01.220,0:25:04.860 +and people aren’t going to switch to SUN because +they need the applications that run on APPOLO. + +0:25:04.860,0:25:06.690 +So you know + +0:25:06.690,0:25:09.400 +I'm sure it's going to be interesting but +uh + +0:25:09.400,0:25:13.909 +you know I'm only a few months from finishing +my PhD and I know if I go to a SUN with you that + +0:25:13.909,0:25:15.249 +won't happen + +0:25:15.249,0:25:18.390 +So I’m gonna my PhD we'll see how SUN is doing in + +0:25:18.390,0:25:20.660 +over six or eight months and you know + +0:25:20.660,0:25:22.130 +We’ll evaluate"" + +0:25:22.130,0:25:26.640 +well of course it took me fourteen +fifteen months to finish my PhD and of + +0:25:26.640,0:25:27.740 +course by that time + +0:25:27.740,0:25:31.590 +SUN had burst onto the scene and didn't +have any particularly interesting stock options + +0:25:31.590,0:25:33.910 +left + +0:25:33.910,0:25:39.410 +So uh if you want it buy yourself a business perhaps +I'm not the one to ask + +0:25:39.410,0:25:41.410 +at any rate + +0:25:41.410,0:25:44.420 +Bill left without doing the VM system + +0:25:44.420,0:25:49.500 +Uh and he took 4.1c with him to get it +ported on to the the SUN hardware. + +0:25:49.500,0:25:51.300 +and + +0:25:51.300,0:25:54.240 +with this sort uh of hit + +0:25:54.240,0:25:55.910 +on the the main developer + +0:25:55.910,0:26:00.510 +uh we decided that rather than trying up to get +someone else up to speed in getting to the + +0:26:00.510,0:26:02.710 +VM done and so on. + +0:26:02.710,0:26:05.520 +That we would instead + +0:26:05.520,0:26:09.370 +just declare the first three pieces of this +4 piece contract + +0:26:09.370,0:26:11.580 +uh worth releasing + +0:26:11.580,0:26:14.020 +and so + +0:26:14.020,0:26:15.720 +uh around this time + +0:26:15.720,0:26:18.050 +this would be about June of 1983 + +0:26:18.050,0:26:20.620 +Uh Micheal Karl joins the group + +0:26:20.620,0:26:22.590 +essentially coming in uh + +0:26:22.590,0:26:25.500 +to replace in into the position that was + +0:26:25.500,0:26:27.119 +up formerly held by + +0:26:27.119,0:26:29.330 +Sam ..Sam uh out by + +0:26:29.330,0:26:32.000 +Bill as that sort of + +0:26:32.000,0:26:33.250 +Head of lead programmer + +0:26:33.250,0:26:36.510 +uh and + +0:26:36.510,0:26:40.490 +because Sam also Sam had also considered taking +that position but ultimately decided that + +0:26:40.490,0:26:44.610 +uh he he didn't want to do that he was gonna +to go off to do graphics at + +0:26:44.610,0:26:46.990 + Lucasfilm + +0:26:46.990,0:26:48.830 +and so + +0:26:48.830,0:26:51.030 +the uh + +0:26:51.030,0:26:52.980 +the upshot of this was that + +0:26:52.980,0:26:55.429 +4.2 got released + +0:26:55.429,0:26:57.920 +in about August of '83 + +0:26:57.920,0:27:01.549 +And uh + +0:27:01.549,0:27:05.640 +there’re uh about 1000 copies around remember for each +copy that goes out that’s like an institution gets + +0:27:05.640,0:27:07.429 +a copy and you know + +0:27:07.429,0:27:10.760 +spread across all their machines et cetera. + +0:27:10.760,0:27:14.470 +Uh there's another way of looking at it is you can +look at the number of licenses that AT&T + +0:27:14.470,0:27:16.400 + had outstanding + +0:27:16.400,0:27:21.420 +and how many licenses that Berkeley had + +0:27:21.420,0:27:24.310 +at the time we had shipped a thousand, there were +about twelve hundred + +0:27:24.310,0:27:27.450 +uh AT&T licenses. So it says that + +0:27:27.450,0:27:29.149 +fair number of people were running + +0:27:29.149,0:27:35.310 +Uh now at this point just for context AT&T is +releasing system 5 release 1 + +0:27:35.310,0:27:37.380 +So that is short of where they are. + +0:27:37.380,0:27:39.290 +Uh They had taken their file system and + +0:27:39.290,0:27:44.010 +upped the block size from 512 bytes + to 1K + +0:27:44.010,0:27:46.750 +Uh at any rate + +0:27:46.750,0:27:47.870 +BBN + +0:27:47.870,0:27:50.650 +was very upset that their TCP/IP + +0:27:50.650,0:27:53.340 +had not been incorporated. + +0:27:53.340,0:27:57.650 +and here we had released it but it was this like +prototype early version had been bastardized + +0:27:57.650,0:27:59.100 +by Bill + +0:27:59.100,0:28:04.290 +and like you know this isn't it that you know +DARPA paid and now you know have the shiny wonderful + +0:28:04.290,0:28:05.990 +TCP/IP stack. + +0:28:05.990,0:28:09.150 +You should be putting this in + +0:28:09.150,0:28:10.369 +and so + +0:28:10.369,0:28:15.310 +they began agitating with DARPA and saying +what you know Blah Blah get this to happen + +0:28:15.310,0:28:16.280 +and so + +0:28:16.280,0:28:20.950 +uh Michael Karels being the very deliberative +what a person he is. + +0:28:20.950,0:28:23.330 +Says Ok well + +0:28:23.330,0:28:27.780 +I'll take the TCP/IP code from BBN and I'll +take the TCP code from + +0:28:27.780,0:28:28.870 +that we have in 4.2 + +0:28:28.870,0:28:31.550 +and I'll evaluate both of them + +0:28:31.550,0:28:38.430 +and the evaluation involves you know +performance and maintain ability + +0:28:38.430,0:28:41.980 +and functionality and all these various +necessary things + +0:28:41.980,0:28:42.779 +and + +0:28:42.779,0:28:47.370 +He says, “ Well you know the TCP/IP the idea comes +from BBN and has some really good ideas + +0:28:47.370,0:28:49.039 +that we don't have so we'll just + +0:28:49.039,0:28:51.330 +Pick those up and drop it in our distribution + +0:28:51.330,0:28:55.510 +Uh but we don't really feel that their + +0:28:55.510,0:28:57.950 +code is uh you know + +0:28:57.950,0:29:01.090 +is the good place to start from. There's a lot of people +this point + +0:29:01.090,0:29:05.730 +that have worked with the Berkeley code and they know +that code base there have been a huge amount of enhancements + +0:29:05.730,0:29:07.570 +on it. + +0:29:07.570,0:29:10.880 +Uh This is wonderful book that's been written +all about it + +0:29:10.880,0:29:13.049 +So it is very well documented + +0:29:13.049,0:29:13.500 +and + +0:29:13.500,0:29:17.960 +it just doesn't seem to have really make sense +to + +0:29:17.960,0:29:22.460 +reset back to here and then have to get all +of those improvements changes et cetera. + +0:29:22.460,0:29:23.809 +Uh into this + +0:29:23.809,0:29:25.280 +particular new version. + +0:29:25.280,0:29:27.150 +uh it it + +0:29:27.150,0:29:30.440 +I finally graduated in '84 and joined +the project + +0:29:30.440,0:29:33.260 +uh foolishly that taking over as + +0:29:33.260,0:29:34.170 +it's technically but + +0:29:34.170,0:29:35.419 +is the lead + +0:29:35.419,0:29:38.960 +which meant that I got to deal with all of +the political bullshit while + +0:29:38.960,0:29:41.870 +Mike and others got to do lots of programming + +0:29:41.870,0:29:45.140 +So let that be a lesson to you that if you think +that they're trying to sweet talk + +0:29:45.140,0:29:50.409 +you and how great it is to be in-charge +of things. + +0:29:50.409,0:29:50.960 +Uh + +0:29:50.960,0:29:53.080 +At any rate we + +0:29:53.080,0:29:56.680 +continue debating back and forth about this +stuff with BBN. + +0:29:56.680,0:30:00.180 +We kept taking stuff and putting it into +And look you know that and say that ""We've taken that we've +we’ve taken that"" + +0:30:00.180,0:30:03.720 +“No No. You have to take the code +You got to take the code.” + +0:30:03.720,0:30:05.440 +So at any rate 4.3 + +0:30:05.440,0:30:07.750 +was really designed + +0:30:07.750,0:30:12.340 +much like 4.1 in the sense of consolidating +what we already had. So throughout the eh + +0:30:12.340,0:30:17.350 +the even-numbered releases from Berkeley had +a lot of new functionality and odd releases + +0:30:17.350,0:30:19.930 +tried to really get the performance up + +0:30:19.930,0:30:24.170 +Uh we we're always striving to make sure that +things worked when the released it, but we didn't + +0:30:24.170,0:30:24.830 +always + +0:30:24.830,0:30:27.169 +strive to make sure they ran optimally. + +0:30:27.169,0:30:30.090 +Uh figuring that it was better to sort of +tune things + +0:30:30.090,0:30:33.090 +after the fact once you had a electrode working +in right way. + +0:30:33.090,0:30:37.510 +So anyway we made an announcement +of 4.3 + +0:30:37.510,0:30:39.379 +Uh actually at the June 1985 + +0:30:39.379,0:30:43.510 +UNIX conference, so two years basically have +gone by here. + +0:30:43.510,0:30:44.510 + and + +0:30:44.510,0:30:45.620 +uh + +0:30:45.620,0:30:46.470 +BBN + +0:30:46.470,0:30:50.620 +you know immediately objects that we have +not taken their code + +0:30:50.620,0:30:51.110 +and + +0:30:51.110,0:30:52.970 +uh they go to DARPA + +0:30:52.970,0:30:57.940 +and they said, “Look ,you paid BBN +how many millions of dollars, more than you paid to + +0:30:57.940,0:30:59.719 +Berkeley to do this code + +0:30:59.719,0:31:00.730 +you're gonna uh you know +0:31:00.730,0:31:02.900 +and now they're not taking it + +0:31:02.900,0:31:04.330 +and and you know + +0:31:04.330,0:31:06.360 +you got look like ninnies or something.” I +don't know + +0:31:06.360,0:31:08.390 +I don’t know what they’ve +said I wasn't there + +0:31:08.390,0:31:10.179 +But at any rate + +0:31:10.179,0:31:13.280 +DARPA + +0:31:13.280,0:31:16.600 +representative shows up in my office + +0:31:16.600,0:31:18.220 +and + +0:31:18.220,0:31:19.240 +Uh very calmly + +0:31:19.240,0:31:21.090 +uh explains that. + +0:31:21.090,0:31:22.100 +You know + +0:31:22.100,0:31:27.940 +the agreement was that BBN was going to do the +TCP/IP code and + +0:31:27.940,0:31:30.240 +Uh Berkeley was to do the interface + +0:31:30.240,0:31:31.070 +and + +0:31:31.070,0:31:33.049 +This is this is the way the world and + +0:31:33.049,0:31:36.769 +you know we appreciate that you know you’ve +done other stuff and it was it was great work + +0:31:36.769,0:31:38.670 +but + +0:31:38.670,0:31:42.460 +they are funding us and this is the way it is. + +0:31:42.460,0:31:44.120 +And my quarrel is like + +0:31:44.120,0:31:48.370 +uh you know Mike Karels is arguing with them and look, +you know we've taken this and we’ve + +0:31:48.370,0:31:52.160 +put over here, all the reasons that I gave earlier + +0:31:52.160,0:31:55.410 +and you know the guy finally at the end just +says, + +0:31:55.410,0:31:57.679 +“ No, you don't understand. + +0:31:57.679,0:31:58.549 +We're in charge + +0:31:58.549,0:32:02.500 +this is what you doing. Goodbye!"" + +0:32:02.500,0:32:04.960 +And you know + +0:32:04.960,0:32:08.000 +it just doesn't work very well at Berkeley +just come in and say, + +0:32:08.000,0:32:10.730 +“This is what you're going to do.” + +0:32:10.730,0:32:13.000 +The free speech movement comes to mind. + +0:32:13.000,0:32:15.970 +Uh so + +0:32:15.970,0:32:17.970 +You know Mike in particularly just goes completely BANANAS. + +0:32:17.970,0:32:21.190 +Goes off, “Aggarh” + +0:32:21.190,0:32:23.370 +and then fires off + +0:32:23.370,0:32:26.570 +unannounced to me fires off the thing +that the DARPA uh + +0:32:26.570,0:32:30.050 +which if I'd been would keep in shut +because I would not let them blame SUN + +0:32:30.050,0:32:31.690 +At any rate + +0:32:31.690,0:32:35.350 +I mean I only see it because DARPA guy +sent it back to me and says you need to keep + +0:32:35.350,0:32:38.720 +your staff under control. + +0:32:38.720,0:32:39.650 +Uh so + +0:32:39.650,0:32:44.130 +at any rate um you know +0:32:44.130,0:32:46.090 +Mike just says, “I'm not doing it. + +0:32:46.090,0:32:49.510 +They can't make me, I'll just leave.” + +0:32:49.510,0:32:51.640 + You know so you know + +0:32:51.640,0:32:56.450 +You tell them that they can either this way or +they can have that way or we won’t release it. Um + +0:32:56.450,0:32:57.619 +Agrh . um + +0:32:57.619,0:33:00.330 +Come on there’s got to be some compromise +we can do here. +0:33:00.330,0:33:01.730 +So + +0:33:01.730,0:33:05.360 +Finally uh I say, “Okay let’s I + +0:33:05.360,0:33:07.820 +I propose that we have a bake-off. + +0:33:07.820,0:33:13.150 +So we will uh we we had already incorporated +into there was big switch so you could compile ot + +0:33:13.150,0:33:14.190 + way or the other + +0:33:14.190,0:33:15.609 +So my first proposal was + +0:33:15.609,0:33:16.910 +we will just ship it + +0:33:16.910,0:33:20.820 +with a compile time options. +So you can compile for BBN code +or you could compile it for Berkeley code. + +0:33:20.820,0:33:21.640 +Even BBN + +0:33:21.640,0:33:24.799 +Even DARPA could see +this was a no-win + +0:33:24.799,0:33:27.950 +because you’ll end up with some +people running one some people running the + +0:33:27.950,0:33:30.549 +other, this won’t work smoothly. + +0:33:30.549,0:33:31.539 + This was just not + +0:33:31.539,0:33:33.550 +where they want it to go. + +0:33:33.550,0:33:35.409 +and so we said, “Okay well + +0:33:35.409,0:33:38.480 +switch is there it's really easy to compile +the two different systems. + +0:33:38.480,0:33:41.830 +Let’s have a bake-off + +0:33:41.830,0:33:43.649 +you know we’ll compile + +0:33:43.649,0:33:46.549 +with one and compiler with other one and have bunch of +tests + +0:33:46.549,0:33:49.059 +and you know will decide which one is better. + +0:33:49.059,0:33:50.610 +Well of course we're not going to let + +0:33:50.610,0:33:55.429 +Berkeley do the testing because they'd be biased +for Berkeley. We’re not going to let BBN to do the testing + +0:33:55.429,0:33:57.640 +because they’ll be biased for BBN. + +0:33:57.640,0:33:59.720 +so we’ve to find a + +0:33:59.720,0:34:01.210 +uh + +0:34:01.210,0:34:03.480 +a third party and + +0:34:03.480,0:34:08.440 +uh the third party that DARPA actually proposes +is a guy named Mike Moose at the Ballistics + +0:34:08.440,0:34:10.979 +Research Laboratory, just up the road from +here and + +0:34:10.979,0:34:12.929 +Uh yeah + +0:34:12.929,0:34:14.509 +little known to + +0:34:14.509,0:34:18.659 +most of the people is that we actually knew Mike Moose +very well because we had interacted a whole lot with him. + +0:34:18.659,0:34:19.910 +working on TCP/IP + +0:34:19.910,0:34:23.659 +so + +0:34:23.659,0:34:25.059 +we’re like uhm yah it’s ok with us. + +0:34:25.059,0:34:27.869 +And you know he was in military you know + +0:34:27.869,0:34:31.139 +chain of command and BBN muck-a-mucks +new ones so + +0:34:31.139,0:34:33.589 +they’re fine with it + +0:34:33.589,0:34:34.370 +So ok great so + +0:34:34.370,0:34:36.469 +you know off we ship that tape and + +0:34:36.469,0:34:40.749 +He does not tell us what tests he is gonna run +so neither side gets to + +0:34:40.749,0:34:44.720 +do anything other than make some suggestions +general suggestions so + +0:34:44.720,0:34:48.779 +Of course we suggest the 3 port performance +test could be important + +0:34:48.779,0:34:51.659 +and the BBN suggests that + +0:34:51.659,0:34:55.320 +uh how well it works in the face of large +package + +0:34:55.320,0:34:57.049 +rate losses is important + +0:34:57.049,0:35:01.430 +because of course the military you know will drop +a nuclear bomb on Chicago we want to make sure + +0:35:01.430,0:35:03.589 +it drops down through Dallas + +0:35:03.589,0:35:07.320 +At any rate Mike Moose sets up these the systems +and + +0:35:07.320,0:35:09.150 +runs a bunch of tests + +0:35:09.150,0:35:12.179 +and of course without talking to either side + +0:35:12.179,0:35:16.950 +and so we're sort of pins and needles +because you know several weeks goes by + +0:35:16.950,0:35:18.550 +and finally duh + +0:35:18.550,0:35:19.589 +his report lands. + +0:35:19.589,0:35:23.029 +You know humh comes in the mail here's his report + +0:35:23.029,0:35:26.269 +And the first thing you’d do is +to flip to the last page to see what the conclusion + +0:35:26.269,0:35:29.479 +is but he knew that's what we're going to +do so he hid the conclusion somewhere in the + +0:35:29.479,0:35:31.660 +middle + +0:35:31.660,0:35:33.369 +Forcing you to read the entire thing + +0:35:33.369,0:35:36.229 +but it's a it's a very interesting week because + +0:35:36.229,0:35:39.910 +in terms of the throughput +as expected we did better + +0:35:39.910,0:35:40.840 +Uh what + +0:35:40.840,0:35:44.929 +that he introduced a thing where it would +randomly drop about every + +0:35:44.929,0:35:46.769 +fourth package + +0:35:46.769,0:35:47.799 +and + +0:35:47.799,0:35:49.390 +under this scenario + +0:35:49.390,0:35:50.919 +he says uh + +0:35:50.919,0:35:52.420 +the BBN code + +0:35:52.420,0:35:56.820 +Jumps out to an early start getting a lot +more data through in the face of high + +0:35:56.820,0:35:59.039 +packet loss uh + +0:35:59.039,0:36:03.099 +but but the Berkeley part managers to catch up +while the BBN machine reboots. + +0:36:03.099,0:36:07.719 +Uh + +0:36:07.719,0:36:12.109 +Ultimately resulting in the conclusion +that even in the face of the packet + +0:36:12.109,0:36:14.739 +loss, Berkeley code seems to + +0:36:14.739,0:36:16.349 +do a little better. + +0:36:16.349,0:36:17.739 +And uh so his + +0:36:17.739,0:36:22.119 +conclusion is that it should continue to ship +with the BSD code. + +0:36:22.119,0:36:25.519 +Uh so with this result in hand + +0:36:25.519,0:36:28.749 +we are authorized by DARPA to do the release + +0:36:28.749,0:36:32.189 +and we finally managed to release + +0:36:32.189,0:36:35.829 +4.3 in June of + +0:36:35.829,0:36:38.420 +1986 + +0:36:38.420,0:36:39.599 +so + +0:36:39.599,0:36:41.519 +at this point uh + +0:36:41.519,0:36:42.199 +At this point + +0:36:42.199,0:36:45.389 +the new TCP code is gone out + +0:36:45.389,0:36:47.189 +or you know that + +0:36:47.189,0:36:52.289 +The revised BSD TCP code has gone out + +0:36:52.289,0:36:54.689 +[with or without subnets] +With or without uh..subnets + +0:36:54.689,0:36:56.150 +uh that had + +0:36:56.150,0:36:59.809 +well the the class ABC type of subnets +not + +0:36:59.809,0:37:01.319 +not the uh + +0:37:01.319,0:37:02.910 +the sider stuff + +0:37:02.910,0:37:09.910 +sider came along + +0:37:16.329,0:37:17.299 +okay + +0:37:17.299,0:37:19.409 +uh at any rate uh + +0:37:19.409,0:37:23.719 +now we start accelerating the story a bit again +because I have to finish in + +0:37:23.719,0:37:25.559 +eight minutes + +0:37:25.559,0:37:27.540 +so at this point + +0:37:27.540,0:37:28.260 +Keith Bostic + +0:37:28.260,0:37:29.209 +comes to + +0:37:29.209,0:37:30.469 +comes to Berkeley + +0:37:30.469,0:37:34.059 +uh he had been at Seismo which some of you +may know + +0:37:34.059,0:37:37.329 +and this is in the fall of 1986 so + +0:37:37.329,0:37:40.219 +we've released 4.3 we’re just +getting cranked up + +0:37:40.219,0:37:43.049 +to work on 4.4 um + +0:37:43.049,0:37:45.259 +remember that VM thing + +0:37:45.259,0:37:48.039 +and I think by this time there is this other little + +0:37:48.039,0:37:50.329 +protocol MFS you may’ve heard of it + +0:37:50.329,0:37:54.839 +and it was felt that we ought to have that +as well + +0:37:54.839,0:37:57.150 +uh so bring Keith Bostick on board and + +0:37:57.150,0:37:59.560 +Uh one of his of requirements for coming + +0:37:59.560,0:38:03.420 +is that we have to agree to allow him to finish +that port of + +0:38:03.420,0:38:06.539 +2.11 to the PDP 11 uh + +0:38:06.539,0:38:08.489 +and uh you know + +0:38:08.489,0:38:12.470 +it's it's a real challenge to get a kernel which +at that point was about + +0:38:12.470,0:38:17.239 +just under 200 kilobyte of text +to fit on to a machine that has a maximum + +0:38:17.239,0:38:20.299 +amount of program space of 64 kilobytes + +0:38:20.299,0:38:23.450 + because what you have to do is to +break it into overlays + +0:38:23.450,0:38:27.789 +and then you map in the overly and + the granularity of mapping is 4k + +0:38:27.789,0:38:28.530 +okay + +0:38:28.530,0:38:33.079 +So there's only eight pieces that you +can remap uh + +0:38:33.079,0:38:37.519 +Mike and my attitude was that’s an +incredibly challenging problem and it's + +0:38:37.519,0:38:41.469 +probably you know intellectually very stimulating +but there's no way how we would do that. + +0:38:41.469,0:38:43.139 +Well if you want to do it you know + +0:38:43.139,0:38:45.849 +by all means you can do that in your +spare time + +0:38:45.849,0:38:48.309 +uh there is only three jobs you need to do + +0:38:48.309,0:38:51.540 +uh one is uh you need to be to answer the +phone + +0:38:51.540,0:38:55.409 +uh first things other than distributions like +technical questions + +0:38:55.409,0:38:58.149 +and answer the incoming email stream for technical +questions. + +0:38:58.149,0:39:03.900 +Uh do some programming and in in your spare +time you can work on the PDP 11 + +0:39:03.900,0:39:04.850 +and no he was + +0:39:04.850,0:39:08.669 +had no other support for the phones and the +email + +0:39:08.669,0:39:09.460 +and we had + +0:39:09.460,0:39:12.209 +you know by this time about two thousand + +0:39:12.209,0:39:14.749 +uh distributions + +0:39:14.749,0:39:19.730 +So at any rate Keith did in fact finally +finish the PDP 11. + +0:39:19.730,0:39:20.779 +Uh port uh + +0:39:20.779,0:39:23.029 +got 2.11 out of the door + +0:39:23.029,0:39:26.960 +and we have a party to celebrate the fact +that he had completed this. + +0:39:26.960,0:39:29.850 +and part of the party was opening the window + +0:39:29.850,0:39:31.240 +on the fourth floor + +0:39:31.240,0:39:33.519 +of our uh building + +0:39:33.519,0:39:38.849 +and taking his PDP 11 and +ceremoniously dropping out of the window to the cement + +0:39:38.849,0:39:40.979 +sidewalk four stories below + +0:39:40.979,0:39:43.100 +to ensure that he would never + +0:39:43.100,0:39:44.749 +work on it again. + +0:39:44.749,0:39:50.409 +This was him doing this not us. + +0:39:50.409,0:39:51.849 +At any rate uh + +0:39:51.849,0:39:53.930 +Keith of course being in the front line + +0:39:53.930,0:39:55.919 +uh support + +0:39:55.919,0:39:59.199 +Uh had a lot of feedback from various users uh + +0:39:59.199,0:40:00.509 +in particular + +0:40:00.509,0:40:03.559 +there were a number of vendors that were + +0:40:03.559,0:40:05.159 +trying to build + +0:40:05.159,0:40:05.930 +uh +0:40:05.930,0:40:08.560 +These network cards you could plug into a PC + +0:40:08.560,0:40:10.999 +that would provide TCP/IP networking + +0:40:10.999,0:40:16.180 +and of course the PC it was way too feeble +to actually run the code in the PC itself + +0:40:16.180,0:40:17.539 +so they had a outward + + +0:40:17.539,0:40:18.799 +processor on the card + +0:40:18.799,0:40:22.039 +and they’d put the TCP/IP in there +that would sort of look + +0:40:22.039,0:40:23.200 +uh like a + +0:40:23.200,0:40:26.779 +file or some kind of device on +the PC and + +0:40:26.779,0:40:28.900 +so they would just open this thing + +0:40:28.900,0:40:30.709 +get connected to the network + +0:40:30.709,0:40:34.939 +and So of course they wanted TCP/IP +code from Berkeley along with the important + +0:40:34.939,0:40:38.210 +utilities like O or Rlogin and + +0:40:38.210,0:40:38.659 +RCP uh + +0:40:38.659,0:40:42.709 +by that time finally FTP and TELNET uh + +0:40:42.709,0:40:45.189 +and + +0:40:45.189,0:40:48.909 +they didn't, our standard thing was +just buy the distribution and take whatever + +0:40:48.909,0:40:50.100 +they need to get out of it. + +0:40:50.100,0:40:52.769 +But that meant they had to get an AT&T license. + +0:40:52.769,0:40:57.680 +By the late 80’s the AT&T +licenses or up to like a quarter million dollars + +0:40:57.680,0:40:59.379 +and when you're in a little + +0:40:59.379,0:41:03.939 +commodity PC business a quarter million dollar +cost just to get the software before you do + +0:41:03.939,0:41:04.619 +anything with it + +0:41:04.619,0:41:06.669 +was just a non-starter for them. + +0:41:06.669,0:41:09.850 +And so we're getting requests for just + +0:41:09.850,0:41:13.199 +that TCP/IP code and associated utilities. + +0:41:13.199,0:41:17.479 +clearly since it all been developed in Berkeley +was none of that in the original version 7 UNIX + +0:41:17.479,0:41:19.910 +that we started from uh + +0:41:19.910,0:41:22.099 +AT&T couldn’t lay any claim to that. + +0:41:22.099,0:41:26.829 +And so we talked to the lawyers at Berkeley and +they’re like this “How can we make money on this?” uh + +0:41:26.829,0:41:29.249 +because that's what they were paid to say and + +0:41:29.249,0:41:33.089 +so we pointed out to them that it had been developed +under a government contract and we showed them + +0:41:33.089,0:41:36.630 +the government contract saying that you know +this stuff done in this contract has to be + +0:41:36.630,0:41:37.229 +made + +0:41:37.229,0:41:40.769 +available to the public at reasonable cost or +whatever it said + +0:41:40.769,0:41:41.380 +and uh + +0:41:41.380,0:41:42.100 +so + +0:41:42.100,0:41:45.669 +it didn’t really say that but be convinced the +lawyers that it did + +0:41:45.669,0:41:46.359 +and so + +0:41:46.359,0:41:48.369 +They agreed to lead us to pull out + +0:41:48.369,0:41:50.889 +this chunk of Berkeley code and we + +0:41:50.889,0:41:51.859 +released that + +0:41:51.859,0:41:52.579 +under + +0:41:52.579,0:41:54.980 +this new license that the lawyers cooked up + +0:41:54.980,0:41:59.299 +uh which is the one that we today think of +as the BSD license. + +0:41:59.299,0:42:03.569 +And of course our goal was to the absolutely +as + +0:42:03.569,0:42:07.979 +free as you know free to give away as we could possibly +could the really only thing you had to do was to give due credit + +0:42:07.979,0:42:08.789 +to Berkeley. + +0:42:08.789,0:42:12.140 +Uh so this was networking release 1. + +0:42:12.140,0:42:14.019 +and uh it was a wild success + +0:42:14.019,0:42:17.519 +uh the amazing thing was that we sold at 100 +we could + +0:42:17.519,0:42:20.249 +Buy it from Berkeley for 1000 dollars + +0:42:20.249,0:42:24.169 +or you could just downloaded it off UUNet +for free + +0:42:24.169,0:42:28.209 +and yet a thousand people chose to pay a 1000 +dollars at Berkeley to get it. + +0:42:28.209,0:42:30.220 +and the only difference was that you got + +0:42:30.220,0:42:33.660 +to take a 9 track tape which many people didn't +have any way of reading + +0:42:33.660,0:42:34.100 +and + +0:42:34.100,0:42:35.719 +uh + +0:42:35.719,0:42:39.869 +that a piece of paper signed by the Berkeley +lawyers + +0:42:39.869,0:42:42.289 +essentially saying “Yes you can use this” + +0:42:42.289,0:42:44.939 +and that's what they were paying a 1000 dollars for + +0:42:44.939,0:42:48.239 +and the lawyers of course got paid something +like a hundred dollars for every one of + +0:42:48.239,0:42:50.790 +these that they signed because of the overhead + +0:42:50.790,0:42:51.650 +et cetera + +0:42:51.650,0:42:54.349 +they thought this was the cat's pyjamas + +0:42:54.349,0:42:57.499 +you know maybe the campus was making a lot of +money but their office was doing just fine Thank + +0:42:57.499,0:42:59.009 +you very much! + +0:42:59.009,0:43:01.409 +so + +0:43:01.409,0:43:03.420 +Uh at any rate oh + +0:43:03.420,0:43:04.440 +That one was + +0:43:04.440,0:43:06.059 +widely successful + +0:43:06.059,0:43:08.309 +and so there was pressure and Keith + +0:43:08.309,0:43:12.369 +would come inside uh someone today wants VI or somebody +wants this is or somebody + +0:43:12.369,0:43:13.589 +wants that + +0:43:13.589,0:43:16.289 +and you know we really ought to do this and uh + +0:43:16.289,0:43:19.440 +you know how about figuring out other parts of the +kernel. + +0:43:19.440,0:43:20.559 +Mike and I would + +0:43:20.559,0:43:24.929 +Michael and I would look at the each other we +look at Keith it’s like yah yah all right. + +0:43:24.929,0:43:28.989 +Uh what you figured out you know I mean +You know all entire of the C library and all + +0:43:28.989,0:43:29.819 +this and that +0:43:29.819,0:43:31.760 +so we got to the conferences and + +0:43:31.760,0:43:32.859 +Keith is + +0:43:32.859,0:43:36.809 +putting up you know these huge list of utilities +you’ll rewrite this utility and get your name + +0:43:36.809,0:43:37.729 +in lights. + +0:43:37.729,0:43:40.869 +and uh you know and uh + +0:43:40.869,0:43:43.939 +So he would get this stuff sent in to him + +0:43:43.939,0:43:48.529 +and he would almost always just take a +bash it in Keith normal form which + +0:43:48.529,0:43:54.139 +usually did look a lot like what he got but +he started from clean so that + +0:43:54.139,0:43:55.119 +Was uh + +0:43:55.119,0:43:59.229 +you know good and you know it was sort of easy + you know that first someone sends in cat in. + +0:43:59.229,0:44:01.450 +you know someone like really go ho hog and + +0:44:01.450,0:44:04.849 +does that all options to LS + +0:44:04.849,0:44:07.629 +this is in the days before GNU software +you know + +0:44:07.629,0:44:10.119 +lots of options were invoked + +0:44:10.119,0:44:13.079 +Uh and then + +0:44:13.079,0:44:15.239 +one day uh + +0:44:15.239,0:44:16.759 +Keith comes into to report + +0:44:16.759,0:44:18.470 +that somebody is redoing + +0:44:18.470,0:44:20.449 +the TRaw family + +0:44:20.449,0:44:24.099 +and this is when Mike and I look at each +sort of gulp + +0:44:24.099,0:44:28.190 +because the next question out of +Keith’s mouth is ""How’s that kernel coming guys?"" + +0:44:28.190,0:44:32.299 +We can't go to the UNIX conferences and say rewrite +the kernel to get your name in lights you know + +0:44:32.299,0:44:36.400 +so we actually have to like go through and +figure out what's + +0:44:36.400,0:44:39.130 +Berkeley and what's not Berkeley and + +0:44:39.130,0:44:40.499 +segregate stuff out uh + +0:44:40.499,0:44:43.459 +A long story but eventually we get + +0:44:43.459,0:44:45.599 +something we feel that was clean + +0:44:45.599,0:44:47.929 +and uh so + +0:44:47.929,0:44:51.699 +we go back to the lawyers and say we +got this little update to the networking tape + +0:44:51.699,0:44:52.989 +that we'd like to do + +0:44:52.989,0:44:59.079 +uh that uh we're going to call it networking +release 2 Net 2 and + +0:44:59.079,0:45:00.470 +so actually + +0:45:00.470,0:45:04.599 +we do sort of come on and explain it is practically +the entire system and + +0:45:04.599,0:45:07.759 +lots of stuff happens but they finally sign +off on it + +0:45:07.759,0:45:09.469 +and we put it out there + +0:45:09.469,0:45:14.519 +and it's out there for good half a year before +BSDi + +0:45:14.519,0:45:17.499 +sort of fills in the missing bits and starts selling +it + +0:45:17.499,0:45:19.650 +they you know + +0:45:19.650,0:45:21.439 +engineers are + +0:45:21.439,0:45:23.230 +not really that good at + +0:45:23.230,0:45:25.419 +marketing and so + +0:45:25.419,0:45:28.859 +in particular they think that the sort of +cutesy things like + +0:45:28.859,0:45:32.729 +having your phone number being 1800 +itsUNIX + +0:45:32.729,0:45:38.759 +and adds to save a ninety nine percent of the +price of a AT&T charges for source code + +0:45:38.759,0:45:40.439 +Uh are cute + +0:45:40.439,0:45:41.670 +But it really irritates + +0:45:41.670,0:45:44.759 +the piss out of AT&T + +0:45:44.759,0:45:46.270 +And so they sue us + +0:45:46.270,0:45:49.319 +imagine that why they sue BSDi + +0:45:49.319,0:45:53.509 +and BSDi is what added only these 6 +files and you know all the rest came from Berkeley. + +0:45:53.509,0:45:57.129 +So we would be happy to talk about any of +the six files you’d like to + +0:45:57.129,0:45:59.530 +uh but otherwise you know forget it + +0:45:59.530,0:46:01.009 +and the judge agrees + +0:46:01.009,0:46:04.539 +because they don't have any problem about +those six files and so + +0:46:04.539,0:46:07.769 +there's no choice but to sue the University + +0:46:07.769,0:46:09.259 +and uh + +0:46:09.259,0:46:11.160 +that’s another long story in which I did + +0:46:11.160,0:46:12.629 +become an expert witness + +0:46:12.629,0:46:14.390 +which is actually proven + +0:46:14.390,0:46:18.809 +to be a relatively lucrative thing because +being an expert witness + +0:46:18.809,0:46:20.039 +it's something that you + +0:46:20.039,0:46:24.669 +it's really hard to break into that because +one wants to hire someone hasn't done it before + +0:46:24.669,0:46:28.359 +and it turns out that it really didn't +matter how much you know, do + +0:46:28.359,0:46:33.829 +you have a PhD because if you have PhD by definition +you must know you're talking about + +0:46:33.829,0:46:34.859 +I'm not making this up. + +0:46:34.859,0:46:36.219 +and number two is + +0:46:36.219,0:46:40.839 +How you speak in public then you know especially +people harassing you, well I've had ten thousand + +0:46:40.839,0:46:41.830 +students you know + +0:46:41.830,0:46:45.309 +there's not a question that a graduate student +has never asked me that I hadn't dealed with, + +0:46:45.309,0:46:51.309 +and lawyer is not up to a graduate student. + +0:46:51.309,0:46:53.219 +So I did pretty well that score too + +0:46:53.219,0:46:55.129 +uh and so + +0:46:55.129,0:46:57.599 +because I that they were forced to use me + in this case. + +0:46:57.599,0:47:00.080 +And but I did ran after then + +0:47:00.080,0:47:03.879 +the lawyer the outside lawyer that the Berkeley +got me to do some other stuff and + +0:47:03.879,0:47:08.800 +one thing leads to another so today I am uh +an expert in the + +0:47:08.800,0:47:12.989 +network compliance vs SUN microsystem +lawsuit vs ZFS lawsuit + +0:47:12.989,0:47:14.439 +which is uh + +0:47:14.439,0:47:17.739 +an interesting story that you can ask over +beer + +0:47:17.739,0:47:18.679 +At any rate + +0:47:18.679,0:47:21.629 +we eventually win the the lawsuit + +0:47:21.629,0:47:26.089 +And uh and we don't win it we settle the +lawsuit excuse me I have to use proper terminology + +0:47:26.089,0:47:27.029 +here. + +0:47:27.029,0:47:28.750 +We have to agree + +0:47:28.750,0:47:32.999 +that networking release 2 did in fact have +things in it that infringed + +0:47:32.999,0:47:34.490 +uh and + +0:47:34.490,0:47:35.999 +however + +0:47:35.999,0:47:40.329 +Uh the things that infringe were sufficiently +minor that with some + +0:47:40.329,0:47:40.730 +changes + +0:47:40.730,0:47:42.039 +uh we can + +0:47:42.039,0:47:43.370 +get something that's clean + +0:47:43.370,0:47:45.959 + we agreed that we will re-release + +0:47:45.959,0:47:50.890 +we'd do new release that has all these +changes made in it as 4.4 BSD lite. + +0:47:50.890,0:47:54.449 +So it’s 4.4 BSD which is the whole +thing complete with AT&T stuff and the + +0:47:54.449,0:47:56.059 +AT&T licenses + +0:47:56.059,0:47:57.580 +and for 4.4 BSD lite + +0:47:57.580,0:48:00.979 +which is got the stuff, the AT&T stuff stripped out +of it. + +0:48:00.979,0:48:04.869 +And AT&T really thought they’d won big-time +because all these people had been using the + +0:48:04.869,0:48:05.509 +Net 2. + +0:48:05.509,0:48:08.909 +They're going to be forced to throw it out +because we’re not allowed to tell what the changes + +0:48:08.909,0:48:09.640 +were + +0:48:09.640,0:48:12.729 +and have to start all over again + +0:48:12.729,0:48:14.929 +from lite + +0:48:14.929,0:48:19.339 +And the Bill Jolitz in particular just never did that +and so that's why this distribution got hammered + +0:48:19.339,0:48:22.150 +FreeBSD had to do it + +0:48:22.150,0:48:24.329 +the netBSD folks had to do it uh + +0:48:24.329,0:48:26.289 +and it was a huge amount of work but they +did it + +0:48:26.289,0:48:30.489 +and it was great because we got two more years +worth of our technology out + +0:48:30.489,0:48:32.959 +at any rate, that, + +0:48:32.959,0:48:36.289 +we actually did one more incremental sort of the +release, like 2 + +0:48:36.289,0:48:39.510 +I would just fix some of the most egregious +bugs + +0:48:39.510,0:48:43.309 +that’s what all happened was we got all these people +who bought this BSD lite licenses + +0:48:43.309,0:48:46.519 +Because they wanted to pay the +thousand dollars to get the piece of paper + +0:48:46.519,0:48:46.940 +saying + +0:48:46.940,0:48:48.899 +and this one's fine too + +0:48:48.899,0:48:49.640 +and uh + +0:48:49.640,0:48:52.819 +so we had a chunk of money and so Keith +and I just sort of worked + +0:48:52.819,0:48:54.689 +through that money + +0:48:54.689,0:48:56.329 +and it's just spend it + +0:48:56.329,0:48:58.640 +essentially doing bug fixes and stuff on lite + +0:48:58.640,0:49:00.839 +And finally released when the money ran out then + +0:49:00.839,0:49:03.769 +we left the university and that was the last release + +0:49:03.769,0:49:05.679 +Uh from from Berkeley + +0:49:05.679,0:49:12.679 +and that is the end of my story +So any questions? +Uh .. Yes + + +0:49:20.069,0:49:21.929 +Sorry.. uh VM system + + +0:49:21.929,0:49:25.359 +VM system yes. + +0:49:25.359,0:49:30.579 +So the VM system was actually sort of an interesting +story uh.. + +0:49:30.579,0:49:33.759 +Actually both VM and NFS were interesting +Stories. + +0:49:33.759,0:49:36.890 +The VM system uh + +0:49:36.890,0:49:41.160 +one of our attitudes was that why always come +up with a good idea when you can steal a better + +0:49:41.160,0:49:42.759 +one and + +0:49:42.759,0:49:46.369 +you know it's just a lot of work to write +a VM system this uh + +0:49:46.369,0:49:47.579 +you know that BSD folks + +0:49:47.579,0:49:48.599 +clearly know + +0:49:48.599,0:49:49.530 +and + +0:49:49.530,0:49:50.889 +uh so + +0:49:50.889,0:49:54.539 +we looked around to see if there's anything +that we could use + +0:49:54.539,0:49:57.969 +rather than have to write it from the scratch +ourselves, and + +0:49:57.969,0:50:01.689 + evaluated two different things. One +was + +0:50:01.689,0:50:04.759 +uh the the stuff that SUN had done + +0:50:04.759,0:50:10.109 +and the other was the stuff that had been done at +Carnegie Mellon under the Mach thing and + +0:50:10.109,0:50:14.069 +Uh they've done a whole lot of very good work +on the VM system we didn't really agree with + +0:50:14.069,0:50:18.179 +the micro-kernel principle but we liked +the VM system + +0:50:18.179,0:50:21.589 +and so we talked to SUN about potentially + +0:50:21.589,0:50:23.479 +Contributing uh + +0:50:23.479,0:50:27.159 +chunk of their VM system we talked to them +about contributing a chunk of their + +0:50:27.159,0:50:27.949 +VFS stuff. +0:50:27.949,0:50:31.649 +We knew that we couldn’t get NFS from them but + +0:50:31.649,0:50:32.659 +they they you know + +0:50:32.659,0:50:36.809 +the folks at SUN sorts of in engineering were too +enthusiastic about it and percolated it all the way + +0:50:36.809,0:50:39.459 +up to the Scott McNealy, he was the CEO at that +time + +0:50:39.459,0:50:42.979 +and even Scott McNealy was pretty enthusiastic about +giving the stuff to Berkeley. + +0:50:42.979,0:50:45.239 +you know as long as SUN would get credit for +it + +0:50:45.239,0:50:47.140 +And uh + +0:50:47.140,0:50:51.549 +so it really got to the point where it +is needed to be signed off by the the SUN + +0:50:51.549,0:50:52.429 +lawyers + +0:50:52.429,0:50:58.919 +and so they sent it off to them and after that SUN +lawyers came back and said, + +0:50:58.919,0:51:03.199 +“Well you know your stock holders could accuse you of +giving away company property + +0:51:03.199,0:51:07.309 +and and sue you in court and we really don't +recommend that you do this.” + +0:51:07.309,0:51:08.380 +and so + +0:51:08.380,0:51:09.999 +that the very last minute it was .. + +0:51:09.999,0:51:12.779 +We couldn't get any of that stuff from SUN. + +0:51:12.779,0:51:14.699 +So we ended up + +0:51:14.699,0:51:17.859 +adopting this stuff from Mach +the Mach VM system + +0:51:17.859,0:51:18.699 +and + +0:51:18.699,0:51:22.369 +so it fell to myself to take that and + +0:51:22.369,0:51:24.669 +figure out essentially how to plug it in. + +0:51:24.669,0:51:27.140 +and the problem was the old VM system + +0:51:27.140,0:51:32.259 +was very portable provided you were porting +into something that looked a lot like a VAX. + +0:51:32.259,0:51:37.429 +because it came down to uh you know the that the +basic page data structure was the VAX + +0:51:37.429,0:51:38.979 +page data structure. + +0:51:38.979,0:51:40.590 +and so when people would port it. + +0:51:40.590,0:51:44.440 +If they have something with the page data structure +to look different they wouldn't take it from + +0:51:44.440,0:51:48.360 +the VAX and they'd shuffle the bits around and put +it in the right order and then dropped it into + +0:51:48.360,0:51:50.829 +the whatever that architecture was + +0:51:50.829,0:51:55.509 +a page table. So it worked pretty well for porting +into the Motorola uh because the + +0:51:55.509,0:51:57.959 +MMU network was a lot like the VAX +uh + +0:51:57.959,0:52:01.899 +and some other machines but in other ways it +just really didn't cut it at all + +0:52:01.899,0:52:06.130 +whereas the VM had been done by +the the folks at CMU. + +0:52:06.130,0:52:09.389 +In Mach was uh you know + +0:52:09.389,0:52:11.059 +very elegantly designed + +0:52:11.059,0:52:13.150 +uh and in fact + +0:52:13.150,0:52:14.740 +it had in some ways + +0:52:14.740,0:52:18.980 +too many bells and whistles and too many options +and because a lot of sort of dead ends they + +0:52:18.980,0:52:21.189 +just sort of left hanging there + +0:52:21.189,0:52:22.589 +Uh but uh + +0:52:22.589,0:52:26.200 +the structure itself was nicely done about it was +about 90% machine independent code + +0:52:26.200,0:52:28.459 +10 % machine dependent code so that + +0:52:28.459,0:52:30.119 +a well defined interface. + +0:52:30.119,0:52:32.239 +the PMAC interface. + +0:52:32.239,0:52:34.359 +and so got that put in and of course we + +0:52:34.359,0:52:40.019 +did it onto the the Berkeley MMAP Interface +rather than what they did + +0:52:40.019,0:52:42.700 +with uh ports and so on + +0:52:42.700,0:52:43.160 +Uh and + +0:52:43.160,0:52:48.210 +So I got that together sort in the that +the 4.3 phase I didn’t talk about there were + +0:52:48.210,0:52:51.130 +two releases between 4.3 and 4.4 +4.3 + +0:52:51.130,0:52:53.789 +Tahoe and 4.3 Reno and + +0:52:53.789,0:52:56.689 +the first of them having the VM and the + +0:52:56.689,0:52:58.099 +second one having the NFS in it. + +0:52:58.099,0:52:59.759 +And uh + +0:52:59.759,0:53:01.499 +so + +0:53:01.499,0:53:05.529 +that got put out and then luckily people would feel +sort of look at it and said well you know + +0:53:05.529,0:53:07.709 +this really needs like a lot of work + +0:53:07.709,0:53:11.699 +so Mike Hibler, at the University of Utah did a tremendous +amount of the clean up in it. + +0:53:11.699,0:53:16.489 +and then later actually after we release +lite BSD in agreement + +0:53:16.489,0:53:18.719 +David Greenman did a whole lot more work on it. + +0:53:18.719,0:53:22.069 +really were just throwing tons of shit out +that shouldn’t have been at first place. + +0:53:22.069,0:53:26.559 +I had this whole notion of an external user +driven pager which was nice but the cost + +0:53:26.559,0:53:30.129 +of all the extra context switching other +things that would happen on pagefault was sort of + +0:53:30.129,0:53:32.549 +a killer uh + +0:53:32.549,0:53:39.479 +And so at any rate that's that's how the the +VM system got in there. + +0:53:39.479,0:53:40.420 +Any more questions? + +0:53:40.420,0:53:45.349 +See I can take like five minutes to answer +one question. + +0:53:45.349,0:53:45.599 +All right ! Well Thank You very much.