[Music]
uh now to get to why you are actually
here this morning brian kernighan
brian kernighan received his phd from
princeton in 1969 and was in the
computing science research center at
bill labs until 2000.
he is now a professor of the computer
science department at princeton where he
writes short programs and longer books
the latter are better than the former
and certainly lead less maintenance
brian will be speaking to you about the
early days of unix at bill labs i'd like
to hand over to brian now
[Music]
okay
thank you very much miles i'm going to
assume that i'm properly on the air
and also thank you to the incredible
collection of tech support staff who are
behind the scenes here
who in principal are making it all work
um so it's
genuinely a real pleasure to be with you
either today in the morning which is in
most of australia
or in the late afternoon as it is where
i am in new jersey it would be wonderful
to be back in australia
but that's not going to happen in the
near future so in fact this is where i
am i'm in princeton new jersey which is
roughly
oh 75 kilometers southwest of new york
city so that places it
um i've only been in australia watching
something i would love to remedy
in the future but it's a long way to
sydney which is the place that i spent
most of my time
visiting when i was in australia in the
galley 1984 or something like that long
time ago something that obviously should
be remedied
so
one of the reasons that i can talk to
you uh so easily from my home in
new jersey in the united states today is
that we have the internet uh to connect
us and of course most of the software
that runs uh on the internet that runs
our computers that supports the kind of
remote conferencing systems like the one
we're using here is based on unix and
linux the operating systems that we all
know
so the unix operating system was
actually created
um
just over 50 years ago
at bell labs in new jersey not too far
from where i am so here's another
version of that map new york to
princeton there and bell labs is
essentially exactly where the x is
somewhat west of
new york somewhat north of princeton um
so what i'm going to do today is to talk
mostly about the early history of unix
you know how it came about how it
grew over that early years and maybe
talk a bit about the evolution of
unix
perhaps teaches us something about how
software development can be done
effectively and perhaps how to manage
people and processes to make them as
productive as possible
so
what is buildlabs um what was it
let me give you a little bit of history
so in 19 sorry 1885 boy you lose track
of time um in 1885 um att the american
telephone and telegraph company
was founded and essentially over the
next
30-ish years it came to pro
provide telephone service for the entire
united states
and it was a big complicated operation
to do that sort of thing and the company
realized quite early that they needed
technical expertise to be able to
provide this basically highly technical
service and so they created a part of
the company which they called bell
telephone laboratories
to do research to figure out how to do
things better so that telephone service
could be improved
and that was originally in new york city
very close to the uh right on the hudson
river on the west side of new york um
in 1925 and then it was moved to
suburban new jersey um
x marks the spot in about 1960.
and so this is what bell labs looked
like from the air at the murray hill new
jersey location in 1961
and you can see it's a
pretty big place you get a sense of the
scale from the size of the cars in the
parking lot scattered around it
and
the operation at murray hill basically
did research in primarily physical
sciences things like physics chemistry
and materials
and there were about 3 000 people
working in research in this
operation at least a thousand of whom
had phd so you can think of it as a very
large specialized university but without
students
and an awful lot of important uh
inventions came out of that the most
obvious one is the transistor perhaps
but the laser fiber optics and a wide
variety of other things and over the
years depending on how you count them
all eight 10 12 nobel prize winners as
well did work at bell labs um so that
was just the research part then there
were roughly call it 25 000 people at
peak in
a part of company that was also called
bell labs which focused on development
that is taking things from research and
trying to convert them into things that
would actually
be useful in the
providing telephone service
and then bell labs was a small part of
att at its peak at t had well over
excuse me a million employees and so it
was a very very large operation
as i said most of the work at bell labs
was in the hard sciences physics and
chemistry and things like that but there
was also quite a bit of work in uh
mathematical things and communication
theory
and here are two of the perhaps the most
important people who worked in that area
uh claude shannon uh the creator of
information theory who i never met um
and dick hamming the creator of among
other things error correcting codes who
i knew extremely well
for many years
it's actually kind of intriguing that
claude shannon and dick hamming actually
shared an office once and if you can
imagine
an amazing experience what that must
have been
around there
so anyway i actually uh went to
bell labs
in
1967 i guess it was there were about 25
people there doing research in what was
called the computing science research
center that had been newly created by
spinning off some people from the
mathematics research center which is
where shannon had been although he had
since moved on to mit they worked on
things like programming languages uh
tools operating systems things like that
and they were mostly located on the top
floor of what was called building two
and so building two you can see two
little red dots there and you can see
the arrows pointing at parts of that so
they were on the fifth floor of that
building
and i arrived there in the summer of
1967 as an intern you know one of these
lowly people
the red dots are my offices the first
one was in 1967 and it was next door to
dick hamming and so this is kind of an
interesting way to start a career to put
it mildly um and uh
i spent the summer of 67 there i came
back for another summer in 68 and then i
came
permanently uh in
1969 and my office in that entire period
of time
was
at the other red dot
further along the corridor
so
very interesting kind of operation and
an amazing place to be
the people who were in the computing
science research center at that time or
as i said working on various kinds of
software like programming languages and
especially operating systems and so
in
1961
mit created a system called ctss the
compatible time sharing system and it
was led by fernando corbetto
corby
uh who was an amazing nice guy
and very very forward-thinking kind of
computer person so ctss created in 1961
was a time sharing system that is a
system where there was a single computer
and people accessed it from
basically remote devices sort of like
cloud computing before there was such an
idea
it was such a success that
people at mit said we could do this
better and so they designed a system
which was called multix the multiplexed
information and computing service and
the idea really was
an information utility something like
cloud computing today and it was going
to be new and improved and better in
every single possible respect
so this was a big job and so mit
enlisted the services of
two other organizations one was general
electric which at the time made
computers big computers
and the other was bell labs which at the
time had a great deal of expertise in
programming languages and operating
systems so what you have there is three
different institutions geographically
separated by very wide distance roughly
the distance from sydney to perth let's
say in the case of general electric
and
very different organizations a
university a research lab and a profit
making company and you don't have to be
much of a student of institutions to
realize that this was kind of a recipe
for things not working super well
um
multix was late it didn't at least in
the early days worked well and so in
1969 handwriting on the wall bell labs
withdrew from the project
and this left people like the folks on
the bottom row there with nothing to do
they had gotten a taste for really nice
computing environment
they had understood what kinds of things
could be done with computing in a
variety of ways but they didn't have any
resources anymore
and so they spent quite a bit of time
in 1969 trying to convince management to
buy another computer a big computer so
that they could work on um
you know providing information utility
uh management once bitten twice shy said
uh and they stalled they continued to
stall so in the meantime
ken thompson dennis ritchie doug mcelroy
and others spent their time thinking
about what would be an interesting
way to build a system that people would
like to use
and ken thompson um not theorizing but
just going and doing things found what
has been traditionally called a little
used
pdp seven
so this was a machine that was first
released by deck in 1965
it was by 1969 obsolete and that's
probably the reason why it was little
used
but ken did some experiments with
basically he was trying to see whether
you could make file systems run better
with some of the designs for file
systems that they had been doing
on blackboards would actually make sense
and so what he did and i asked him about
this um
because it was sort of folklore and i
wanted to get it straight from the
horse's mouth so sometime after he and i
had both retired from the labs i sent
him mail saying gee ken i heard this
story
what do you have to say and this is what
he said
that unix was a file system
implementation to test throughput okay
it was hard to get data loaded up he
could read and write but you know it was
impossible and so but his wife bonnie
was going off to visit
family in san diego california across
the country and was going to be away for
three weeks and so ken said to himself
you know all it needs is a couple of
things
fundamentally an exact call
trivial a shell an editor an assembler
okay a week each
and that was the original version of
unix now this is a definition of
software productivity which i suspect
most people here have never encountered
before i certainly haven't and the whole
thing was done on a machine which is
infinitesimal it had 8
k
16-bit were 18-bit words okay so half of
that was the kernel and the other half
was users being swapped in and out
pretty amazing
um
so the pdp-7 was what we'd call i guess
proto-unix
useful but very very limited and so ken
and dennis spent some of their time
continuing this lobbying for can we get
a bigger computer management continue to
waffle and stall but finally
the group managed to cobble together
enough money to get the brand new at
that time pdp 11. that
released this machine in early i think
1971
and bell labs got one of the very
earliest of those it cost fifty thousand
dollars at the time which is still a
chunk of money but not a huge amount
and the the value proposition to use a
phrase was that
the people who were interested in this
would write a basically a document
preparation system that would may enable
the bell labs patent department to
produce patent applications in the
official required form
far more easily than could be done with
commercial word processing systems and
so that is a very famous picture uh pr
picture of course of canon dennis in
front of the pdp 1120 can is seated
dennis is standing
and you can see a lot of things about
old computing including the fact that
those were model 33 teletypes were rolls
of paper and things like that
but that was enough to build a what
would be called the first version of
unix the first edition which appeared in
1971 but at that point the system was in
use by real people it was completely
self-supporting it was recognizably unix
if you logged into it today you would
say oh yeah i recognize that
it supported multiple independent users
so it was a time sharing system and it
was really well documented it had the
famous man page style like this so this
is the man page for the cat command
notice the date november 3rd 1971
and that cat command still exists to
this day that is how you
do things like copy a file print a file
and things like that
it introduced even the famous bugs
section a little cat appears to have no
bugs at this point maybe that's no
longer true and so that's the beginning
if you like of unix
now
there was an early market forecast i
guess
the second edition of the unix
programmer's manual which appeared
sort of seven or eight months later said
that the number of unix installations
has grown to 10 with more expected
okay and
we wouldn't be here today if um things
hadn't gone slightly better than that
what followed then was a sequence of
very rapid evolution with a new edition
of the unix system roughly every six to
eight months for some years
and
most of what i'm going to say in those
dates
is uh
based on in fact the historical record
which is maintained by this wonderful
operation called the eunuchs heritage
society which is of course based in
australia worked by warren toomey and
others and the unix heritage society has
been collecting
historical documents uh
code actually you can download versions
of the code from many many early
unix systems
and um
basically it's just a historical record
and it's a very active group i literally
got mail from a friend
asking me to weigh in on some discussion
of document preparation systems that's
going on i got mail from him about the
discussion going on in the unix heritage
society
about three hours ago i haven't gotten
around to answering that but
so it's very very active and interesting
group and if you haven't done it go for
it and uh
appreciate the work done in australia on
this
okay
so
among the other things that happened
with
those early days of unix the first
versions of unix were of course written
in assembly language uh first on the
pdb7 and then on the pdp-11 um but one
of the lessons that had been learned in
the multix environment was that it was
possible to write code in high-level
languages and that was obviously a lot
easier
and so
one of the big big
contributions there was of course the
development of the c programming
language by dennis ritchie in roughly
the period 1972 or 1973.
the multisystem had been
explored a language
pl1
but that turned out to be too big and
complicated
and so a lot of multics code was written
in a language called bcpl which was done
by martin richards at the university of
cambridge uh ken thompson took bcpl
which was already a fairly minimal
language and stripped it down even
further into a language which he called
b and dennis then
derived c from that basically bcpl and b
were typeless languages c had different
data types to reflect the fact that the
pdb11 had different data types supported
by hardware
and so c was a language then for a
system program based on that experience
with baltics
and as i suspect everybody here knows c
is
sufficiently expressive and efficient to
do anything really well and it's in some
sense hit a sweet spot in the design of
programming languages that's been hard
to follow or match ever since and
certainly locally what it did was to
lead to this incredible explosion of
applications most of which were system
programming kinds of things tools and
things that helped programmers do better
some of the obvious ones were yak the
compiler compiler that steve johnson uh
created that made it possible to create
language translators compilers very
easily
lacks a similar program for
lexical analysis which was done by mike
lesk
shortly afterward and those of course
then in turn led to all kinds of
languages and tools document preparation
and so on
so
i think the most important of these
might be the
portable c compiler that steve johnson
did
which led to the portability of the
operating system itself because the
observation is
that if the operating system is written
in a high-level language then in
principle you can move the operating
system to another computer if that other
computer also has a c compiler so i'm
going to come back to that in a couple
of minutes
but there was something else that
happened at about that same time but
the
unix system was up through version three
the third edition was written in
assembly language the fourth
edition
was in c and of course never looked back
since then
something else that came along a little
even before that which is in a way very
characteristic
of
unix
is the invention of pipes
so here is
a paper i don't i guess you'd call it a
white paper or something
that doug michael ray wrote in 1964.
it's kind of hard to read perhaps so
i'll put up a clearer version of it here
but the gist of it is and this is
something that doug had been flogging
for a long time the idea that what you
could do is to have some way of
connecting programs together and his
metaphor was like
couple them like garden hose you just
screw in another segment when there's
something
uh
that you want to do some further
processing on this and so this was
doug's idea
and it didn't actually make it into
working code until some while later but
it fundamentally arrived
um in time for the third edition of unix
system which appeared in early 1973 so
this is a late 1972 invention the idea
of pipes and then pipelines and filters
and of course everybody here knows all
about that stuff and so it's probably
hard to imagine just what an incredible
revolution it was in the way you thought
about programming at the time it was one
of those things where i still remember
this idea of gee you could connect the
output of one program to the input of
another it's really easy and you can do
really neat things without any work
so who
remember it's a time sharing system so
lots and lots of users potentially on
the same machine
so who gives you a list of the users one
line per user
grab our pattern searching program
let's look for all of the user's name
joe
and how many of those are there we'll
run it into word count which and so who
produces a bunch of lines grep selects
some of them a word count tells you how
many lines there are and that's the
number of times that joe is logged in
so
when the pipe mechanism came on and it
was really really trivial ken says that
it took him less than an hour to put it
into the operating system because all
the other mechanisms were already there
it might have taken others longer than
that um but people started to invent
interesting ideas
and they start and they spend a lot of
time very quickly modifying programs so
that they would actually work in
pipelines so think about the sort
command the sort command takes input
sorts it and then produces output but it
cannot produce any output until it has
seen all of the input so putting it in a
pipeline is in some sense deceptive
right because that's a dead stop in the
pipeline until you've seen all the input
but as a packaging matters and
engineering and making it easy to use
matter you package it as a pipeline as a
program that is just another filter it's
a filter that sorts
and so that kind of insight led to all
kinds of intriguing ideas
the pipeline for detecting spelling
mistakes is due to steve johnson you
take a bunch of files you canonicalize
them in some way like convert uppercase
to lowercase you sort them there's that
dead stop in the pipeline but it doesn't
matter and then you pick out the words
the unique words so if the word th e
appears a bunch of times you only care
about it once and then you compare it to
a dictionary and print the words that
are in the document but not in the
dictionary and there is a first draft of
a program for detecting spelling
mistakes and documents
and how long did it take to produce that
you could practically write that
without even putting it on paper first
and on a larger scale and this is where
stuff that i was more interested in at
the time was the idea that you could
modularize programs by having a sequence
of programs each of which did a part of
the job
but make them work together and so the
part that i was most interested in was
the document preparation tools of t
rough which
basically did formatting think of it as
an early early version of a program like
tech or latex
but then a special program for
mathematics
which lorinda cherry and i did special
program for tables which mike les did
immense of drawing pictures and so on so
all of that idea of taking something
that would be an enormous ball of wax if
it were a single program but instead
it's a sequence of programs that each
does its own thing and they collaborate
to get a job done
and so that idea of basically tools of
thinking about what you're doing is not
so much writing programs but is building
tools that make it possible to do things
very easily is i think one of the
pervasive
ideas in unix one of the things that's
most distinctive and certainly there's a
bunch of these small tools like crap and
deaf and so on there's a shell itself
which is programmable so it's a
programming language whose operators are
programs that makes it easy to combine
programs to do things and then we have
tools for making further tools and
particular
based tools
and then we have more tools that are
programmable and then of course that
leads to languages and so this metaphor
the building blocks i think is in some
sense a very very nice example of how
unix works
and this is
this is a pr photograph from probably
the early 80s or something like that
late 70s
and hiding the background it's hard to
see although i i know of it
is a t-roff document i know because i
provided the t-roth document that's in
the background i have no idea what it
was about
so anyway let me talk for a minute about
graph because it's actually kind of an
interesting story and grep is in a way
the quintessential example of a small
tool that started with unix and
in some sense was the place where we
started to think that what we're doing
is building tools
it was created by ken thompson literally
overnight
by surgery on the ed text editor
he basically just threw away everything
except the pattern matching part of it
and the result was a tool which is
absolutely fundamental i suspect that
anybody who has used their
unix or linux box today has probably
used grep for something certainly i've
used it probably a dozen times already
today
the thing that there's a wonderful story
that goes with it
i got a call and i it must have been in
1972 or 73 um a guy called me and i was
at bell labs and he uh said you know i
just got a new hp 35 pocket calculator
now this was the first real serious uh
pocket calculator
um and it came out in 72 so let's call
this 72 or 73
and he said i understand that you guys
have a
dictionary on your computer and i said
yes and he says there's some way you
could
use that dictionary to tell me what
words i could make on my calculator if i
hold it upside down
well you know i was in a research
operation you're sometimes disconnected
from reality so it was nice to have a
guy called with a real practical problem
and so i said sure uh
what letters do you think you can make
when you hold it upside down and he said
i think i could make b-e-h-i-l-o-s
now this is
pretty crappy looking here but you get
the idea
and so i said okay um
and so i typed
this command
into my
terminal
crap we've talked about the pattern
matching program userdict web 2 is the
word list from webster's second
international dictionary just the words
one word per line
235 000 words so it's a big word list
and the thing in the middle is a pattern
it's a regular expression it's one of
those things absolutely characteristic
of unix and it's a pattern that says i
want to see lines that contain only
arbitrary combinations of any number of
any of those letters and nothing else
so i typed
this command and i pushed return
and out came
an amazing list of words this is
probably hard to see unless your
projector is very good but
they're 263 words there i am a pretty
well educated native speaker of english
and there's a boatload of words that
i've never heard of
i've no idea what they mean but um
anyway i printed the list and i sent it
off to this guy and i think he was
probably happy i never heard from him
again
but he left me with this wonderful story
of
the importance of tools the idea that if
you have the right tool for the job you
can do something which would otherwise
be either not worth not possible do or
certainly not worth doing
so
great example
so i think all of this stuff
fundamentally came together in the sixth
edition of unix the sixth edition was
the and you know it's may 75 so we're
you know roughly three
in a bit years
uh from the first edition
um
this was the first widely used version
the first version that was used outside
of bell labs in any new real sense
and it had a bunch of things
that are characteristic of unix to this
day the hierarchical file system where
the files are just bytes and devices are
files in the file system
uh and the other things that i've
mentioned like the shell the pipes and
so on and as i said earlier the system
was actually written in c
for the fourth edition so it was about 9
000 lines there was a certain amount of
assembly language but the vast majority
of it was c code okay and because of
that it was comprehensible by people
you know you wouldn't want to have to
deal with the equivalent of 9000 lines
of c in assembly language it would be
just a nuisance
and the accessibility of the code in c a
language which was understandable led to
some really interesting things and
here's one of the best of all of them
this is the um
comment
the commentary that john lyons produced
on the sixth edition code so what john
did was to take that code 9000 lines of
c and a bit of assembly language and
basically
produce two side-by-side books one of
which had the code and the other which
was an explanation of what every single
piece of that code did
and it's a really really marvelous book
and if it i don't know whether it's
still widely available i have a numbered
copy because originally they were very
very closely held this you know this
surreptitious looking pair xeroxing
it suggests that it was not
meant to be distributed widely
um
but it's a really really excellent
description of ken's observation about
best exposition of the workings of real
operating system i think is is
absolutely true without even the need
for quotes around real
um
john of course was at the university of
new south wales in sydney um but he
spent several sabbaticals at the labs in
new jersey and his first one which was
1978 1979 he spent it in the office
across the hall from me so i knew him
well from that
the book is of course one of his main
legacies an absolutely a wonderful book
another great legacy is an amazing
collection of students who went through
his courses at university of new south
wales and then went on to a variety of
other things
several of them wound up at bell labs
where they become good friends as well
of course john was my host for my
trip to australia in 1984. it was a
wonderful time
the conference was held in the sydney
opera house i spoke at the very
beginning of the conference and then
spent the rest of the conference looking
out the window at the harbor i have no
idea what anyone else said but i had a
wonderful time
um one of the high points of the visit
was uh dinner at
john and marianne's home in sydney
and i remember that fondly the part i
don't remember quite so fondly is
getting back into my car to drive back
to my hotel and discovering an
absolutely enormous spider in the car
so i'm sure australians are all
chuckling over this uh but
for the tourists it was one big
spider so anyway there is john lyons
with some of his students and a very
characteristic picture of him
so um
i mentioned uh the fact that the
operating system was written in c
and thus was potentially portable to
more than one kind of computer
architecture the first
port of unix to another computer was
actually done by richard miller at uh
university of wollongong in
april of 1977 he ported it to an
intraday of 732.
um
about six months later uh steve johnson
and dennis ritchie ported it to an
interdata 832 which is similar but not
quite the same and then there were ports
to the then new vax computers at bell
labs and then
at berkeley in a sense that that shift
from
the pdp-11s to the vax computers was uh
also a shift in the center of gravity
and a lot of it um
went on in several different directions
there should uh
activity at bell labs
and att who are trying to make a
commercial version of unix and a lot of
activity at berkeley where in particular
they were interested in in
networking
um but this was all enabled by the
portable
nature writing in a high-level language
and thinking about portability and that
portability of language and operating
system and all of the tools all written
and see uh enabled the workstation
market which
was companies like sun microsystems and
mips which became sgi
uh and apollo and sequin and just a
bunch of others and then a few years
later 1982 or so uh the ibm pc
and this is something that i think is
not really well known
but for
microsoft had their own version of unix
it was called xenix
and
for a period in the 80s
microsoft was the biggest distributor of
unix operating systems and i keep
thinking what would the world have been
like
if microsoft instead of going off and
dos had taken off with unix who knows
what would happen but it certainly would
have been interesting
okay so
anyway this is kind of at this point uh
let's call it the uh mid-80s what i
would call the golden age okay so unix
is everywhere it runs in all the
computers that anybody has made c and
derivatives like z plus plus
are on everything as well and used for
all kinds of things even on non-unix
systems lots and lots and lots of
languages and tools that are used by all
kinds of people and recognition in a
variety of ways both public you know gee
what is this unix thing people had
started to hear about it um and
recognition in serious recognition for
the people who had done the work for
example a turing award for ken thompson
and dennis ritchie
in 1983 and somewhat later an
interesting further one
natural national medal of technology
with
ken dennis this i think it's the only
time i've ever seen ken wearing a tie um
with bill clinton um so interesting uh
picture so that's kind of recognition
there was also the appearance of unix in
what we would call popular culture i'm
wondering i don't know how old because i
can't see any of you i have no sense of
the age of the audience or your
entertainment tastes or anything but i
suspect there's at least a few people
who remember jurassic park which
appeared in 1990
okay that jurassic park was a you know a
pretty decent picture i think i
certainly enjoyed it but the thing that
made it special for an awful lot of
geeky people like me was this
observation of
it's hard to you know it really is fun
to see that um
lex the young woman who is 12 notionally
in the movie
uh understands that
she knows how to use a unix system and
turn off
the or turn on the safety systems that
capture or
lock the velociraptors back in their
cages or something like that and so this
is the high-pointed movie for anybody
who is a geek the other thing is a
little hard to see but this is of course
being done on a silicon graphics
workstation a standard nice unix uh
system uh and in fact a lot of the
graphics where for the movie we're done
on sgi systems
okay so this is the peak in some sense
but i think that there were sort of a
lot of external forces that started to
take a toll in
the late 80s and early 90s att and
berkeley got into a legal contest with
each accusing the other of doing bad
things in particular at t saying that
berkeley was stealing intellectual
property
and that lawsuit was completely
pointless and also what it did was to
kind of fragment the world into people
who were following the atm t side of it
and people were following the berkeley
side of it
and you've got divergent versions and it
took a long time for any kind of
standardization to bring that back
there were contributions from all over
the place some of them were not as good
as others i guess um hardware got
cheaper which is good but it meant there
were fewer constraints that which meant
i think that people didn't think as hard
about what they were doing sometimes
and of course a big effect was the
growth of the pc
and microsoft and the shift of
talented people and good ideas
to a different world a world which is
much less focused on command line stuff
and much more focused on interaction
user interfaces graphical stuff and
applications over a wide range of things
that are not system programming kind of
things
so
so that was kind of a
divergence or whatever but then
something interesting happened
and it happened in fact you can date it
almost exactly
august nineteen ninety one
linus torvalds minus toy ralph's um
announced the availability of an
experimental system that he was
building it was sort of you know aimed
at people who are using minix which is
andy tannenbaum's educational version of
unix
and he's doing it for fun it's not a big
deal
but he's done a lot of stuff and if
anybody's interested
you know contact me i'll do it and he
says down there at the bottom it's not
portable
and it'll probably never support
anything other than certain kind of hard
disks and so on so yeah and so this is
interesting because
lattice is just as wrong in his market
forecast
as the original unix folks were in
theirs
so
at that point the rest is history okay
so i cobbled this together from some
thing that purports now it's a unix fan
club kind of thing but it purports to
report active and it does report
accurately that all of the top 500 super
computers run on linux and most of the
big websites and servers and so on are
all really using unix and of course for
linux rather and of course we're all
doing the same thing
for conferences like this one so
there's a technical legacy that goes
with
unix
i think the first three arguably come
pretty directly from multics it's not
like unix spraying out of nothing multix
had an enormous number of good ideas
and showed the feasibility of some of
those quite well
and those were simply adapted and
streamlined in some ways and used in
unix as well
i think pipes are unique to unix and
then that the pervasive use of tools and
regular expressions and so all these
things are at this point very
characteristic of unix and the other
thing that went with it
which i hinted that when we were talking
about tools a bit it's a philosophy how
to create software how to try and
produce software by using
a relatively small number of
programs that do
one thing well and then you try to make
them work together with each other
okay
so i think you could say
that the essence of unix is at this
point about 50 years old
and this slightly snarky comment from
doug about unix being an improvement on
its successors
but i think arguably there's a grain of
truth in that an awful lot of unix was
actually right there in place in the
1975 sixth edition the one that john
lyons documented so well
and
are there great new insights or ideas
since i'm not sure certainly
uh there have been changes the most
obvious things since the seventh edition
are things like networking which of
course that's what we're using right now
multi-processors process
increasingly have more and more and more
cores that are working on things in
parallel and that's a very different
environment than the original unix
machines
graphical user interfaces
more and more but not as stable as they
might be
and of course
the realization that lots and lots and
lots of parts of the world do not use
the united states version of characters
that ascii is not sufficient so lots of
things and then finally scale of that
most unix systems are
dealing with very very very large
environments at this point far beyond
anything that was thought of in the
early days
so how did this all come about i think
arguably it wasn't
not arguably it was not planned um it
was an accidental combination of a whole
bunch of factors
first and this is really the critical
thing two exceptionally creative people
ken thompson and dennis ritchie with
exceptionally good taste i mean their
taste for minimal mechanisms and finding
the generalities the cleanliness of what
they're doing is very very uh
perhaps unique
and certainly a good supporting cast in
a variety of ways
management at bell labs was
technically talented and
typically very very benign it was not
here's what you have to do and every
quarter tell us what you've done it was
more like oh gee you're doing that that
sounds really interesting why don't you
keep doing it as long as it looks good
and doug mcelroy perhaps an unsung hero
of the unix world
was
the manager in charge of an awful lot of
this stuff and he led by example and was
just an amazing contributor to the whole
thing
now of course a lot of this
dependent on the fact that hardware
was comparatively cheap that the first
unix system was able to run on a machine
that cost fifty thousand instead of five
hundred thousand and then
smaller workstations came down that were
even cheaper than that and then pcs
so the
technology improvements fueled an awful
lot of this
and then finally
the bell labs environment was
particularly congenial for this kind of
thing and that's something which i don't
see as much of
today perhaps but funding was stable
because it was basically
run as a bell labs was run as a tax on
the
telephone service in the united states
so stable funding in a stable
organization and a very long-term view
of what was useful
and the environment itself was
incredibly cooperative collegial and
just a lot of fun
so could we do this again sometime i
don't know um
i would say well first obviously they're
always good people uh
no particular part of the world or
organization or anything else has a
monopoly on really good people
um
dilbert cartoons not withstanding there
are good managers
and hardware continues to be
dirt cheap and lots and lots of great
software the open source software
that we see so much of like linux is
free and so all of those things are very
very positive
on flip side there are not as many of
these unfettered environments where
people
are simply set loose
and told to go and do something that
they want to do that might be
interesting or useful
it's hard to do that in industry
because things tend to be short term and
it's hard to do that in universities
because money
but in principle it could happen again
for something and if you think about the
number of things that we use in our
field every day
that began with one or two people and a
good idea linux is the obvious thing
that's one guy okay and certainly
there's cast of many many thousands at
this point but
that was one guy with a good idea um
languages that we use c plus plus java
perl python php ruby javascript go you
know it's just the list goes on and all
of those are the work of just one or two
people to get off the ground
and then of course the big companies
that we deal with as well
like microsoft and apple and google and
amazon and facebook and on and on and on
they're also
one or two or three good people with a
good idea so stuff can happen
so i wanted to close with an observation
from dennis ritchie
so dennis died about 10 years ago
last october
um
but what he said here was fundamentally
that unix was meant to provide a
community it was sort of a warm and
welcoming place
to develop
software so it brought people together
and certainly in the early days
people enjoyed their work they enjoyed
the people they worked with
and so it was
a very positive cycle of productive
environment for all the people and so i
think what we want to do today is that
same kind of thing where we have a sense
of community that we're working together
to try and do things that will in some
way make the world better this
conference is a great idea with lots and
lots of people coming together virtually
to learn from each other and hopefully
to continue to improve what's going on
so it's been great fun for me to be a
part of this um and i hope it has been
fun for you too and i hope the rest of
the conference goes extremely well for
all of you so with that thank you very
much
thanks ryan that was really interesting
um we should now have hopefully uh we
have our live illustrator feed we could
probably pop in here and you should be
able to see it on your second screen
hopefully
there it is
so that's you can have a look at that um
i'll just run out we've got a few more
things to finish the session with um
feel free to um what are we doing oh
sorry we're at
we're at the end of the beginning this
is our first break feel free to
use the chat rooms or get away for a
refresher
we'll return at 10 40 a.m here for the
start of our four fab mini conference
and don't forget to be back here at 5 45
pm this afternoon for the lock note
presentation from kathy reed
thank you again very much brian that was
really fascinating i like your
definition of what a practical problem
is in a research environment when most
people you know they hear that word they
think useful but um you know reading
words on a calculator not so much
anyway thanks very much and we'll go to
our break now