aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1/captions/2006/mckusick-kernelinternals/mckusick-kernelinternals-1.sbv
diff options
context:
space:
mode:
Diffstat (limited to 'en_US.ISO8859-1/captions/2006/mckusick-kernelinternals/mckusick-kernelinternals-1.sbv')
-rw-r--r--en_US.ISO8859-1/captions/2006/mckusick-kernelinternals/mckusick-kernelinternals-1.sbv794
1 files changed, 396 insertions, 398 deletions
diff --git a/en_US.ISO8859-1/captions/2006/mckusick-kernelinternals/mckusick-kernelinternals-1.sbv b/en_US.ISO8859-1/captions/2006/mckusick-kernelinternals/mckusick-kernelinternals-1.sbv
index 7f564d1d33..8d3b93ab6d 100644
--- a/en_US.ISO8859-1/captions/2006/mckusick-kernelinternals/mckusick-kernelinternals-1.sbv
+++ b/en_US.ISO8859-1/captions/2006/mckusick-kernelinternals/mckusick-kernelinternals-1.sbv
@@ -9,8 +9,8 @@ and mainframes have ruled the world
which is to say the sixties and seventies
0:00:18.429,0:00:22.460
-however by 1970s a new breed of mammals had began to show up on
-the scene,
+however by 1970s a new breed of mammals had begun to show up
+on the scene
0:00:22.460,0:00:24.240
known as mini computers
@@ -35,11 +35,11 @@ UNIX operating system
Ken Thompson who had been an alumnus at Berkeley
0:00:42.040,0:00:46.100
-came back on a sabbotical in 1975 bringing UNIX
+came back on a sabbatical in 1975 bringing UNIX
with him
0:00:46.100,0:00:47.539
-In the he was there
+In the year that he was there
0:00:47.539,0:00:51.330
he managed to get a number of graduate students interested
@@ -56,21 +56,21 @@ Bill Joy has taken over in running the UNIX system
and in fact continuing to develop software for it.
0:01:00.470,0:01:04.339
-Bill began packaging up the software that have
+Bill began packaging up the software that had
been developed under Berkeley UNIX and
0:01:04.339,0:01:05.779
and distributing it
0:01:05.779,0:01:08.040
-as the Berkeley Software Distribution
+as the Berkeley Software Distributions
0:01:08.040,0:01:12.310
whose name was quickly shortened to simply BSD
0:01:12.310,0:01:16.330
BSD continued to be distributed with
-yearly distribution for almost fifteen
+yearly distributions for almost fifteen
0:01:16.330,0:01:17.490
years
@@ -127,7 +127,7 @@ two groups sprung up
to continue supporting BSD
0:02:03.600,0:02:08.080
-the first of this is the NetBSD whose primary
+the first of this was the NetBSD whose primary
goal was to support
0:02:08.080,0:02:10.459
@@ -146,27 +146,27 @@ The other group that sprang up was FreeBSD.
0:02:22.419,0:02:28.239
Their goal was to bring up BSD and support
-as wide set of devices as possible on the
+as wide a set of devices as possible on the
0:02:28.239,0:02:29.719
PC architecture.
0:02:29.719,0:02:36.549
They also had a goal of trying to make the
-the system as easy to install as possible to
+ system as easy to install as possible to
0:02:36.549,0:02:39.309
attract by a wide group of developers
0:02:39.309,0:02:42.319
-I chose to primarily work with the FreeBSD
+I chose to work primarily with the FreeBSD
group
0:02:42.319,0:02:43.740
both doing software
0:02:43.740,0:02:46.140
-and also together with George Neville
+and also together with George Neville Neil
0:02:46.140,0:02:51.069
writing this book ""The Design and Implementation
@@ -216,7 +216,7 @@ that's what I know best and that's what
the textbook is organized around
0:03:26.379,0:03:29.979
-but the fact that the matter is back it's really
+but the fact of the matter is that it's really
0:03:29.979,0:03:32.339
a class about your UNIX and that
@@ -289,7 +289,7 @@ in that,
it has to have the same effect
0:04:23.909,0:04:27.319
-and so until you get down to the really niddy
+and so until you get down to the really nitty
details
0:04:27.319,0:04:29.600
@@ -327,7 +327,7 @@ that.
Okay so
0:04:54.569,0:04:59.279
-the other thing is I'm going to assume that
+the other thing is that I'm going to assume that
all of you have used the system. I get
0:04:59.279,0:05:00.910
@@ -338,7 +338,7 @@ you know raise the hands and ""Hey, what's a Shell?""
0:05:04.249,0:05:07.990
or I don't
-put a lot of code up but a small piece of code and someone said ""Why
+put a lot of code up but a one piece of code and someone said ""Why
0:05:07.990,0:05:11.819
are there two pipe symbols in the middle of
@@ -353,7 +353,7 @@ So hopefully you can tell the difference between
Shell scripts and C code.
0:05:19.970,0:05:21.990
-okay but I am but am gonna assume
+so okay but I am but am gonna assume
0:05:21.990,0:05:24.610
you haven't really looked inside the system.
@@ -379,7 +379,7 @@ levels of knowledge
and so
0:05:37.900,0:05:42.620
-the way that I find works best the sort of
+the way that I find works best to sort of
be useful to everybody is that three pass
0:05:42.620,0:05:43.860
@@ -400,23 +400,23 @@ same material again but at a lower level of
detail
0:05:55.300,0:05:59.939
-then i finally go back and go through a very neatly
+then i finally go back and go through a very nittily
low-level of detail
0:05:59.939,0:06:04.649
-and the fact that is if you are learning new stuff
+and the fact of this is if you are learning new stuff
as I'm doing the high-level thing
0:06:04.649,0:06:08.649
you are gonna be utterly washed by the time I get to
-low level nearly details
+low level niggly details
0:06:08.649,0:06:10.699
but since I'm going to do it topic by topic
0:06:10.699,0:06:14.190
when I get to the end of one of those nearly
-low level details
+low level niggly details
0:06:14.190,0:06:17.900
i'll give you a clue as i will say ""Brain
@@ -426,7 +426,7 @@ reset, I'm starting a new topic"" so even if
you're completely lost
0:06:19.330,0:06:23.530
-you can now start listening again plus am gonna get
+you can now start listening again plus I'm gonna get
the broad brush up again.
0:06:23.530,0:06:27.059
@@ -437,7 +437,7 @@ this stuff already
you'll probably find the broad brush rather boring
0:06:31.770,0:06:35.759
-but by the time i get down nearly low level
+but by the time we get down to nearly low level
details I think you'll actually
0:06:35.759,0:06:37.860
@@ -460,14 +460,14 @@ I am gonna start out by just
walking through and giving you the
0:06:53.089,0:06:56.919
-outline of what we're going to try and do
+outline of what we're going to try and do here
here
0:06:56.919,0:07:01.169
As i said we're going to go roughly
0:07:01.169,0:07:03.270
-about two-and-an-half hours of lecture
+just about two-and-an-half hours of lecture
0:07:03.270,0:07:04.729
about two hours forty minutes
@@ -486,7 +486,7 @@ This is as I said we're going to start from the
top
0:07:13.860,0:07:15.749
-and just start working our way down
+and then just start working our way down
0:07:15.749,0:07:19.350
so the general thing I'm going to do is
@@ -503,7 +503,7 @@ you've worked with that system
and then
0:07:27.249,0:07:29.739
-sort of layout terminology
+you have to sort of layout terminology
0:07:29.739,0:07:32.080
although we use normal english words
@@ -519,7 +519,7 @@ common usage
and
0:07:39.220,0:07:42.330
-I will just sort of lay out the terminology
+so I will just sort of lay out the terminology
lay out the
0:07:42.330,0:07:45.750
@@ -543,10 +543,10 @@ that is done
so here in
0:07:59.970,0:08:01.400
-Week 2
+Week number 2
0:08:01.400,0:08:05.450
-%uh we're gonna look at the system from the
+we're gonna look at the system from the
perspective of
0:08:05.450,0:08:07.039
@@ -556,19 +556,19 @@ something that
manages processes.
0:08:08.720,0:08:12.170
-One way of looking at the kernel it's really
+One way of looking at the kernel is it's really
just a
0:08:12.170,0:08:16.440
the resource manager and the resource that
-is managing are things going to do with processes
+its managing are things going to do with processes
0:08:16.440,0:08:19.460
So we'll look at a process, what the structure of
it is
0:08:19.460,0:08:20.649
-%uh and
+and
0:08:20.649,0:08:23.559
talk about the different ways that they can
@@ -582,7 +582,7 @@ and can have one thread running in it can have
multiple threads running in it.
0:08:29.749,0:08:34.620
-we'll talk about the different ways
+so we'll talk about the different ways
that we think a process is.
0:08:34.620,0:08:38.480
@@ -597,7 +597,7 @@ to lay out the bits and pieces that
need to be managed
0:08:42.020,0:08:44.660
-%uh and then talk about
+and then talk about
0:08:44.660,0:08:47.190
how we do that.
@@ -613,18 +613,18 @@ hasn't made it into
Linux yet although
0:08:56.320,0:09:01.630
-%uh the concept is %uh being actively worked
+the concept is being actively worked
on so my guess is that you'll see that
0:09:01.630,0:09:03.500
-%uh fairly soon.
+fairly soon.
0:09:03.500,0:09:06.360
-%uh will also then talk about scheduling
+we'll also then talk about scheduling
0:09:06.360,0:09:10.579
which is in essence how we decide what gets
-to run, when it gets to run, how long it takes
+to run, when it gets to run, how long it gets
0:09:10.579,0:09:13.500
to run, etc.
@@ -641,7 +641,7 @@ Signals aren't really part of virtual memory
but they didn't fit into next week's
0:09:23.800,0:09:26.400
-material so I just would drop that at the
+material so I just would dropped that at the
beginning
0:09:26.400,0:09:29.850
@@ -662,7 +662,7 @@ trying to use their address spaces
and we will talk about
0:09:39.590,0:09:41.410
-essentially how you will make all that work
+essentially how you will make that all work
0:09:41.410,0:09:43.510
It's called a virtual memory because it's
@@ -683,15 +683,15 @@ get us through
looking at the world as if it was all
0:09:58.340,0:10:00.560
-all about processes
+all about processes.
0:10:00.560,0:10:03.880
-and in Week 4 we change gears. we say
+Then in Week 4 we change gears. we say
okay well you know
0:10:03.880,0:10:07.570
-the kernel isn't just about processes. You can sort of look at it orthogonally
-and you can
+the kernel isn't just all about processes. You can sort of
+look at it orthogonally and you can
0:10:07.570,0:10:10.000
say it's really just a giant I/O switch
@@ -713,8 +713,8 @@ so let's look at it from that perspective.
And
0:10:19.310,0:10:24.740
-%uh we'll start with special files, again this
-where the interface when you talk about UNIX
+we'll start with special files, again this
+sort of the interface when you talk about UNIX
0:10:24.740,0:10:25.880
systems, when you talk about
@@ -731,14 +731,14 @@ and we'll look at how that's organized and
the structure of it
0:10:37.220,0:10:41.840
-%uh which is to be fairly simple but in the
+which used to be fairly simple but in the
last decade has gotten
0:10:41.840,0:10:43.670
incredibly complicated.
0:10:43.670,0:10:48.540
-We will also talk about sudo terminals in
+We will also talk about pseudo terminals in
job control
0:10:48.540,0:10:53.330
@@ -761,14 +761,14 @@ Okay we will then continue in Week 5 with
the kernel I/O structure,
0:11:11.430,0:11:16.090
-%uh We will start with multiplexing of I/O. The
-kernel has done this
+We will start with multiplexing of I/O. The
+kernel of course has done this
0:11:16.090,0:11:17.360
always
0:11:17.360,0:11:22.110
-but we will really talking more about how do
+but we're really talking more about how do
we export I/O multiplexing to
0:11:22.110,0:11:25.970
@@ -784,7 +784,7 @@ Auto configuration
is what happens
0:11:32.770,0:11:36.619
-and typically or historically I guess you
+typically or historically I guess you
could say as the system boots.
0:11:36.619,0:11:39.500
@@ -815,23 +815,23 @@ anytime you plug a new I/O device, a
PCMCIA card,
0:12:00.550,0:12:03.680
-you remove a disk or you put in a new disk.
+or you remove a disk or you put in a new disk.
0:12:03.680,0:12:07.010
-Any sort of activity that changes the the I/O
+or any sort of activity that changes the I/O
0:12:07.010,0:12:08.360
structure of the machine
0:12:08.360,0:12:10.870
-auto configuration has to fired back up
+auto configuration has to get fired back up
0:12:10.870,0:12:13.050
and figure out what's disappeared
0:12:13.050,0:12:18.330
and cleanup and figure out what new has arrived
-to conongiure it in.
+to configure it in.
0:12:18.330,0:12:19.320
and then we'll talk
@@ -841,7 +841,7 @@ a little bit about the configuration of the
device driver
0:12:23.870,0:12:27.390
-this actually gets into an area of that
+this actually gets into an area that
0:12:27.390,0:12:28.660
is
@@ -854,7 +854,7 @@ of advice to the class esspecially those of
you who work in system administration.
0:12:36.780,0:12:42.010
-You'd really want to be careful that
+You really want to be careful that
you don't learn too much about device drivers
0:12:42.010,0:12:44.670
@@ -874,8 +874,8 @@ because if you become an expert or
viewed as an expert in any of these areas
0:12:54.960,0:12:59.370
-you will become the designated stocky for
-that and your psyche you'll never get to do
+you will become the designated stuccy for
+that and your site you'll never get to do
0:12:59.370,0:13:01.760
anything
@@ -884,7 +884,7 @@ anything
but that
0:13:02.610,0:13:07.360
-The three things that I highly
+so The three things that I highly
recommend not learning very much about are
0:13:07.360,0:13:09.060
@@ -901,7 +901,7 @@ with LDAP or anything in
that general domain
0:13:19.350,0:13:22.660
-%uh because as I say
+because as I say
0:13:22.660,0:13:24.900
that will become your life's work
@@ -914,22 +914,22 @@ there's other things that you might find more interesting.
""Do you have a question?""
0:13:33.870,0:13:36.659
-so one of my students empathized with my point
+so one of my students empathizes with my point
0:13:36.659,0:13:39.640
I believe you said you worked on that mail
system
0:13:39.640,0:13:43.120
-%uh so you you might know something about
-Sum mail configuration files but you don't
+so you you might know something about
+Sendmail configuration files but you don't
0:13:43.120,0:13:47.850
have to answer that
0:13:47.850,0:13:52.100
-so we're going to talk about what a device
-driver does and really just the entry
+okay so we're going to talk about what a device
+driver does and really just sort of the entry
0:13:52.100,0:13:53.170
points to it
@@ -943,35 +943,35 @@ or much of anything about it. I actually used
to teach an entire class believe it or not
0:14:01.490,0:14:02.720
-about the device drivers
+about device drivers
0:14:02.720,0:14:05.849
-%uh but then I realized a year i waste
+but then I realized the error of my ways and I have
since
0:14:05.849,0:14:12.580
-i gone through and made a point of forgetting
+ gone through and made a point of forgetting
every slide in that talk.
0:14:12.580,0:14:16.860
-so then we will move on to Filesystem
+okay so then we will move on to File system
0:14:16.860,0:14:21.540
-and as always will start at the high level
+and as always we'll start at the high level
talk about the interface what is it that is
0:14:21.540,0:14:23.020
exported out of the system
0:14:23.020,0:14:27.840
-%uh and then we will start diving down in sea and
+and then we will start diving down in the C and
how do we go about implementing that
0:14:27.840,0:14:29.010
-%uh so
+so
0:14:29.010,0:14:31.010
-we'll start with that
+we'll start with the
0:14:31.010,0:14:32.560
so called
@@ -984,11 +984,11 @@ it's historically been called buffer
cache
0:14:36.140,0:14:38.590
-and it's still recalled that periodically
+and you still hear it called that periodically
0:14:38.590,0:14:42.720
-and the fact that the matter is that there isn't really
-about buffer cache anymore,thers is just one big
+and the fact of the matter is that there isn't really
+about buffer cache anymore, there is just one big
0:14:42.720,0:14:44.620
cache in it.Its the VM cache
@@ -1012,15 +1012,15 @@ pages of memory
because that just leads to trouble.
0:14:59.390,0:15:03.390
-But Filesystems think that they have buffers and so
-there's been a year where we make
+But Filesystems think they have buffers and so
+there's this manouver where we make
0:15:03.390,0:15:06.149
these things that look like what historically
were buffers
0:15:06.149,0:15:08.830
-that really just happened just really map into VM system
+that really just map into VM system
0:15:08.830,0:15:11.720
but they're still managed in the way that
@@ -1030,7 +1030,7 @@ they have been
managed historically
0:15:15.020,0:15:20.670
-We will then get down into Filesystem implementation
+okay We will then get down into Filesystem implementation
the local file system if you will
0:15:20.670,0:15:23.400
@@ -1040,7 +1040,7 @@ and into also
soft updates and snapshots.
0:15:25.730,0:15:26.440
-on this
+ this
0:15:26.440,0:15:31.100
for the time being is something that you see
@@ -1054,18 +1054,18 @@ which is %uh more commonly used
for example what is used by ext3
0:15:39.630,0:15:41.179
-so i'll go through soft updates and
+and so i'll go through soft updates and
0:15:41.179,0:15:45.260
a lot of the issues in soft updates are the
same issues that you have to deal with journalling
0:15:45.260,0:15:48.370
-what is it that we're protecting and how we
+what is it that we're protecting and how do we
go about doing that
0:15:48.370,0:15:51.150
-and the differences is in the detail.
+and the difference is in the detail.
0:15:51.150,0:15:54.630
There is actually a paper in the back to your
@@ -1075,7 +1075,7 @@ notes if this is something that interests
you
0:15:55.240,0:15:59.930
-%uh it's a comparison of journalling versus
+it's a comparison of journalling versus
soft updates that was done
0:15:59.930,0:16:02.120
@@ -1086,7 +1086,7 @@ and not to spoil the punch line but the answers
they both work about are the same
0:16:08.460,0:16:12.500
-Okay the snapshots again is something that
+Okay snapshots again is something that
if
0:16:12.500,0:16:15.920
@@ -1098,21 +1098,22 @@ aware of what snapshots are and how they do
or don't work for you
0:16:19.640,0:16:21.959
-this is this the same functionality
+this is the same functionality
0:16:21.959,0:16:27.380
-%uh in the Filesystem implemented in a
+in the Filesystem implemented in a
somewhat different way
0:16:27.380,0:16:28.449
-%uh so this
+okay so this
0:16:28.449,0:16:31.940
-that Week 6 is really going to be the local
+Week 6 is really going to be the local
file system
0:16:31.940,0:16:34.750
-the disk connected to the machine you work.
+the disk connected to the machine
+that we are dealing with.
0:16:34.750,0:16:39.140
Week 7 then we get into multiple
@@ -1140,7 +1141,7 @@ with a Linux machine
you can run the ext2 or ext3
0:16:58.310,0:17:01.020
-%uh and it will perfectly happily do that
+and it will perfectly happily do that
0:17:01.020,0:17:01.620
so
@@ -1156,21 +1157,21 @@ Filesystems that we want to support
another area of which there's been a great
0:17:12.250,0:17:15.309
-deal of growth at least in coding complexity
+deal of growth at least in code complexity
0:17:15.309,0:17:17.840
is so-called Volume Management
0:17:17.840,0:17:19.370
-%uh so in the
+so in the
0:17:19.370,0:17:24.480
good old days a Filesystem lived on a disk or
piece of disk and that was that
0:17:24.480,0:17:26.130
-but this day and age
+but in this day and age
0:17:26.130,0:17:31.150
that won't do any more so we aggregate disks
@@ -1180,7 +1181,7 @@ together by striping them or RAID
arraying them
0:17:31.980,0:17:33.380
-and we need such really things
+or various other things
0:17:33.380,0:17:39.210
and we need a whole layer in the system just to
@@ -1200,11 +1201,11 @@ but that's not because this is
the world's best remote file system
0:17:51.090,0:17:55.240
-or the cleanest design or any of the thing
+or the cleanest design or any of the
properties you might hope that
0:17:55.240,0:17:57.049
-such a class is this one would have
+such a class as this one would have
0:17:57.049,0:17:58.600
but it's ubiquitous
@@ -1216,13 +1217,13 @@ very widely used
and
0:18:01.350,0:18:06.850
-we're going to talk about that one
+so we're going to talk about that one
0:18:06.850,0:18:07.740
-we'll
+okay we'll
0:18:07.740,0:18:10.970
-then once again switch gears on Week 8
+then once again switch gears in Week 8
0:18:10.970,0:18:17.120
and turn our attention to of Networking and
@@ -1239,18 +1240,18 @@ go through, we'll go with concepts, the terminology
that gets used
0:18:24.450,0:18:30.230
-and what's difference between domain
+and what's the difference between domain
based addressing and an address domain you know
0:18:30.230,0:18:30.910
we'll go through
0:18:30.910,0:18:34.910
-well what the basic IPC services are,
+ what the basic IPC services are,
0:18:34.910,0:18:39.080
-essentially what all the system calls that
-has anything to do with networking
+essentially what are all the system calls that
+have anything to do with networking
0:18:39.080,0:18:40.590
and
@@ -1263,10 +1264,10 @@ and I'm going to go through
a somewhat contrived example
0:18:45.830,0:18:49.840
-it makes use of every one of those interfaces
+that makes use of every one of those interfaces
0:18:49.840,0:18:52.860
-and just to show how they all conected
+and just to sort of show how they all connect
together
0:18:52.860,0:18:54.169
@@ -1277,7 +1278,7 @@ in networking or had done any kind of network
programming
0:18:57.400,0:19:00.480
-if you're looking for a week to miss and this
+if you're looking for a week to miss and the
Week 8 is the one to miss that's 'cause that's
0:19:00.480,0:19:02.780
@@ -1297,7 +1298,7 @@ one of the papers in the back
it is an introduction to Interprocess communication
0:19:12.620,0:19:18.279
-%uh read that paper if you say yeah yeah yeah
+read that paper if you say yeah yeah yeah
yeah yeah you are done with Week 8.
0:19:18.279,0:19:20.590
@@ -1338,14 +1339,14 @@ we will spend a significant portion of that
class talking about routing
0:19:48.330,0:19:50.230
-%uh routing
+routing
0:19:50.230,0:19:53.610
for those of you that haven't had the pleasure
of dealing with it
0:19:53.610,0:19:55.540
-is a black heart
+is a black art
0:19:55.540,0:19:58.050
or at least a dark science
@@ -1360,7 +1361,7 @@ so
we'll talk about it
0:20:02.490,0:20:06.270
-from the perspective first of all to what
+from the perspective first of all of what
do we do locally within the machine
0:20:06.270,0:20:10.090
@@ -1368,26 +1369,24 @@ and then what are some of the bigger strategies
that we can use for doing routing
0:20:10.090,0:20:11.910
-%uh enterprise
+enterprise
0:20:11.910,0:20:14.840
wide routing or
0:20:14.840,0:20:20.190
-area wide routing some like throughout the
-state of California or throughout US whatever
+area wide routing something like throughout the
+state of California or throughout the US whatever
0:20:20.190,0:20:25.379
this again like device drivers is really
just sort of a nickel
0:20:25.379,0:20:26.480
-%uh throught the dark
-
-0:20:26.480,0:20:27.800
+tour through the
0:20:27.800,0:20:31.820
-what what the choices are what that the basic
+what the choices are what that the basic
strategies are that are used
0:20:31.820,0:20:33.989
@@ -1408,7 +1407,7 @@ of what the issues are
and what the general solutions are
0:20:44.430,0:20:48.950
-then finally in Week 10 well not finally
+okay then finally in Week 10 well not finally
but next few weeks and
0:20:48.950,0:20:52.380
@@ -1436,8 +1435,8 @@ on
changes that have been made in the protocols
0:21:07.730,0:21:14.310
-to deal with a lot of attacks that
-we've been seeing SYN attacks and
+to deal with a lot of the sort of attacks that
+we've been seeing the SYN attacks and
0:21:14.310,0:21:16.880
that sort of thing
@@ -1453,50 +1452,50 @@ are
i'll talk primarily about IPv4
0:21:24.940,0:21:31.940
-%uh but I will also try and talk a bit about
+but I will also try and talk a bit about
IPv6 as well
0:21:33.510,0:21:35.850
-so the first ten weeks are
+all right so the first ten weeks are
0:21:35.850,0:21:38.100
-sort of kernel course
+sort of the kernel course
0:21:38.100,0:21:40.800
-now back with two weeks on at the end
+now we attack two weeks at the end
0:21:40.800,0:21:42.010
to talk about
0:21:42.010,0:21:43.990
-through the bigger picture of
+sort of the bigger picture of
0:21:43.990,0:21:48.240
System Tuning,Crash dump analysis that level of
thing
0:21:48.240,0:21:52.940
-The idea is really to consolidate what
+The idea is to really consolidate what
we figured out or talked about in the first
0:21:52.940,0:21:54.710
ten weeks and
0:21:54.710,0:21:58.760
-how that applies to tools that are available
+how that applies to tools that we have available
to us to
0:21:58.760,0:22:00.760
look at what the system is doing,
0:22:00.760,0:22:02.649
-to analyze what the system is doing
+ analyze what the system is doing
0:22:02.649,0:22:03.650
and hopefully
0:22:03.650,0:22:04.720
-improves
+improve
0:22:04.720,0:22:07.130
the performance of what the system is doing
@@ -1505,7 +1504,7 @@ the performance of what the system is doing
and
0:22:07.750,0:22:12.169
-for the most part the kind of tuning I'm
+for the most part the kind of tuning that I'm
talking about is not
0:22:12.169,0:22:14.740
@@ -1515,10 +1514,10 @@ going in and hack hack hacking your kernel
because the fact that the matter is
0:22:16.510,0:22:18.600
-you can't do that anyway
+most of the time you can't do that anyway
0:22:18.600,0:22:22.340
-%uh so it's more looking at it from the perspective
+so it's more looking at it from the perspective
of saying
0:22:22.340,0:22:26.390
@@ -1530,7 +1529,7 @@ or is it running badly because there isn't enough
I/O capacity?
0:22:29.470,0:22:33.549
-or is it running badly because the it's got
+or is it running badly because it's got
enough I/O capacity but
0:22:33.549,0:22:35.940
@@ -1562,7 +1561,7 @@ and
0:22:55.120,0:22:58.750
essentially measure what it is and hopefully
-then you will understand the context of what
+then you will understand in the context of what
0:22:58.750,0:23:00.690
we talked about in the VM section
@@ -1571,14 +1570,14 @@ we talked about in the VM section
what that really means
0:23:03.990,0:23:07.460
-the Crash dump analysis is is one of these
+the Crash dump analysis is one of these
topics that
0:23:07.460,0:23:08.730
you are gonna love or hate
0:23:08.730,0:23:12.530
-%uh you actually have to deal with crashed
+you actually have to deal with crashed
dumps
0:23:12.530,0:23:13.679
@@ -1592,7 +1591,7 @@ it's an incredible mass of boring detail
0:23:18.790,0:23:23.240
the only good part of it is that that's the
-whole session is only about an hour or long
+whole session is only about an hour long
0:23:23.240,0:23:25.529
If it interests you, listen closely
@@ -1601,11 +1600,11 @@ If it interests you, listen closely
and if it bores you, well, its only an hour long
0:23:28.950,0:23:32.880
-okay up lastly we'll talk a little bit about
+okay lastly we'll talk a little bit about
security issues
0:23:32.880,0:23:36.250
-again this is really more of the tools that
+again this is really more to the tools that
are available
0:23:36.250,0:23:40.750
@@ -1617,11 +1616,11 @@ how to implement security so those of you
that deal with security
0:23:45.120,0:23:48.400
-it's just gonna to be sort of security one on
+this is just gonna to be sort of security one oh
one
0:23:48.400,0:23:50.029
-%uh for those of you
+for those of you
0:23:50.029,0:23:51.500
that have but
@@ -1631,19 +1630,19 @@ you'll have to deal with it but haven't really
thought about it
0:23:54.399,0:23:58.549
-%uh it'll probably scare you to death and
-you wonder have to keep the machines from
+it'll probably scare you to death and
+you wonder how to keep the machines from
0:23:58.549,0:24:02.840
being hijacked everyday
0:24:02.840,0:24:08.030
-Okay that's in essence what we're going
+Okay so that's in essence what we're going
to try and do here
0:24:08.030,0:24:15.030
anybody have any comments, questions, thoughts.
-Alright, no, well.
+No? All right well.
0:24:16.130,0:24:17.840
Let's get started
@@ -1656,7 +1655,7 @@ overview of the kernel.
Hopefully nobody's lost yet.
0:24:26.040,0:24:29.310
-What's a kernel? Alright.
+What's a kernel? All right.
0:24:29.310,0:24:31.370
so starting at the very top
@@ -1671,14 +1670,14 @@ what we have is
a UNIX virtual machine and
0:24:38.330,0:24:41.660
-and virtual machines are actually something
+ virtual machines are actually something
that has been around
0:24:41.660,0:24:44.539
as a concept since the sixties
0:24:44.539,0:24:48.919
-the diffrence is really just sort of the level
+ difference is really just sort of the level
of the interface that people have dealt with
0:24:48.919,0:24:51.360
@@ -1692,7 +1691,7 @@ computers were these enormous things you would
have
0:24:56.770,0:24:58.870
-your computer room would be something that be
+your computer room would be something that'd be
0:24:58.870,0:25:01.909
three times the size of this conference
@@ -1702,7 +1701,7 @@ room if you had
a computer
0:25:03.230,0:25:05.530
-the computer itself was this
+the computer itself was
0:25:05.530,0:25:07.840
tall as a refrigerator freezer
@@ -1715,29 +1714,29 @@ five or eight or ten of these units
side by side that itself made up the computer
0:25:13.909,0:25:16.080
-that would be one
+that would be one big
0:25:16.080,0:25:20.030
for the core processor and the one which
should be the floating point unit and several
0:25:20.030,0:25:24.080
-of them that would be the memory the core
-literally
+of them that would be the memory the core momory
+literally the core memory
0:25:24.080,0:25:29.110
-%uh and then they'd be other rows of these
-disk drives about the size of a washing
+and then they'd be other rows of these
+disk drives which were about the size of the washing
0:25:29.110,0:25:29.660
machine
0:25:29.660,0:25:34.169
-%then behind that since you couldn't store
-everything on disk so
+and then behind that since you couldn't store
+everything on disks so
0:25:34.169,0:25:36.300
-that you had rows of tape drives
+then you had rows of tape drives
0:25:36.300,0:25:37.880
and then you had this little
@@ -1747,7 +1746,7 @@ set of sort of
0:25:39.610,0:25:43.330
munchkins that would run around and and tend
-to the machine and they mount tapes and take
+to the machine and they'd mount tapes and take
0:25:43.330,0:25:46.710
off tapes and mount disc packs and remove disc packs
@@ -1772,7 +1771,7 @@ you could take out a
set of platters and put in another
0:25:59.460,0:26:02.540
-hundred megabytes of platters and these are
+hundred megabytes set of platters and these are
platters that are
0:26:02.540,0:26:05.280
@@ -1780,7 +1779,7 @@ this big around and it's like six or eight
of them and
0:26:05.280,0:26:09.140
-a giant head assemblies they comes rumbling in and
+ giant head assemblies they comes rumbling in and
out
0:26:09.140,0:26:12.440
@@ -1797,14 +1796,14 @@ million instructions per second, 10 mips
and 10 mips
0:26:21.630,0:26:28.330
-that's was more computing power than anybody
+ was more computing power than anybody
could possibly imagine using in a single application
0:26:28.330,0:26:28.880
just
0:26:28.880,0:26:31.050
-by contrast this this
+by contrast you know this
0:26:31.050,0:26:34.070
four-year-old laptop here is probably on
@@ -1822,7 +1821,7 @@ do with a lot of computing power
0:26:40.760,0:26:44.640
and the other thing was that you didn't have
-a notion of sort of operating system that had
+a notion of sort of an operating system that had
0:26:44.640,0:26:45.890
applications running on it
@@ -1838,7 +1837,7 @@ the raw hardware
and so
0:26:51.750,0:26:55.900
-IBM who was a big manufacturer
+what IBM who was a big manufacturer
of machines in those days
0:26:55.900,0:26:59.060
@@ -1852,43 +1851,43 @@ and this was a little
you'd call an operating system really
0:27:02.549,0:27:05.130
-but what it did is a cloned
+but what it did is it cloned
0:27:05.130,0:27:09.270
-independent copies of the machine worked just
-like the original machines you could boot
+independent copies of the machine that worked just
+like the original machines so you could boot
0:27:09.270,0:27:11.769
-something that thought it was an operating
+something that you thought it was an operating
system
0:27:11.769,0:27:13.380
on top of VM
0:27:13.380,0:27:16.750
-so you take one least ten that machines and
+so you take one least ten mip machines and
it would clone
0:27:16.750,0:27:20.050
six identical one mip copies
0:27:20.050,0:27:22.030
-%uh and then you could boot
+and then you could boot
0:27:22.030,0:27:24.700
whatever you wanted on each one of those machines
so
0:27:24.700,0:27:29.510
-if you were doing database that you do your
-database because database cannot run on the raw hardware
+if you were doing database stuff you would boot your
+database because database cannot ran on the raw hardware
0:27:29.510,0:27:32.920
or if you're doing payroll who would boot up the payroll
program
0:27:32.920,0:27:37.950
-%uh or if you actually tried to service the
+or if you actually tried to service
users you could boot a time sharing batch thing
0:27:37.950,0:27:40.790
@@ -1900,20 +1899,20 @@ or they even had TSO the Time Sharing
Option where you could interactively sit
0:27:44.460,0:27:45.559
-and type send
+and type and send
0:27:45.559,0:27:47.560
stuffs in and get answers back
0:27:47.560,0:27:48.570
-%uh and
+ and
0:27:48.570,0:27:51.429
-%uh also you could boot TSO so whatever set
+also you could boot TSO so whatever set
of
0:27:51.429,0:27:52.219
-%um
+
0:27:52.219,0:27:55.339
things you need you could boot them and they ran
@@ -1930,7 +1929,7 @@ raw copy of the hardware
so when UNIX came along
0:28:04.529,0:28:07.350
-they sort of like the notion of
+they sort of liked the notion of
0:28:07.350,0:28:11.509
providing the concept of independent
@@ -1940,13 +1939,13 @@ things that you could operate in
but they wanted it at a higher level
0:28:13.610,0:28:15.610
-so you're looking merely to do that
+so you're looking really to do it
0:28:15.610,0:28:17.480
instead of at the raw hardware level
0:28:17.480,0:28:19.679
-to do it at a process well
+to do it at a process level
0:28:19.679,0:28:23.799
and the idea that then was that the interface you
@@ -1962,19 +1961,19 @@ and the idea then was that
you would be given a process or set of processes
0:28:30.740,0:28:34.990
-and those were independent your process
+and those were independent. your process
couldn't affect
0:28:34.990,0:28:38.830
-the address space of another process reach
-over and mess around with the addresses,
+the address space of another processor. You couldn't reach
+over and mess around with their addresses,
0:28:38.830,0:28:41.030
you couldn't mess around with their I/O
channels
0:28:41.030,0:28:43.179
-%uh you could slow them down by
+you could slow them down by
0:28:43.179,0:28:44.299
being a pig but
@@ -1987,14 +1986,14 @@ other processes
and
0:28:48.480,0:28:49.830
-%uh so
+so
0:28:49.830,0:28:52.669
what the interfaces that they had there
0:28:52.669,0:28:58.660
-with one that had these characteristics
-he had a a paged virtual address space
+was one that had these characteristics
+ had a a paged virtual address space
0:28:58.660,0:29:02.980
so you din't have to know as in the old days how much physical
@@ -2014,27 +2013,27 @@ hardware had segments or some other
hardware brain damage
0:29:13.580,0:29:17.390
-it look to you like he just had a big uniform
+it looked to you like he just had a big uniform
address space and
0:29:17.390,0:29:21.070
-the size of the address space was independent
-of the amount of memory that was on the machine
+the size of your address space was independent
+of the amount of memory that was on your machine
0:29:21.070,0:29:23.900
-your address space could be bigger than amount of
+your address space couldn't be bigger than amount of
physical memory
0:29:23.900,0:29:26.499
-cause we got to move pages around underneath
+cause we sort of move pages around underneath
0:29:26.499,0:29:29.320
whatever part address space was actually
active
0:29:29.320,0:29:34.260
-that is obviously do this if you if
-you are trying to run 1 gigabyte of
+and there's obviously limits to this if
+you are trying to run a 1 gigabyte of
0:29:34.260,0:29:35.630
application on top of
@@ -2054,32 +2053,32 @@ will eventually move the pages around and you will
progress through getting your application run
0:29:49.740,0:29:53.890
-anothe thing was dealing with software
+another thing was dealing with software
interrupts
0:29:53.890,0:29:55.789
-%uh in the old days
+in the old days
0:29:55.789,0:29:58.749
you had to understand how the hardware worked
0:29:58.749,0:30:03.900
in order to deal with exceptional conditions
-so for example to did a divide by zero
+so for example if you did a divide by zero
0:30:03.900,0:30:08.170
-the the hardware would have jumped to some
+the hardware would jump through some
vector location or
0:30:08.170,0:30:08.630
something
0:30:08.630,0:30:12.799
-and you had no khow how that worked and make
+and you had know how that worked and make
sure that you had your program
0:30:12.799,0:30:16.510
-use just a little bit of assembly language which
+usually some little bit of assembly language
set up to deal with that
0:30:16.510,0:30:19.870
@@ -2090,11 +2089,11 @@ from the hardware here
and so they did this thing called signals
0:30:22.080,0:30:25.700
-the answer is, the finest of the signals is that
+and so they just define a set of the signals is that
if you do divide by zero
0:30:25.700,0:30:29.529
-%uh you simply register a routine you
+you simply register a routine you
want to have called you don't have to know
0:30:29.529,0:30:31.220
@@ -2125,7 +2124,7 @@ protection and scheduling and so on
and one of the
0:30:55.820,0:31:00.320
-the early philosophies of UNIX was that to try
+the early philosophies of UNIX was to try
and keep it simple.
0:31:00.320,0:31:02.630
@@ -2139,11 +2138,11 @@ pre dated UNIX was a thing called
Multix
0:31:07.350,0:31:12.820
-%uh Multix was was a joint project between
+Multix was was a joint project between
Honeywell, a big computer manufacturer of the
0:31:12.820,0:31:15.740
-time at
+time
0:31:15.740,0:31:17.129
AT&T bell laboratories
@@ -2161,7 +2160,7 @@ a big university then and
still today
0:31:24.690,0:31:29.259
-%uh and that those three organizations got
+and those three organizations got
together to try and build this
0:31:29.259,0:31:31.400
@@ -2178,11 +2177,11 @@ more grandiose and more complex and never
finished
0:31:37.160,0:31:38.979
-but as soon as that's what we see
+because as soon as they sort of see
0:31:38.979,0:31:42.709
-although we know how to do that but also we could
-do this other thing too and so then the teared it
+oh we know how to do that but we could
+do this other thing too and so then they would tear it
0:31:42.709,0:31:43.429
apart and
@@ -2211,33 +2210,33 @@ the two of the people that had been working on
that project, Ken Thompson and Dennis Richie
0:32:00.000,0:32:04.390
-%uh were sort of bound because they were now
+were sort of bummed because they were now
back to typing cards and putting them through
0:32:04.390,0:32:05.259
-card reader and
+card readers and
0:32:05.259,0:32:07.960
-they are just used to the idea that you could
+they had gotten used to the idea that you could
actually
0:32:07.960,0:32:11.559
-sit at an ASSR teletype and interact
+sit at an ASSR33 teletype and interact
with your computer
0:32:11.559,0:32:13.440
and so
0:32:13.440,0:32:18.230
-they found an old %uh PDP-8 soon off in
-the quarter that have been abandoned
+they found an old %uh PDP-8 sitting off in
+the corner that had been abandoned
0:32:18.230,0:32:22.120
and started working on this little tiny operating
system which they called UNIX
0:32:22.120,0:32:26.549
-%uh which eventually moved to the PDP-11 and
+which eventually moved to the PDP-11 and
became what we have today
0:32:26.549,0:32:28.050
@@ -2251,8 +2250,8 @@ where everything had been done and
in great grandiose detail
0:32:34.110,0:32:37.549
-and because they're fundamentally just two
-the of them working on it and they wanted to get something
+and because they're fundamentally were two
+ of them working on it and they wanted to get something
0:32:37.549,0:32:38.370
done and
@@ -2264,14 +2263,14 @@ within a year or so
one of their philosophies was
0:32:41.529,0:32:44.099
-let's find out one way of doing things
+let's find the one way of doing things
0:32:44.099,0:32:48.180
let's not have eight ways from Sunday let's just
get the one way
0:32:48.180,0:32:53.860
-and and that's what we will provide. So what is
+and that's what we will provide. So what is
the sort of core set of things that we need.
0:32:53.860,0:32:58.620
@@ -2289,8 +2288,8 @@ user identifier and at that time a single group
identifier and later expanded
0:33:09.620,0:33:14.200
-and they used that sort of identifies for everything
-so its used for counting, used for main
+and they used that sort of identifiers for everything
+so its used for counting, used for making
0:33:14.200,0:33:17.410
protection decisions, used for scheduling
@@ -2304,17 +2303,17 @@ again it was the simplicity of thing which
was what was driving their decision
0:33:24.279,0:33:28.840
-but they're really sort of true key idea
+but they're really sort of two key ideas
that they had
0:33:28.840,0:33:30.880
-that really made a difference that
+that really made the difference that
0:33:30.880,0:33:32.539
-that's were set them up side
+that's what set them up side
0:33:32.539,0:33:34.749
-from what everybody else done before them
+from what everybody else had done before them
0:33:34.749,0:33:35.450
and which
@@ -2327,24 +2326,24 @@ more or less ever since
the first of these was the notion
0:33:41.869,0:33:44.840
-that we have a unique descriptive space
+that we have a unique descriptor space
0:33:44.840,0:33:46.289
-%uh that is
+that is
0:33:46.289,0:33:51.250
given a descriptor it can reference
any I/O device
0:33:51.250,0:33:53.650
-or even any kind of I/O channel
+so or even any kind of I/O channel
0:33:53.650,0:33:58.270
so you can have a descriptor for terminal
-or descriptor for file or descriptive for
+or descriptor for a file or descriptive for
0:33:58.270,0:34:02.240
-a disk or descriptor for pipe or descriptor
+a disk or descriptor for a pipe or descriptor
for a socket
0:34:02.240,0:34:03.500
@@ -2355,11 +2354,11 @@ you don't need to know
0:34:04.790,0:34:07.940
what it references in order to be able to read
-and write on that thing
+and write that thing
0:34:07.940,0:34:11.290
so if i hand you a descriptor
-can read from that the descriptor or you can write
+you can read from that the descriptor or you can write
0:34:11.290,0:34:13.259
to that descriptor
@@ -2374,11 +2373,11 @@ the correct thing will happen
and you'd say well
0:34:19.089,0:34:23.629
-that's obvious I mean how else could you
-possibly think about doing it
+that's so obvious I mean how else could you
+possibly think of doing it?
0:34:23.629,0:34:25.179
-predating UNIX
+well predating UNIX
0:34:25.179,0:34:28.059
everything was done with
@@ -2392,10 +2391,10 @@ file, close a file
0:34:33.419,0:34:37.429
and there was another set of system calls which
-would open a terminal,read a terminal, write terminal
+would open a terminal,read a terminal, write terminal,
0:34:37.429,0:34:38.089
-,close terminal
+close terminal
0:34:38.089,0:34:39.210
and yet another one
@@ -2405,8 +2404,8 @@ which was create a pipe,read a pipe,
write a pipe and so on.
0:34:42.409,0:34:47.699
-so if you are just dropped at a stupid
-program like CAD
+so if you are just a drop dead stupid
+program like say CAD
0:34:47.699,0:34:51.579
you would have to have code in there and say was
@@ -2436,7 +2435,7 @@ whereas when they went to
the uniform descriptor space
0:35:07.159,0:35:09.630
-CAD doesn't know and doesn't need to know
+CAD doesn't know it doesn't need to know
it just says
0:35:09.630,0:35:10.819
@@ -2446,7 +2445,7 @@ read my input,
write the output
0:35:13.979,0:35:17.059
-it works and we add a new type of descriptor
+and it works and we add a new type of descriptor
0:35:17.059,0:35:17.600
and
@@ -2463,7 +2462,7 @@ and pretty much every operating system after
UNIX
0:35:27.019,0:35:28.659
-did that and there's
+did that there's
0:35:28.659,0:35:30.210
one exception of %uh
@@ -2488,7 +2487,7 @@ Longhorn will be here.
and anyway
0:35:43.939,0:35:46.190
-this set of facilities
+this set of facilities then
0:35:46.190,0:35:50.150
makes up the UNIX virtual machine
@@ -2497,14 +2496,14 @@ makes up the UNIX virtual machine
and
0:35:51.559,0:35:55.559
-in sometimes we still see virtual machines
+in some sense we still see virtual machines
being used today in fact we're seeing sort
0:35:55.559,0:35:56.749
of a reversion
0:35:56.749,0:36:01.429
-%uh back to some of the ideas stop in things
+back to some of the IBM stuff in things
like the VMware
0:36:01.429,0:36:03.079
@@ -2518,29 +2517,29 @@ native operating systems again so sort of
interesting to watch
0:36:08.280,0:36:09.060
-that's the sort of
+that the sort of
0:36:09.060,0:36:12.919
-%uh %uh pendulum of back going back and forth
+pendulum of back going back and forth
of what's the correct layer
0:36:12.919,0:36:14.609
for for doing
0:36:14.609,0:36:18.890
-%uh virtual machines
+virtual machines
0:36:18.890,0:36:22.499
-Okay. so far so good.
+Okay? so far so good?
0:36:22.499,0:36:24.719
-all right i said there was
+all right so i said that there were
0:36:24.719,0:36:27.160
two key ideas that UNIX had
0:36:27.160,0:36:30.279
-the first thing is uniform descriptor
+the first of these being the uniform descriptor
space
0:36:30.279,0:36:35.819
@@ -2551,7 +2550,7 @@ this notion of processes as a commodity
item
0:36:37.309,0:36:40.220
-so here on Page 17 I tried to lay
+so here on Page 17 I've tried to lay
it out
0:36:40.220,0:36:41.090
@@ -2561,14 +2560,14 @@ the
that the components that make up a process
0:36:44.159,0:36:45.759
-%uh and
+and
0:36:45.759,0:36:50.359
what do I really mean when I say a process as
a commodity item
0:36:50.359,0:36:53.650
-leading up to
+okay leading up to
0:36:53.650,0:36:54.689
UNIX
@@ -2580,7 +2579,7 @@ the systems that pre-dated it,
processes were these very large
0:36:59.200,0:37:02.169
-heavyweight expensive thing
+heavyweight expensive things
0:37:02.169,0:37:02.779
and
@@ -2607,7 +2606,7 @@ to support
so they'd say well
0:37:18.140,0:37:20.739
-well, let upto six things happen at once
+well, we'll let upto six things happen at once
0:37:20.739,0:37:22.490
and so as part of booting up
@@ -2623,13 +2622,13 @@ and now you as a user if you wanted to do
something let's say you wanted to
0:37:30.059,0:37:32.009
-compile and ran a program
+compile and run a program
0:37:32.009,0:37:34.960
-%uh you would be given a process
+you would be given a process
0:37:34.960,0:37:36.019
-and it's up to you
+and it was up to you
0:37:36.019,0:37:39.369
to figure out how to stage what you needed
@@ -2639,7 +2638,7 @@ done
and
0:37:39.819,0:37:43.930
-%uh that this was often fairly complex
+that this was often fairly complex
0:37:43.930,0:37:47.880
and so you would have to write out all the
@@ -2649,25 +2648,25 @@ steps that you wanted
in this wonderful thing called JCL
0:37:50.300,0:37:52.259
-Job Control Language and
+Job Control Language.
0:37:52.259,0:37:56.650
Job Control Language was send mail configuration
file of the sixties
0:37:56.650,0:38:00.679
-other where people who sold job that the company
+there where people whose sole job at the company
was how to put this stuff together 'cause
0:38:00.679,0:38:04.189
-like to do is get what one extra space or
-missing comma
+all you had to do is get one extra space or
+a missing comma
0:38:04.189,0:38:05.000
-something in their
+something in there
0:38:05.000,0:38:08.630
-and I hope it would just blow up it would
+and the whole thing would just blow up. it would
just sort of spit the card deck back at
0:38:08.630,0:38:09.799
@@ -2675,7 +2674,7 @@ you and say well
0:38:09.799,0:38:13.500
somewhere in there is a mistake that's sort of
-the general area of this card
+in the general area of this card
0:38:13.500,0:38:15.549
and I can't deal with it. Fix it.
@@ -2685,7 +2684,7 @@ and of course
0:38:16.489,0:38:20.550
in those days it wasn't just a matter of hitting
-carriage when you know make cariage return you have to
+carriage when you know make carriage return you have to
0:38:20.550,0:38:25.239
get your deck pull out the card, and type the
@@ -2710,10 +2709,10 @@ if you were not lucky a few hours later
you would get
0:38:37.849,0:38:39.570
-a print print out
+a print out
0:38:39.570,0:38:43.419
-which was what it happened and then you could
+which was what had happened and then you could
look at it and you know
0:38:43.419,0:38:47.209
@@ -2724,23 +2723,22 @@ I get to do it all again
so
0:38:49.930,0:38:54.940
-if you would need to do something
-like compiling and running a program
+the thing you would need to do there for compiling and running a program
0:38:54.940,0:38:59.579
was you'd have to break into these steps. well
I need to run the the preprocessor
0:38:59.579,0:39:04.670
-and so us clean out whatever gump that was left
+and so clean out whatever gump that was left
over on that process from the previous user
0:39:04.670,0:39:06.240
put the preprocessor in there
0:39:06.240,0:39:10.530
-%uh and then read from this file here let's
-say gotta put it somewhere so creative
+and then read from this file here let's
+say I gotta put it somewhere so creative
0:39:10.530,0:39:12.510
scratch file over on this disk and
@@ -2768,7 +2766,7 @@ the output of the preprocessor and then
you'd load the first pass of the compiler
0:39:33.100,0:39:36.930
-and lets now read from that scratch file
+and you say now read from that scratch file
and create this other scratch file over here and
0:39:36.930,0:39:39.450
@@ -2780,7 +2778,7 @@ and then load the second pass, put that back
into another scratch file and then we run this
0:39:43.830,0:39:45.950
-assembler, optimizer then the
+assembler, and the optimizer then the
0:39:45.950,0:39:47.750
loader this and that
@@ -2789,13 +2787,13 @@ loader this and that
finally run the program
0:39:49.410,0:39:50.900
-and %uh if all goes well
+and if all goes well
0:39:50.900,0:39:57.029
you know at step sixteen out comes the answer
0:39:57.029,0:39:58.129
-fourty two. so UNIX
+forty two. so UNIX
0:39:58.129,0:40:00.819
said, look this is silly
@@ -2815,7 +2813,7 @@ all these cycles it's like
0:40:12.179,0:40:16.309
computers are supposed to be labor-saving
-devices right so
+devices right? so
0:40:16.309,0:40:20.150
they came up with this notion that they would
@@ -2852,7 +2850,7 @@ executable
and
0:40:40.030,0:40:42.880
-we simply create each of these processes
+we will simply create each of these processes
0:40:42.880,0:40:44.650
and
@@ -2861,7 +2859,7 @@ and
so you as a user just
0:40:46.549,0:40:49.479
-type you know the C compiler just
+type you know the C compiler and it just
0:40:49.479,0:40:52.429
fork these things pipe them together got the result
@@ -2874,14 +2872,14 @@ then once it was done with this processes is
just threw them away so any time you'd create a
0:40:57.509,0:41:00.479
-new process and it came to you christine clean
+new process and it came to you pristine clean
0:41:00.479,0:41:04.239
and you needed a bunch of things it did
put everything in intermediate files
0:41:04.239,0:41:07.549
-the fact that matter is in the early days
+the fact of the matter is in the early days
0:41:07.549,0:41:08.129
those computers
@@ -2895,15 +2893,15 @@ behind you those pipes were actually implemented
as files
0:41:15.809,0:41:19.319
-you didn't have atleast to remember to create
+but you didn't have atleast to remember to create
them and delete them
0:41:19.319,0:41:20.200
and deal with them
0:41:20.200,0:41:24.020
-as far as you're concerned it just look stuff flowing through pipes
-and of course today it
+as far as you were concerned it just look stuff
+flowing through pipes and of course today it
0:41:24.020,0:41:24.490
just
@@ -2922,7 +2920,7 @@ create processes on the fly is needed and
connect them together as needed
0:41:35.559,0:41:38.039
-and that was a novel concept
+it was a novel concept
0:41:38.039,0:41:43.599
and it wasn't that somehow mysteriously figured
@@ -2957,7 +2955,7 @@ so we have to create a process
load the ls binary into it
0:42:04.259,0:42:06.180
-and it prints a line or two on your screen
+it prints a line or two on your screen
0:42:06.180,0:42:10.609
and we tear the entire thing down and return
@@ -2972,13 +2970,13 @@ a tiny fraction of it is actually running
ls
0:42:19.239,0:42:24.259
-it goes so fast, who cares right
+but it goes so fast, who cares right
0:42:24.259,0:42:25.749
-the point is that
+so the point is that
0:42:25.749,0:42:30.039
-%uh that concept of just creating things as
+that concept of just creating things as
needed
0:42:30.039,0:42:31.780
@@ -2992,8 +2990,8 @@ okay so what is a process actually made up
of
0:42:38.639,0:42:43.179
-%uh it gets some amount of CPU time or at
-least we do really hope that it gets some
+it gets some amount of CPU time or at
+least we do dearly hope that it gets some
0:42:43.179,0:42:46.050
amount of CPU time, the lack of getting
@@ -3003,7 +3001,7 @@ CPU time
that makes it
0:42:46.670,0:42:47.979
-a pure so sluggish
+a computer so sluggish
0:42:47.979,0:42:49.409
of course
@@ -3024,26 +3022,26 @@ in a couple weeks time
we have the asynchronous events
0:43:01.619,0:43:04.569
-%uh these are the external events that
+these are the external events that
0:43:04.569,0:43:05.659
are coming in
0:43:05.659,0:43:07.679
-%uh so
+so
0:43:07.679,0:43:10.169
they may be either things that
0:43:10.169,0:43:14.339
-we're coming in from the outside world like
+were coming in from the outside world like
start, stop and quit
0:43:14.339,0:43:15.279
-%uh oh
+oh
0:43:15.279,0:43:18.170
-out-of-band arrival notification that kind
+out-of-band data arrival notification that kind
of thing
0:43:18.170,0:43:22.339
@@ -3051,7 +3049,7 @@ or it may in fact be things that the program
is bringing down upon itself
0:43:22.339,0:43:25.590
-on such as a segment fault,a divide by zero
+such as a segment fault,a divide by zero
0:43:25.590,0:43:26.910
and some other
@@ -3061,14 +3059,14 @@ what would normally be viewed as incorrect
operation
0:43:31.959,0:43:35.849
-and so will talk about that when we talk about
+and so we'll talk about that when we talk about
signals
0:43:35.849,0:43:37.039
every program
0:43:37.039,0:43:38.899
-get some amount of memory
+gets some amount of memory
0:43:38.899,0:43:42.659
it gets an initial amount when it starts
@@ -3078,7 +3076,7 @@ up injured generally allocates more as it
goes along
0:43:45.229,0:43:49.429
-of course we will deal with up her extensively
+this of course we will deal with very extensively
will spend an entire week on it
0:43:49.429,0:43:54.249
@@ -3088,7 +3086,7 @@ when we talk about how virtual memory is implemented
and
0:43:54.609,0:43:57.429
-%uh then we get I/O descriptors
+then we get I/O descriptors
0:43:57.429,0:44:02.259
I used to say that every program had to have
@@ -3105,7 +3103,7 @@ then it was sort of pointless
0:44:09.049,0:44:12.900
of course I had to have one of my students
-come up and point out to me there is a
+come up and point out to me there is an a
0:44:12.900,0:44:13.849
class of programs
@@ -3120,7 +3118,7 @@ and that is
these things called benchmarks
0:44:19.549,0:44:23.249
-the just compute something all we really care
+it just compute something all we really care
about is how long it takes them to compute
0:44:23.249,0:44:24.959
@@ -3130,7 +3128,7 @@ we dont actually care what the answer is
In theory we dont
0:44:26.019,0:44:29.779
-I personally felt like my benchmark stop with
+I personally like my benchmark stop with
something so I can see it there
0:44:29.779,0:44:31.489
@@ -3153,7 +3151,7 @@ of course we'll talk about descriptors
quite extensively
0:44:43.659,0:44:47.349
-%uh as we go through the I/O subsystem
+as we go through the I/O subsystem
0:44:47.349,0:44:50.969
okay so the executive summary is that processes
@@ -3193,14 +3191,14 @@ providing that
bit of service
0:45:16.639,0:45:17.900
-the next thing that I
+the next thing that I'm
0:45:17.900,0:45:22.210
going to do now is this go through and lay
out some of the terminology that
0:45:22.210,0:45:23.239
-we have we when
+we have when
0:45:23.239,0:45:25.130
we're talking about processes
@@ -3220,7 +3218,7 @@ make up
the system
0:45:36.640,0:45:39.029
-the currently running user process
+we have the currently running user process
0:45:39.029,0:45:41.180
and then what we call the top half of the kernel
@@ -3253,7 +3251,7 @@ but for any given CPU on a multiprocessor
it is running exactly one process
0:46:05.709,0:46:09.309
-so you may think they were running for four-five
+so you may think they we're running for four-five
processes all at once
0:46:09.309,0:46:14.319
@@ -3267,7 +3265,7 @@ actually running
and
0:46:18.609,0:46:21.429
-that is the one that we have within the system
+that is the one that we have loaded in the system
0:46:21.429,0:46:25.199
now we give the illusion that were running
@@ -3287,14 +3285,14 @@ but in reality
that's not really happening
0:46:33.619,0:46:36.440
-okay there is a set of properties that I want to
+okay so there is a set of properties that I want to
look at
0:46:36.440,0:46:40.899
that had to do with each one of these parts here
0:46:40.899,0:46:44.359
-but that just to look at it from the
+but just to sort of look at it from the
big picture perspective
0:46:44.359,0:46:45.970
@@ -3319,7 +3317,7 @@ like calling strcat, strcpy or something
like that
0:47:00.319,0:47:03.679
-%uh when you do a system call
+when you do a system call
0:47:03.679,0:47:05.650
we take that same set of parameters
@@ -3334,35 +3332,35 @@ brick Wall here if you will
that is protecting
0:47:11.380,0:47:13.680
-the the top half of the kernel
+the top half of the kernel
0:47:13.680,0:47:15.299
from the application
0:47:15.299,0:47:18.899
-I'm more go into some detail about how that
+I'll go more into some detail about how that
actually gets implemented
0:47:18.899,0:47:22.729
-but in a sense you can think of it
-is is there sort of this whaling Wall with little
+but in essense you can think of it
+is is there sort of this whaling Wall and these little
0:47:22.729,0:47:24.990
-chinks there you can sort of push a request
+chinks there and you can sort of push a request
through
0:47:24.990,0:47:28.230
-and somebody other sites where polls that
-looks at it and decide whether they're going
+and somebody other sides sort of pulls that
+looks at it and decides whether they're going
0:47:28.230,0:47:28.690
to
0:47:28.690,0:47:30.769
-dained to provide service to you
+dain to provide service to you
0:47:30.769,0:47:34.229
-and if they do then they will send it back
+and if they do then they sort of send it back
0:47:34.229,0:47:37.649
well like a library where you can just sort
@@ -3389,7 +3387,7 @@ a lot like
a big library
0:47:50.509,0:47:53.509
-%uh it just happens to be a library of
+%uh it just happens to be a library
routines
0:47:53.509,0:47:57.599
@@ -3404,7 +3402,7 @@ for what's the difference between the C
library and the top half of the kernel
0:48:03.259,0:48:08.020
-%uh if it's something that you're doing that
+if it's something that you're doing that
no other process needs to know about
0:48:08.020,0:48:09.799
@@ -3445,11 +3443,11 @@ has to be done by the kernel
because they can coordinate
0:48:33.120,0:48:37.189
-on the daemon processes that are trying to access
+all the different processes that are trying to access
that file.
0:48:37.189,0:48:40.529
-so the top of the kernel is pretty straightforward
+so the top half of the kernel is pretty straightforward
code
0:48:40.529,0:48:45.539
@@ -3465,20 +3463,20 @@ get some data that we put it in the buffer and
we return back
0:48:53.719,0:48:57.470
-in fact writing code for the top half of
+and in fact writing code for the top half of
the kernel is
0:48:57.470,0:48:59.729
not all that difficult to do
0:48:59.729,0:49:00.989
-%uh it's
+it's
0:49:00.989,0:49:01.959
you have
0:49:01.959,0:49:05.939
-for many the same properties that you would
+for many of the same properties that you would
when you're writing user level application
0:49:05.939,0:49:07.529
@@ -3489,7 +3487,7 @@ the bottom half of the kernel is where things
start to get nasty
0:49:11.779,0:49:14.820
-thus the bottom half of the kernel is the part
+because the bottom half of the kernel is the part
of the system
0:49:14.820,0:49:18.769
@@ -3497,7 +3495,7 @@ that deals with all of the asynchronous events
in the system
0:49:18.769,0:49:22.179
-%uh is things like device drivers,
+is things like device drivers,
0:49:22.179,0:49:23.779
timers
@@ -3515,7 +3513,7 @@ so
for example a packet arrives on the network
0:49:31.459,0:49:33.670
-that causes and interrupt a command
+that causes an interrupt to come and
0:49:33.670,0:49:36.729
that will be handled by the bottom half of
@@ -3529,7 +3527,7 @@ when an interrupt came in it preempted whatever
else was going on
0:49:43.079,0:49:45.400
-and it ran until it's finished and then return
+and it ran until it finished and then it returned
0:49:45.400,0:49:46.539
and it could not
@@ -3542,8 +3540,8 @@ things
%uh in current systems
0:49:51.339,0:49:54.549
-you can actually go to sleep in a interrupt driver
-and wait for
+you can actually go to sleep in the interrupt driver
+and waiting for
0:49:54.549,0:49:56.739
some other activity to complete
@@ -3558,7 +3556,7 @@ not a good idea to do that
because
0:50:01.909,0:50:06.739
-the usual case of most of device drivers is they
+the usual case of most device drivers is they
can finish whatever they're doing in an interrupt
0:50:06.739,0:50:08.579
@@ -3568,7 +3566,7 @@ without ever blocking
and so
0:50:09.580,0:50:13.649
-when an interrupt comes in and we assume that you're
+when an interrupt comes in we assume that you're
not going to sleep
0:50:13.649,0:50:14.710
@@ -3579,7 +3577,7 @@ then go to sleep.oh man
0:50:17.219,0:50:20.469
you didnt tell us you're going to do this we
-have to go off into a whole lot of other work
+have to go off to do a whole lot of other work
0:50:20.469,0:50:23.029
that we had originally planned on doing
@@ -3588,7 +3586,7 @@ that we had originally planned on doing
so if you go to sleep in a device driver
0:50:25.460,0:50:28.209
-you are taking a very serious performance
+you are taking a very serious performance hit
0:50:28.209,0:50:31.019
so it's highly recommended that you don't
@@ -3606,10 +3604,10 @@ of not being able to sleep in the bottom half
of the kernel
0:50:39.899,0:50:42.119
-certain properties that have
+that you have certain properties that have
0:50:42.119,0:50:44.769
-%uh taken over in device drivers
+taken over in device drivers
0:50:44.769,0:50:45.940
and that is
@@ -3633,13 +3631,13 @@ Go read this particular block
0:50:59.410,0:51:02.650
here is a chunk of memory that I want that
-my data to put in
+ data to put in
0:51:02.650,0:51:03.959
and
0:51:03.959,0:51:06.169
-no to find it when it's done
+notify me when it's done
0:51:06.169,0:51:06.970
because
@@ -3681,7 +3679,7 @@ you don't know when somebody's going to send
packets to you
0:51:34.630,0:51:37.040
-you say well you're looking you're open connections
+you say well you're looking to open connections
0:51:37.040,0:51:39.360
but if you're doing something like IP forwarding
@@ -3710,7 +3708,7 @@ they need to allocate memory
and
0:51:56.640,0:51:58.829
-it memory gets into short supply
+if memory gets into short supply
0:51:58.829,0:52:01.689
and they try to allocate memory and it's not
@@ -3735,14 +3733,14 @@ it's like well I didn't have any place to
put it sorry oops
0:52:18.109,0:52:20.940
-now that doesn't called incorrect behavior
+now that doesn't cause incorrect behavior
0:52:20.940,0:52:24.369
-because a higher level protocols what we transmit
+because the higher level protocols will retransmit
0:52:24.369,0:52:29.140
but it does cause great performance problems
-because we transmissions means that connections
+because retransmission means that connections
0:52:29.140,0:52:29.879
stall
@@ -3771,7 +3769,7 @@ pre allocate a certain amount of memory for
the network drivers
0:52:46.499,0:52:48.299
-%uh and
+and
0:52:48.299,0:52:52.169
we try very hard to make sure that we're not
@@ -3782,7 +3780,7 @@ if packets come fast enough and we can't deal
with them
0:52:54.869,0:52:57.940
-as quickly as they are arriving over short period
+as quickly as they are arriving then over short period
of time
0:52:57.940,0:53:03.489
@@ -3790,11 +3788,11 @@ we get to the point where we simply have to start
dropping packets
0:53:03.489,0:53:07.649
-this is a part of kernel that you do not wish to
+okay this is a part of kernel that you do not wish to
write code for
0:53:07.649,0:53:10.919
-because it is extremely difficult
+because it is extremely difficult to
debug
0:53:10.919,0:53:12.759
@@ -3822,7 +3820,7 @@ and when all those things happened
the system panics
0:53:32.719,0:53:37.380
-and of course there's like the panic
+and of course there's like it panics
cause you're following some bad pointer
0:53:37.380,0:53:40.969
@@ -3840,7 +3838,7 @@ try to debug things like that is extremely
difficult
0:53:47.400,0:53:48.509
-mean you can
+and you can
0:53:48.509,0:53:52.120
think well I think I found the problem but
@@ -3858,7 +3856,7 @@ and
0:53:57.469,0:54:01.449
you know so you sort of statistically
-gets that you fix that you know I was getting
+guess that you fix that you know I was getting
0:54:01.449,0:54:03.510
this bug once every three days
@@ -3876,11 +3874,11 @@ or if you've been lucky
and and it's
0:54:10.459,0:54:14.349
-that that coupled with the fact that you're
+that coupled with the fact that you're
dealing with hardware
0:54:14.349,0:54:18.049
-and hardware really works the way it's documented
+and hardware rarely works the way it's documented
to work
0:54:18.049,0:54:21.770
@@ -3902,7 +3900,7 @@ not said it doesn't work
occasionally
0:54:33.769,0:54:36.110
-this is another reason that you really want
+so this is another reason that you really want
of avoid
0:54:36.110,0:54:40.459
@@ -3910,14 +3908,14 @@ dealing with this part of the system if
you can possibly help
0:54:40.459,0:54:44.369
-but lets go through and and look at some
-of the properties here starting up with at
+okay but lets go through and and look at some
+of the properties here starting up at
0:54:44.369,0:54:45.789
the user process
0:54:45.789,0:54:47.980
-%uh we're running with
+we're running with
0:54:47.980,0:54:51.449
preemptive scheduling
@@ -3939,7 +3937,7 @@ schedulers like the real time scheduler
where what I'm saying isnt that true
0:55:02.869,0:55:05.709
-%uh will talk about some of the schedulers was
+we'll talk about some of the schedulers was
later
0:55:05.709,0:55:09.930
@@ -3947,7 +3945,7 @@ but the usual scheduler that you're running
on under UNIX is a shared scheduler
0:55:09.930,0:55:13.229
-and under the shared scheduler the user applications
+and under the shared scheduler user applications
0:55:13.229,0:55:15.159
run with pre emptive scheduling
@@ -3959,13 +3957,13 @@ and pre emptive scheduling means that
you run at the whim of the system
0:55:20.019,0:55:21.420
-if they want you to run
+if it wants you to run
0:55:21.420,0:55:22.140
you run
0:55:22.140,0:55:25.490
-once you start running you have no guarantee
+once you to start running you have no guarantee
of how long you're going to run
0:55:25.490,0:55:29.370
@@ -3976,11 +3974,11 @@ and then decide it doesn't like you many more
it wants to run something else
0:55:31.150,0:55:35.920
-while you might get to run for several seconds
+or you might get to run for several seconds
and in a row with the with no intervening
0:55:35.920,0:55:37.469
-things interrupting
+things interrupting you
0:55:37.469,0:55:39.719
you just don't know
@@ -3995,7 +3993,7 @@ really all you know is
that
0:55:43.569,0:55:48.239
-%uh they claim that they're using statistics
+they claim that they're using statistics
and that and that the statistics are fair
0:55:48.239,0:55:55.059
@@ -4013,7 +4011,7 @@ is that you don't have any way of creating
a critical section
0:56:01.940,0:56:04.950
-you can say okay I don't want to be interrupted
+you can't say okay I don't want to be interrupted
0:56:04.950,0:56:07.429
during this particular sequence of things
@@ -4030,7 +4028,7 @@ okay
0:56:14.979,0:56:18.909
the next thing is that when you're running
-in user process
+in a user process
0:56:18.909,0:56:20.719
you are running in
@@ -4051,7 +4049,7 @@ support privileged and unprivileged
two different modes of operation
0:56:33.709,0:56:37.049
-in privilege mode which is what the kernel
+in privileged mode which is what the kernel
runs in
0:56:37.049,0:56:38.950
@@ -4061,21 +4059,21 @@ the entire repertoire
of the hardware is available
0:56:40.869,0:56:45.339
-by this I mean you can set all the register
-as you can fiddle with the memory management
+by this I mean you can set all the registers
+you can fiddle with the memory management
0:56:45.339,0:56:47.460
unit you can initiate I/O
0:56:47.460,0:56:50.519
-you can access any register anywhere
+you can access any memory anywhere
0:56:50.519,0:56:51.919
etc
0:56:51.919,0:56:56.540
when you're running in unprivileged
-mode which is what user process run in and
+mode which is what user processes run in and
0:56:56.540,0:57:00.709
this a large subset of the instructions which
@@ -4095,11 +4093,11 @@ you cannot access memory that's not part of
your address space
0:57:10.209,0:57:13.299
-%uh you cannot execute certain instructions
+you cannot execute certain instructions
like halt
0:57:13.299,0:57:15.589
-%uh and
+and
0:57:15.589,0:57:19.039
so in general you are protected
@@ -4112,7 +4110,7 @@ address space
this of course is desirable because
0:57:23.759,0:57:27.059
-%uh when you're running in this unprevileged
+when you're running in this unprevileged
mode
0:57:27.059,0:57:28.300
@@ -4169,7 +4167,7 @@ implement things like viruses and worms and
other things because
0:58:05.459,0:58:09.619
-user application can we rewrite the boot
+a user application can we rewrite the boot
block on the disk they can just the write down
0:58:09.619,0:58:13.109
@@ -4184,7 +4182,7 @@ mode you cant write those kinds of
of things
0:58:20.179,0:58:24.119
-modern versions of Windows from about
+so modern versions of Windows anything from about
2000 on
0:58:24.119,0:58:26.630
@@ -4197,7 +4195,7 @@ but UNIX has always required that
and so when you're running an
0:58:30.219,0:58:31.319
-the user process
+ user process
0:58:31.319,0:58:33.389
you cannot block i mean
@@ -4221,7 +4219,7 @@ hey I've got nothing to do. pick somebody else
to run
0:58:49.269,0:58:53.449
-the operating system is the think they can
+and the operating system is the think they can
then execute the instructions which cause
0:58:53.449,0:58:57.609
@@ -4235,7 +4233,7 @@ alright.finally while you're in a user application you're
running on a user stack
0:59:03.400,0:59:06.410
-that's part of the user address space
+that's part of the user's address space
0:59:06.410,0:59:07.889
so
@@ -4256,13 +4254,13 @@ as big as you want it to be
so if you are running on thirty two-bit processor
0:59:19.949,0:59:22.819
-you're stack can get 2 gigabytes
+you're stack can get the 2 gigabytes
0:59:22.819,0:59:23.319
and
0:59:23.319,0:59:26.839
-%uh the what this means is that anytime you
+the what this means is that anytime you
allocate local variables
0:59:26.839,0:59:28.529
@@ -4290,7 +4288,7 @@ and it just decrements your stack pointer by
hundred hundred thousand bytes
0:59:44.029,0:59:45.009
-a way to go
+away you go
0:59:45.009,0:59:47.299
it's just virtual address space