3913 lines
75 KiB
Text
3913 lines
75 KiB
Text
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 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 precede 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
|
||
renewing 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 some tests 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 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 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 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 Bostic 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 dealt 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 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 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 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 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.
|