{"version":"1.0.0","segments":[{"startTime":0.37,"endTime":2.87,"body":"- You're sitting at the keyboard ready"},{"startTime":2.87,"endTime":7.87,"body":"to write your magnum opus, all is quiet."},{"startTime":8.36,"endTime":12.28,"body":"Just the calm of the blank"},{"startTime":8.36,"endTime":12.28,"body":"page in front of you,"},{"startTime":12.28,"endTime":15.7,"body":"your computer waits unobtrusively like"},{"startTime":15.7,"endTime":18.235,"body":"a sort of electronic Jeeves,"},{"startTime":15.7,"endTime":18.235,"body":"ready to leap into action"},{"startTime":18.235,"endTime":20.933,"body":"should you command something."},{"startTime":22.14,"endTime":25.17,"body":"But underneath that impassive exterior"},{"startTime":25.17,"endTime":30.17,"body":"lies a maelstrom of"},{"startTime":25.17,"endTime":30.17,"body":"activity hidden from view,"},{"startTime":31.22,"endTime":34.4,"body":"an intricate command"},{"startTime":31.22,"endTime":34.4,"body":"and control structure,"},{"startTime":34.4,"endTime":37.3,"body":"a sort of electronic court of Versailles,"},{"startTime":37.3,"endTime":40.73,"body":"scurrying around making sure the computer"},{"startTime":40.73,"endTime":43.14,"body":"can do its business and you,"},{"startTime":43.14,"endTime":47.453,"body":"the user are treated like Louis XIV,"},{"startTime":48.87,"endTime":51.77,"body":"all that hassle and bustle,"},{"startTime":51.77,"endTime":56.52,"body":"the stuff that makes your"},{"startTime":51.77,"endTime":56.52,"body":"computer work smoothly."},{"startTime":56.52,"endTime":59.373,"body":"That's what we call an operating system."},{"startTime":60.69,"endTime":64.04,"body":"If you prefer something"},{"startTime":60.69,"endTime":64.04,"body":"a bit more prosaic,"},{"startTime":64.04,"endTime":68.087,"body":"then I refer you to that radical magazine,"},{"startTime":68.087,"endTime":73.087,"body":"\"The Beano\", in which the"},{"startTime":68.087,"endTime":73.087,"body":"human brain is portrayed"},{"startTime":73.48,"endTime":78.48,"body":"as having an interior"},{"startTime":73.48,"endTime":78.48,"body":"full of little workers,"},{"startTime":79.56,"endTime":84.2,"body":"beavering away and solving"},{"startTime":79.56,"endTime":84.2,"body":"various cognitive problems."},{"startTime":84.2,"endTime":85.7,"body":"They're called the Numbskulls."},{"startTime":88.106,"endTime":90.17,"body":"And it's quite a good analogy"},{"startTime":90.17,"endTime":93.79,"body":"I think of the operating system"},{"startTime":93.79,"endTime":95.223,"body":"as we know it today,"},{"startTime":97.74,"endTime":98.573,"body":"of course,"},{"startTime":99.75,"endTime":104.75,"body":"early computers didn't have"},{"startTime":99.75,"endTime":104.75,"body":"operating systems at all."},{"startTime":104.78,"endTime":109.287,"body":"And this picture, which"},{"startTime":104.78,"endTime":109.287,"body":"shows Grace Hopper,"},{"startTime":109.287,"endTime":112.2,"body":"one of most famous programmers of all time"},{"startTime":113.79,"endTime":118.67,"body":"sitting at the terminal of"},{"startTime":113.79,"endTime":118.67,"body":"UNIVAC, which was an early,"},{"startTime":118.67,"endTime":119.76,"body":"early computer system."},{"startTime":119.76,"endTime":122.16,"body":"I talked about it in"},{"startTime":119.76,"endTime":122.16,"body":"previous lectures actually."},{"startTime":124.552,"endTime":127.13,"body":"And what this illustrates very nicely"},{"startTime":127.13,"endTime":132.13,"body":"is what is now known as"},{"startTime":127.13,"endTime":132.13,"body":"the open shop system."},{"startTime":132.33,"endTime":136.65,"body":"So the idea really is that"},{"startTime":132.33,"endTime":136.65,"body":"the computer designer,"},{"startTime":136.65,"endTime":141.33,"body":"the programmer and the user"},{"startTime":136.65,"endTime":141.33,"body":"in those days were pretty much"},{"startTime":141.33,"endTime":145.05,"body":"the same person and programming"},{"startTime":141.33,"endTime":145.05,"body":"computer sort of involves"},{"startTime":145.05,"endTime":148.41,"body":"sitting in front of one of"},{"startTime":145.05,"endTime":148.41,"body":"these complicated consoles"},{"startTime":148.41,"endTime":150.123,"body":"and flicking switches."},{"startTime":152.71,"endTime":154.88,"body":"There wasn't a high level"},{"startTime":152.71,"endTime":154.88,"body":"programming language,"},{"startTime":154.88,"endTime":157.83,"body":"and there wasn't anything"},{"startTime":154.88,"endTime":157.83,"body":"to make your job easy."},{"startTime":157.83,"endTime":161.27,"body":"You flick these switches"},{"startTime":157.83,"endTime":161.27,"body":"and you ran the thing."},{"startTime":161.27,"endTime":165.41,"body":"And if the computer stayed up because"},{"startTime":165.41,"endTime":166.65,"body":"they weren't the most reliable things,"},{"startTime":166.65,"endTime":168.4,"body":"you got an answer at the end of it."},{"startTime":169.43,"endTime":173.213,"body":"You, the user had sole use of the machine,"},{"startTime":175.048,"endTime":176.88,"body":"and this continued quite a way actually"},{"startTime":176.88,"endTime":179.23,"body":"into the early life of computers."},{"startTime":179.23,"endTime":183.59,"body":"There's a paper by George Rick"},{"startTime":179.23,"endTime":183.59,"body":"man talks about the IBM 701,"},{"startTime":183.59,"endTime":187.26,"body":"which was an early computer"},{"startTime":183.59,"endTime":187.26,"body":"that they'd had installed"},{"startTime":187.26,"endTime":192.26,"body":"commercially where he worked"},{"startTime":187.26,"endTime":192.26,"body":"and what they discovered"},{"startTime":192.87,"endTime":194.24,"body":"that these computer thingies"},{"startTime":194.24,"endTime":196.47,"body":"were really popular with"},{"startTime":194.24,"endTime":196.47,"body":"a whole range of people."},{"startTime":196.47,"endTime":200.17,"body":"So there was a lot of people"},{"startTime":196.47,"endTime":200.17,"body":"queuing up to use the system."},{"startTime":200.17,"endTime":201.85,"body":"Well, literally queuing"},{"startTime":200.17,"endTime":201.85,"body":"up as it turned out."},{"startTime":201.85,"endTime":204.6,"body":"So the way they managed this demand"},{"startTime":204.6,"endTime":209.6,"body":"was they split the open"},{"startTime":204.6,"endTime":209.6,"body":"shop into 15 minute slots."},{"startTime":210.32,"endTime":212.634,"body":"So you, the programmer had 15 minutes"},{"startTime":212.634,"endTime":216.06,"body":"to go on the computer and he"},{"startTime":212.634,"endTime":216.06,"body":"sat there and made some notes"},{"startTime":216.06,"endTime":219.5,"body":"on how people used the machine"},{"startTime":216.06,"endTime":219.5,"body":"and discovered somewhat"},{"startTime":219.5,"endTime":223.15,"body":"to his horror that roughly 10 minutes"},{"startTime":223.15,"endTime":225.28,"body":"of the 15 minutes was"},{"startTime":223.15,"endTime":225.28,"body":"spent faffing around,"},{"startTime":225.28,"endTime":228.49,"body":"setting up the tapes and"},{"startTime":225.28,"endTime":228.49,"body":"dealing with the output."},{"startTime":228.49,"endTime":229.7,"body":"So of your 15 minutes,"},{"startTime":229.7,"endTime":232.273,"body":"you only got five minutes of run time,"},{"startTime":233.62,"endTime":235.09,"body":"which was far from ideal,"},{"startTime":235.09,"endTime":238.71,"body":"particularly as the IBM"},{"startTime":235.09,"endTime":238.71,"body":"701 had a meantime between"},{"startTime":238.71,"endTime":240.34,"body":"failures of three and a half hours."},{"startTime":240.34,"endTime":243.05,"body":"So I assume it was highly"},{"startTime":240.34,"endTime":243.05,"body":"likely that you would get"},{"startTime":243.05,"endTime":246.333,"body":"into the open shop and discover"},{"startTime":243.05,"endTime":246.333,"body":"that it wasn't open at all."},{"startTime":248.1,"endTime":253.02,"body":"So that was sort of"},{"startTime":248.1,"endTime":253.02,"body":"pre-operating systems history."},{"startTime":253.02,"endTime":256.66,"body":"And the number of operating"},{"startTime":253.02,"endTime":256.66,"body":"systems that could"},{"startTime":256.66,"endTime":261.42,"body":"have gone on this timeline"},{"startTime":256.66,"endTime":261.42,"body":"is wildly and crazily long."},{"startTime":262.79,"endTime":267.79,"body":"So I only given you a"},{"startTime":262.79,"endTime":267.79,"body":"flavor of what you've got."},{"startTime":267.913,"endTime":270.06,"body":"I'll give you a link later to"},{"startTime":270.06,"endTime":274.12,"body":"a full list of operating"},{"startTime":270.06,"endTime":274.12,"body":"systems and their histories."},{"startTime":274.12,"endTime":277.94,"body":"But if we sort of slide"},{"startTime":274.12,"endTime":277.94,"body":"along this timeline"},{"startTime":279.01,"endTime":280.573,"body":"over on the left hand side,"},{"startTime":281.43,"endTime":283.74,"body":"basically we've got"},{"startTime":281.43,"endTime":283.74,"body":"systems which are trying"},{"startTime":283.74,"endTime":287.71,"body":"to make available a single,"},{"startTime":283.74,"endTime":287.71,"body":"very expensive resource,"},{"startTime":287.71,"endTime":291.69,"body":"the computer, to as"},{"startTime":287.71,"endTime":291.69,"body":"many people as possible."},{"startTime":291.69,"endTime":294.43,"body":"So that's the demand"},{"startTime":291.69,"endTime":294.43,"body":"over there on the left,"},{"startTime":294.43,"endTime":296.83,"body":"this commercial demand"},{"startTime":294.43,"endTime":296.83,"body":"really, you've got a big,"},{"startTime":296.83,"endTime":299.41,"body":"expensive capital asset and you want"},{"startTime":299.41,"endTime":301.38,"body":"to work it as much as possible."},{"startTime":301.38,"endTime":304.94,"body":"And then as we slide over to"},{"startTime":301.38,"endTime":304.94,"body":"the right to the present day,"},{"startTime":304.94,"endTime":306.1,"body":"machines cost nothing."},{"startTime":306.1,"endTime":309.01,"body":"You know, the cost of the"},{"startTime":306.1,"endTime":309.01,"body":"central processing unit,"},{"startTime":309.01,"endTime":311.71,"body":"the CPU is negligible pence."},{"startTime":311.71,"endTime":315.67,"body":"So what we're really trying"},{"startTime":311.71,"endTime":315.67,"body":"to do here apart from some"},{"startTime":315.67,"endTime":319.63,"body":"rather modern issues to do"},{"startTime":315.67,"endTime":319.63,"body":"with security and reliability"},{"startTime":319.63,"endTime":322.91,"body":"and so on, what we're"},{"startTime":319.63,"endTime":322.91,"body":"probably trying to do is more,"},{"startTime":322.91,"endTime":323.81,"body":"the other way round,"},{"startTime":323.81,"endTime":326.3,"body":"we're trying to give a single user access"},{"startTime":326.3,"endTime":328.76,"body":"to as many machines as possible"},{"startTime":328.76,"endTime":332.33,"body":"so that we can get their work"},{"startTime":328.76,"endTime":332.33,"body":"done as quickly as possible."},{"startTime":332.33,"endTime":337.14,"body":"So it's a quite an interesting"},{"startTime":332.33,"endTime":337.14,"body":"sort of swing across the,"},{"startTime":337.14,"endTime":341.122,"body":"from many users one machine,"},{"startTime":341.122,"endTime":345.27,"body":"to one user multiple machines,"},{"startTime":345.27,"endTime":346.103,"body":"although in practice,"},{"startTime":346.103,"endTime":350.56,"body":"of course it is multiple"},{"startTime":346.103,"endTime":350.56,"body":"users and multiple machines."},{"startTime":350.56,"endTime":352.76,"body":"Now trying to put some sort of structure"},{"startTime":352.76,"endTime":354.95,"body":"around operating systems history"},{"startTime":354.95,"endTime":356.693,"body":"is not so easy because"},{"startTime":354.95,"endTime":356.693,"body":"there've been a number"},{"startTime":356.693,"endTime":360.55,"body":"of false starts and operating systems"},{"startTime":360.55,"endTime":363.269,"body":"have come and gone as it happens,"},{"startTime":363.269,"endTime":366.165,"body":"I'll show later quite a few have gone,"},{"startTime":366.165,"endTime":369.34,"body":"but there've been a few big winners"},{"startTime":369.34,"endTime":371.77,"body":"in the worlds of operating systems."},{"startTime":371.77,"endTime":374.74,"body":"In order to try and structure those ideas."},{"startTime":374.74,"endTime":376.524,"body":"I've just nicked"},{"startTime":376.524,"endTime":380.38,"body":"a table from one of the"},{"startTime":376.524,"endTime":380.38,"body":"operating systems experts,"},{"startTime":381.22,"endTime":384.78,"body":"well, former expert pair, Per Brig Hansen,"},{"startTime":384.78,"endTime":389.21,"body":"and he wrote this book sort"},{"startTime":384.78,"endTime":389.21,"body":"of classic operating systems,"},{"startTime":389.21,"endTime":390.23,"body":"which is a sort of collection"},{"startTime":390.23,"endTime":392.44,"body":"of best papers in operating systems."},{"startTime":392.44,"endTime":394.05,"body":"Great read if you fancy it,"},{"startTime":394.05,"endTime":396.22,"body":"sort of it's the of computer"},{"startTime":396.22,"endTime":399.91,"body":"scientist version of \"Pride and Prejudice\""},{"startTime":399.91,"endTime":402.343,"body":"or \"Barchester Chronicles\" perhaps."},{"startTime":405.077,"endTime":408.0,"body":"And what he's trying to do"},{"startTime":405.077,"endTime":408.0,"body":"here is pick out some phases"},{"startTime":408.0,"endTime":411.06,"body":"in operating systems and some"},{"startTime":408.0,"endTime":411.06,"body":"ideas that are of interest."},{"startTime":411.06,"endTime":415.2,"body":"So this table actually is"},{"startTime":411.06,"endTime":415.2,"body":"pretty much chronological."},{"startTime":415.2,"endTime":419.723,"body":"So we start at the 1950s with"},{"startTime":415.2,"endTime":419.723,"body":"the idea of this open shop."},{"startTime":420.75,"endTime":425.75,"body":"And in the sixties comes this"},{"startTime":420.75,"endTime":425.75,"body":"idea of closed shop processing"},{"startTime":425.877,"endTime":429.31,"body":"and the closed shop means the machine room"},{"startTime":429.31,"endTime":431.93,"body":"isn't open to the likes of you and me."},{"startTime":431.93,"endTime":434.06,"body":"There's only a few high"},{"startTime":431.93,"endTime":434.06,"body":"priests who are allowed"},{"startTime":434.06,"endTime":436.03,"body":"into the machine room and we would write"},{"startTime":436.03,"endTime":439.09,"body":"our programs on a remote"},{"startTime":436.03,"endTime":439.09,"body":"terminal or dumb terminal."},{"startTime":439.09,"endTime":442.57,"body":"We might punch some tape"},{"startTime":439.09,"endTime":442.57,"body":"or punch some cards."},{"startTime":442.57,"endTime":446.69,"body":"They would then be stacked"},{"startTime":442.57,"endTime":446.69,"body":"up in a batch and run through"},{"startTime":446.69,"endTime":451.11,"body":"in a batch and so that's"},{"startTime":446.69,"endTime":451.11,"body":"the idea of tape batching,"},{"startTime":451.11,"endTime":455.68,"body":"even when you got this"},{"startTime":451.11,"endTime":455.68,"body":"batch of jobs to do,"},{"startTime":455.68,"endTime":457.33,"body":"you've still got this interesting problem,"},{"startTime":457.33,"endTime":458.96,"body":"which I'll come onto in a moment,"},{"startTime":458.96,"endTime":462.53,"body":"which is which job should"},{"startTime":458.96,"endTime":462.53,"body":"you run first then?"},{"startTime":462.53,"endTime":463.363,"body":"Hmm."},{"startTime":464.34,"endTime":466.29,"body":"Should you run the longest job first"},{"startTime":466.29,"endTime":467.97,"body":"or the shortest job first?"},{"startTime":467.97,"endTime":468.85,"body":"Hmm."},{"startTime":468.85,"endTime":469.96,"body":"Interesting question, isn't it."},{"startTime":469.96,"endTime":471.45,"body":"And it needs a bit of thinking about,"},{"startTime":471.45,"endTime":473.52,"body":"it's not quite so obvious."},{"startTime":473.52,"endTime":476.0,"body":"So that takes us through to"},{"startTime":473.52,"endTime":476.0,"body":"the sort of early sixties."},{"startTime":476.0,"endTime":477.57,"body":"And then in the 1960s,"},{"startTime":477.57,"endTime":479.22,"body":"there was a bit of a sort of buzz"},{"startTime":480.72,"endTime":483.7,"body":"and we have moved to"},{"startTime":480.72,"endTime":483.7,"body":"what you might think of"},{"startTime":483.7,"endTime":486.34,"body":"as a sort of modern view"},{"startTime":483.7,"endTime":486.34,"body":"of an operating system,"},{"startTime":486.34,"endTime":490.2,"body":"which Per Brig Hansen has"},{"startTime":486.34,"endTime":490.2,"body":"called multi programming here."},{"startTime":490.2,"endTime":495.113,"body":"But it's the idea here is"},{"startTime":490.2,"endTime":495.113,"body":"that we're trying to give"},{"startTime":495.113,"endTime":499.71,"body":"an impression of being"},{"startTime":495.113,"endTime":499.71,"body":"able to run multiple jobs."},{"startTime":499.71,"endTime":503.24,"body":"So having a computer that"},{"startTime":499.71,"endTime":503.24,"body":"can do more than one thing"},{"startTime":503.24,"endTime":508.24,"body":"at once, maybe handle more"},{"startTime":503.24,"endTime":508.24,"body":"than one person at once,"},{"startTime":508.52,"endTime":510.573,"body":"which takes us through to time sharing."},{"startTime":511.48,"endTime":513.69,"body":"That's the 1970s, really."},{"startTime":513.69,"endTime":517.63,"body":"And then he's picked out"},{"startTime":513.69,"endTime":517.63,"body":"concurrent programming."},{"startTime":517.63,"endTime":521.523,"body":"That was a big issue when"},{"startTime":517.63,"endTime":521.523,"body":"I was a kid in the eighties"},{"startTime":523.945,"endTime":527.21,"body":"and probably a lot of"},{"startTime":523.945,"endTime":527.21,"body":"it was quite rarefied"},{"startTime":527.21,"endTime":528.22,"body":"and didn't happen,"},{"startTime":528.22,"endTime":529.57,"body":"but some of it has been picked up,"},{"startTime":529.57,"endTime":531.04,"body":"and I'll talk a little"},{"startTime":529.57,"endTime":531.04,"body":"bit about that later"},{"startTime":531.04,"endTime":532.81,"body":"when I talk about the cloud."},{"startTime":532.81,"endTime":535.374,"body":"I'm not going to say too"},{"startTime":532.81,"endTime":535.374,"body":"much about personal computing"},{"startTime":535.374,"endTime":537.53,"body":"in this lecture."},{"startTime":537.53,"endTime":539.2,"body":"I've completely not talked"},{"startTime":539.2,"endTime":540.61,"body":"about the graphical user interface,"},{"startTime":540.61,"endTime":542.12,"body":"partly because there are other lectures"},{"startTime":542.12,"endTime":546.1,"body":"talking about GUIs, partly because well,"},{"startTime":546.1,"endTime":547.92,"body":"time is always the enemy"},{"startTime":546.1,"endTime":547.92,"body":"in a Gresham lecture."},{"startTime":547.92,"endTime":551.143,"body":"So I'm just going to park"},{"startTime":547.92,"endTime":551.143,"body":"graphical user interfaces,"},{"startTime":552.521,"endTime":554.7,"body":"and then distributed systems."},{"startTime":554.7,"endTime":556.4,"body":"And what's not on here of course,"},{"startTime":556.4,"endTime":559.633,"body":"'cause this is quite an"},{"startTime":556.4,"endTime":559.633,"body":"old table, is the cloud."},{"startTime":560.65,"endTime":561.58,"body":"And all that that brings."},{"startTime":561.58,"endTime":563.12,"body":"So we ought to talk about that."},{"startTime":563.12,"endTime":564.443,"body":"So there's a little plan,"},{"startTime":565.484,"endTime":568.63,"body":"but let's sort of spool"},{"startTime":565.484,"endTime":568.63,"body":"back and let's spool back"},{"startTime":568.63,"endTime":573.44,"body":"to the sort of initial"},{"startTime":568.63,"endTime":573.44,"body":"problem that sparked this,"},{"startTime":573.44,"endTime":578.13,"body":"the multi programming initiative"},{"startTime":573.44,"endTime":578.13,"body":"and the initial problem"},{"startTime":578.13,"endTime":580.01,"body":"that caused quite a lot of hassle"},{"startTime":580.01,"endTime":583.9,"body":"for people is quite a"},{"startTime":580.01,"endTime":583.9,"body":"simple one to describe."},{"startTime":583.9,"endTime":588.827,"body":"And it's the peripherals,"},{"startTime":583.9,"endTime":588.827,"body":"and for a lot of computers,"},{"startTime":589.954,"endTime":593.25,"body":"a lot of the problems don't"},{"startTime":589.954,"endTime":593.25,"body":"come from the computing."},{"startTime":593.25,"endTime":594.88,"body":"They come from the IO getting"},{"startTime":594.88,"endTime":597.55,"body":"the input and the output right."},{"startTime":597.55,"endTime":601.803,"body":"And the usual problem is"},{"startTime":597.55,"endTime":601.803,"body":"that the IO is far too slow."},{"startTime":603.965,"endTime":605.505,"body":"So the computer is sort of sitting there"},{"startTime":605.505,"endTime":608.68,"body":"looking at its watch,"},{"startTime":605.505,"endTime":608.68,"body":"waiting for things to happen."},{"startTime":608.68,"endTime":610.23,"body":"Now, for those of you who are,"},{"startTime":610.23,"endTime":612.55,"body":"oh, I dunno how old you"},{"startTime":610.23,"endTime":612.55,"body":"have to be to know this."},{"startTime":612.55,"endTime":614.98,"body":"But I thought just as"},{"startTime":612.55,"endTime":614.98,"body":"a blast from the past,"},{"startTime":614.98,"endTime":617.48,"body":"I thought I'd show you"},{"startTime":614.98,"endTime":617.48,"body":"not a very old peripheral,"},{"startTime":617.48,"endTime":621.53,"body":"but I'll show you one from the late 1970s,"},{"startTime":621.53,"endTime":622.645,"body":"just looking at the physical audience."},{"startTime":622.645,"endTime":623.62,"body":"Yes."},{"startTime":623.62,"endTime":625.19,"body":"Quite a few people in"},{"startTime":623.62,"endTime":625.19,"body":"the physical audience"},{"startTime":625.19,"endTime":627.858,"body":"who might recognize this, online audience,"},{"startTime":627.858,"endTime":630.463,"body":"this is what a printer used to look like."},{"startTime":633.64,"endTime":637.18,"body":"This is a printer from"},{"startTime":633.64,"endTime":637.18,"body":"1978 and somebody's having"},{"startTime":637.18,"endTime":640.97,"body":"a go at rejuvenating it in this video."},{"startTime":640.97,"endTime":642.955,"body":"I'll just play it for you."},{"startTime":642.955,"endTime":646.372,"body":"(printer buzzing loudly)"},{"startTime":656.92,"endTime":660.443,"body":"- [Man] Moving a bit crazy"},{"startTime":656.92,"endTime":660.443,"body":"on the table, but it works."},{"startTime":662.323,"endTime":663.156,"body":"Yes."},{"startTime":669.977,"endTime":671.74,"body":"- Yes, a bit of a nightmare, isn't it?"},{"startTime":671.74,"endTime":674.59,"body":"We used to have these things on our desks."},{"startTime":674.59,"endTime":676.77,"body":"They were unbelievably noisy"},{"startTime":677.8,"endTime":682.49,"body":"and they had this absolutely"},{"startTime":677.8,"endTime":682.49,"body":"rubbish print head."},{"startTime":682.49,"endTime":684.37,"body":"And this is quite a late one."},{"startTime":684.37,"endTime":686.32,"body":"You know, if you think"},{"startTime":684.37,"endTime":686.32,"body":"about early peripherals,"},{"startTime":686.32,"endTime":688.03,"body":"the problem was they're slow"},{"startTime":688.03,"endTime":690.684,"body":"and they didn't have much memory in them."},{"startTime":690.684,"endTime":694.85,"body":"So the computer would send some"},{"startTime":690.684,"endTime":694.85,"body":"small amount of information"},{"startTime":694.85,"endTime":696.73,"body":"to the printer and then the printer"},{"startTime":696.73,"endTime":701.73,"body":"would slowly print everything out and not,"},{"startTime":706.768,"endTime":708.5,"body":"without the developments"},{"startTime":706.768,"endTime":708.5,"body":"I'm talking about,"},{"startTime":708.5,"endTime":710.215,"body":"there was nothing to do."},{"startTime":710.215,"endTime":711.95,"body":"So the computer would"},{"startTime":710.215,"endTime":711.95,"body":"essentially sit there,"},{"startTime":711.95,"endTime":715.18,"body":"running no ops through it, no operation."},{"startTime":715.18,"endTime":716.53,"body":"So it would just sit there."},{"startTime":718.06,"endTime":719.483,"body":"And it was pretty obvious early on"},{"startTime":719.483,"endTime":721.603,"body":"that this was very inefficient."},{"startTime":722.887,"endTime":726.99,"body":"So a solution sort of"},{"startTime":722.887,"endTime":726.99,"body":"presented itself quite early on"},{"startTime":728.19,"endTime":730.41,"body":"and the solution was to have"},{"startTime":730.41,"endTime":733.144,"body":"the computer do something else when it was"},{"startTime":733.144,"endTime":737.163,"body":"in a wait state waiting for the IO."},{"startTime":738.12,"endTime":742.71,"body":"And this is an important"},{"startTime":738.12,"endTime":742.71,"body":"concept in operating systems"},{"startTime":744.413,"endTime":746.613,"body":"and it leads onto all"},{"startTime":744.413,"endTime":746.613,"body":"sorts of other things."},{"startTime":747.949,"endTime":752.949,"body":"And the idea that was generated"},{"startTime":747.949,"endTime":752.949,"body":"is called a context switch."},{"startTime":753.88,"endTime":756.56,"body":"So you can think of this a"},{"startTime":753.88,"endTime":756.56,"body":"bit like this on the top line,"},{"startTime":756.56,"endTime":759.49,"body":"let's imagine this is your"},{"startTime":756.56,"endTime":759.49,"body":"user program running here."},{"startTime":759.49,"endTime":761.8,"body":"I've called it process one,"},{"startTime":761.8,"endTime":764.85,"body":"and then we're going to get a signal."},{"startTime":764.85,"endTime":767.33,"body":"And the signal is usually"},{"startTime":764.85,"endTime":767.33,"body":"called an interrupt,"},{"startTime":767.33,"endTime":769.33,"body":"an interrupt is a signal to the computer"},{"startTime":769.33,"endTime":771.34,"body":"to interrupt what you are doing."},{"startTime":771.34,"endTime":772.26,"body":"And then we're going to try"},{"startTime":772.26,"endTime":775.1,"body":"and switch across to process two."},{"startTime":775.1,"endTime":776.55,"body":"And as we do that,"},{"startTime":776.55,"endTime":780.62,"body":"we're going to save the"},{"startTime":776.55,"endTime":780.62,"body":"state of process one"},{"startTime":780.62,"endTime":782.94,"body":"into a program control block."},{"startTime":782.94,"endTime":786.17,"body":"Then we're going to load the"},{"startTime":782.94,"endTime":786.17,"body":"state that is appropriate"},{"startTime":786.17,"endTime":789.41,"body":"for process two, that's called"},{"startTime":786.17,"endTime":789.41,"body":"a program control block."},{"startTime":789.41,"endTime":790.71,"body":"We're going to switch across,"},{"startTime":791.89,"endTime":794.54,"body":"and then we'll switch back"},{"startTime":791.89,"endTime":794.54,"body":"again when we're finished."},{"startTime":795.812,"endTime":799.79,"body":"So the program control block"},{"startTime":795.812,"endTime":799.79,"body":"varies a lot from operating."},{"startTime":799.79,"endTime":800.81,"body":"Well, it can vary a lot."},{"startTime":800.81,"endTime":803.33,"body":"It varies from operating"},{"startTime":800.81,"endTime":803.33,"body":"system to operating system."},{"startTime":803.33,"endTime":806.41,"body":"There is design decisions"},{"startTime":803.33,"endTime":806.41,"body":"about what you need to save,"},{"startTime":806.41,"endTime":807.45,"body":"but in essence,"},{"startTime":807.45,"endTime":812.39,"body":"what you normally save is"},{"startTime":807.45,"endTime":812.39,"body":"where am I in the program"},{"startTime":812.39,"endTime":814.82,"body":"that's running and the state"},{"startTime":814.82,"endTime":819.384,"body":"of the central processing"},{"startTime":814.82,"endTime":819.384,"body":"unit as you were,"},{"startTime":819.384,"endTime":822.05,"body":"as you have an interrupt."},{"startTime":822.05,"endTime":823.76,"body":"So that would be all of the registers,"},{"startTime":823.76,"endTime":825.46,"body":"all of the local memory and so on."},{"startTime":827.02,"endTime":828.69,"body":"And then it comes to switch back."},{"startTime":828.69,"endTime":829.683,"body":"So all very simple."},{"startTime":831.63,"endTime":833.7,"body":"This time here down the bottom,"},{"startTime":833.7,"endTime":835.4,"body":"which I've labeled Delta T"},{"startTime":835.4,"endTime":837.98,"body":"is often called the"},{"startTime":835.4,"endTime":837.98,"body":"process switch latency."},{"startTime":837.98,"endTime":840.49,"body":"And you obviously want that"},{"startTime":837.98,"endTime":840.49,"body":"to be as fast as possible."},{"startTime":840.49,"endTime":843.53,"body":"So you try and design your"},{"startTime":840.49,"endTime":843.53,"body":"computer so that you can save"},{"startTime":843.53,"endTime":846.29,"body":"this PCB as quickly as possible."},{"startTime":846.29,"endTime":848.37,"body":"So there's lots of, sort of,"},{"startTime":848.37,"endTime":852.75,"body":"what's the word, sort of"},{"startTime":848.37,"endTime":852.75,"body":"maneuvering by hardware designers"},{"startTime":852.75,"endTime":855.319,"body":"to make sure that this switch happens"},{"startTime":855.319,"endTime":858.71,"body":"as quickly as it can be."},{"startTime":858.71,"endTime":860.75,"body":"And indeed software engineers,"},{"startTime":860.75,"endTime":863.83,"body":"one of the maneuvering"},{"startTime":860.75,"endTime":863.83,"body":"is to try and minimize"},{"startTime":863.83,"endTime":867.313,"body":"the amount of stuff that"},{"startTime":863.83,"endTime":867.313,"body":"we have to save in the PCB."},{"startTime":870.043,"endTime":872.93,"body":"So we could perhaps save a"},{"startTime":870.043,"endTime":872.93,"body":"little bit less in which case,"},{"startTime":872.93,"endTime":874.86,"body":"instead of a process,"},{"startTime":874.86,"endTime":876.95,"body":"what we might refer to"},{"startTime":874.86,"endTime":876.95,"body":"as a heavyweight process,"},{"startTime":876.95,"endTime":879.26,"body":"which we're going to have"},{"startTime":876.95,"endTime":879.26,"body":"to save a big context."},{"startTime":879.26,"endTime":882.56,"body":"We could use a lightweight"},{"startTime":879.26,"endTime":882.56,"body":"process, often called a thread,"},{"startTime":882.56,"endTime":885.24,"body":"which is often a sub process."},{"startTime":885.24,"endTime":888.66,"body":"And we don't have to save quite"},{"startTime":885.24,"endTime":888.66,"body":"as much if we're doing this,"},{"startTime":888.66,"endTime":891.67,"body":"but this operation bump, bump, bump, bump,"},{"startTime":891.67,"endTime":896.67,"body":"is fundamental to the way"},{"startTime":891.67,"endTime":896.67,"body":"your computer is working."},{"startTime":896.67,"endTime":899.25,"body":"Well, there's probably one in every pocket"},{"startTime":899.25,"endTime":902.52,"body":"in this lecture room at"},{"startTime":899.25,"endTime":902.52,"body":"the moment, if not two."},{"startTime":902.52,"endTime":904.27,"body":"And that's your mobile phone,"},{"startTime":904.27,"endTime":907.163,"body":"it's fundamental to the way"},{"startTime":904.27,"endTime":907.163,"body":"the operating system works."},{"startTime":908.2,"endTime":911.75,"body":"So now let me just talk"},{"startTime":908.2,"endTime":911.75,"body":"you through how it works."},{"startTime":911.75,"endTime":914.983,"body":"So let's try and use an analogy."},{"startTime":916.283,"endTime":920.71,"body":"It's afternoon and we're"},{"startTime":916.283,"endTime":920.71,"body":"doing some knitting okay."},{"startTime":920.71,"endTime":923.49,"body":"So I've got my knitting pattern out here"},{"startTime":923.49,"endTime":926.05,"body":"and I dunno if you're"},{"startTime":923.49,"endTime":926.05,"body":"experts on knitting, I'm not,"},{"startTime":926.05,"endTime":927.9,"body":"but I presume you can read the pattern"},{"startTime":927.9,"endTime":929.35,"body":"and know where you've got to."},{"startTime":930.212,"endTime":932.26,"body":"So that's the equivalent"},{"startTime":930.212,"endTime":932.26,"body":"of my program counter."},{"startTime":932.26,"endTime":937.08,"body":"So I'm doing knit knit,"},{"startTime":932.26,"endTime":937.08,"body":"knit, knit, knit, and I mark"},{"startTime":937.08,"endTime":942.08,"body":"where that I've got to"},{"startTime":937.08,"endTime":942.08,"body":"on the knitting pattern"},{"startTime":943.22,"endTime":946.68,"body":"and I'm going to stop now"},{"startTime":943.22,"endTime":946.68,"body":"'cause I need to make supper,"},{"startTime":946.68,"endTime":948.13,"body":"which is, I dunno,"},{"startTime":948.13,"endTime":949.21,"body":"Shepherd's pie in our house."},{"startTime":949.21,"endTime":951.157,"body":"So what I'm going to"},{"startTime":949.21,"endTime":951.157,"body":"do pick up my knitting"},{"startTime":951.157,"endTime":953.113,"body":"and put it over here"},{"startTime":951.157,"endTime":953.113,"body":"on this pile over here."},{"startTime":953.113,"endTime":955.1,"body":"And that's all the instructions."},{"startTime":955.1,"endTime":956.94,"body":"Now get the ingredients"},{"startTime":955.1,"endTime":956.94,"body":"for shepherd's pie."},{"startTime":956.94,"endTime":957.82,"body":"Chop, chop, chop, chop, chop,"},{"startTime":957.82,"endTime":959.26,"body":"chop, chop, chop, doing that."},{"startTime":959.26,"endTime":961.48,"body":"That's me on process two, right?"},{"startTime":961.48,"endTime":962.43,"body":"Wow. Wow."},{"startTime":962.43,"endTime":963.263,"body":"Baby cries."},{"startTime":963.263,"endTime":964.096,"body":"Right?"},{"startTime":964.096,"endTime":965.14,"body":"High priority interrupt."},{"startTime":965.14,"endTime":966.57,"body":"That is the baby has to be fed."},{"startTime":966.57,"endTime":968.46,"body":"So we pick up all the"},{"startTime":966.57,"endTime":968.46,"body":"Shepherd's pie ingredients,"},{"startTime":968.46,"endTime":971.57,"body":"stack them up on top of a"},{"startTime":968.46,"endTime":971.57,"body":"knitting here over here, right?"},{"startTime":971.57,"endTime":973.933,"body":"That's called the stack over"},{"startTime":971.57,"endTime":973.933,"body":"here in computer language"},{"startTime":973.933,"endTime":976.859,"body":"then comes the baby book, feed"},{"startTime":973.933,"endTime":976.859,"body":"the baby, blah, blah, blah."},{"startTime":976.859,"endTime":978.619,"body":"Baby's finished."},{"startTime":978.619,"endTime":982.92,"body":"Put the baby back, get"},{"startTime":978.619,"endTime":982.92,"body":"back this, pop the stack,"},{"startTime":982.92,"endTime":984.829,"body":"as we would say, finish this."},{"startTime":984.829,"endTime":986.98,"body":"Oh, I've got a bit of time spare,"},{"startTime":986.98,"endTime":990.63,"body":"do some knitting, pull up"},{"startTime":986.98,"endTime":990.63,"body":"the knitting, put this back."},{"startTime":990.63,"endTime":992.63,"body":"So we got this memory area over here,"},{"startTime":992.63,"endTime":994.25,"body":"which is getting longer and shorter."},{"startTime":994.25,"endTime":997.882,"body":"That's the side table and"},{"startTime":994.25,"endTime":997.882,"body":"that's called the stack"},{"startTime":997.882,"endTime":1001.09,"body":"and the computer is popping the stack"},{"startTime":1001.09,"endTime":1003.72,"body":"as it does these context switches,"},{"startTime":1003.72,"endTime":1004.96,"body":"all happy with that?"},{"startTime":1004.96,"endTime":1009.96,"body":"Now, I neatly segued there from"},{"startTime":1004.96,"endTime":1009.96,"body":"a hardware driven interrupt,"},{"startTime":1011.36,"endTime":1012.98,"body":"which is something like a hard disk"},{"startTime":1012.98,"endTime":1016.07,"body":"saying I need to be serviced."},{"startTime":1016.07,"endTime":1018.32,"body":"That's what happens there as the printer"},{"startTime":1018.32,"endTime":1020.61,"body":"or whatever it is,"},{"startTime":1018.32,"endTime":1020.61,"body":"probably not a printer now,"},{"startTime":1020.61,"endTime":1021.6,"body":"but let's pick a hard disc,"},{"startTime":1021.6,"endTime":1023.34,"body":"says, I must have your attention."},{"startTime":1023.34,"endTime":1026.69,"body":"That's a high priority input interrupt."},{"startTime":1026.69,"endTime":1029.26,"body":"It goes to the interrupt"},{"startTime":1026.69,"endTime":1029.26,"body":"processor, which says, hmm,"},{"startTime":1029.26,"endTime":1031.93,"body":"Is your interrupt important"},{"startTime":1029.26,"endTime":1031.93,"body":"enough to interrupt this high"},{"startTime":1031.93,"endTime":1033.77,"body":"priority task that I'm"},{"startTime":1031.93,"endTime":1033.77,"body":"doing at the moment?"},{"startTime":1033.77,"endTime":1034.603,"body":"Yes, it is."},{"startTime":1034.603,"endTime":1035.436,"body":"Your high priority."},{"startTime":1035.436,"endTime":1036.269,"body":"I'll deal with you."},{"startTime":1036.269,"endTime":1038.673,"body":"Or it says, yes, you can wait."},{"startTime":1038.673,"endTime":1043.673,"body":"It's bit like a sort"},{"startTime":1038.673,"endTime":1043.673,"body":"of someone in a school,"},{"startTime":1044.53,"endTime":1048.033,"body":"the guardian to the head teacher's"},{"startTime":1044.53,"endTime":1048.033,"body":"office who says yes, yes,"},{"startTime":1048.033,"endTime":1048.866,"body":"fire, school's burning down."},{"startTime":1048.866,"endTime":1051.973,"body":"Yeah okay, that sounds important enough."},{"startTime":1054.0,"endTime":1056.36,"body":"Could I have tomorrow's detention?"},{"startTime":1056.36,"endTime":1058.03,"body":"I think that can wait until we've dealt"},{"startTime":1058.03,"endTime":1059.75,"body":"with the fire or the school burning down,"},{"startTime":1059.75,"endTime":1062.55,"body":"so the interrupt"},{"startTime":1059.75,"endTime":1062.55,"body":"processor does all of that"},{"startTime":1062.55,"endTime":1065.66,"body":"and gets these priorities right."},{"startTime":1065.66,"endTime":1069.88,"body":"You can use the same"},{"startTime":1065.66,"endTime":1069.88,"body":"idea to drive switches"},{"startTime":1070.89,"endTime":1072.81,"body":"from the operating system if you wish."},{"startTime":1072.81,"endTime":1076.04,"body":"So what most operating"},{"startTime":1072.81,"endTime":1076.04,"body":"system will do is split"},{"startTime":1076.04,"endTime":1078.64,"body":"that timeline into chunks."},{"startTime":1078.64,"endTime":1080.39,"body":"And at each one of those chunks,"},{"startTime":1080.39,"endTime":1081.97,"body":"something called a scheduler will run."},{"startTime":1081.97,"endTime":1083.73,"body":"I'll talk a little bit about that later."},{"startTime":1083.73,"endTime":1086.61,"body":"Decide what the priority"},{"startTime":1083.73,"endTime":1086.61,"body":"tasks are at the moment,"},{"startTime":1086.61,"endTime":1089.77,"body":"generate a software interrupt,"},{"startTime":1086.61,"endTime":1089.77,"body":"switch everything round."},{"startTime":1089.77,"endTime":1094.319,"body":"And thus each one of the"},{"startTime":1089.77,"endTime":1094.319,"body":"users shown here are getting"},{"startTime":1094.319,"endTime":1096.621,"body":"this rather convincing impression"},{"startTime":1096.621,"endTime":1100.61,"body":"that the computer is servicing"},{"startTime":1096.621,"endTime":1100.61,"body":"their every little need"},{"startTime":1102.53,"endTime":1104.18,"body":"in a continuous fashion."},{"startTime":1104.18,"endTime":1106.18,"body":"But it isn't."},{"startTime":1106.18,"endTime":1109.0,"body":"The computer is a master juggler."},{"startTime":1109.0,"endTime":1112.83,"body":"Unlike humans, humans are"},{"startTime":1109.0,"endTime":1112.83,"body":"terrible at context switching,"},{"startTime":1112.83,"endTime":1113.76,"body":"whatever people tell you,"},{"startTime":1113.76,"endTime":1115.35,"body":"they're not good at it at all,"},{"startTime":1115.35,"endTime":1118.187,"body":"but computers are absolute geniuses at it."},{"startTime":1118.187,"endTime":1122.11,"body":"And the reason is they store"},{"startTime":1118.187,"endTime":1122.11,"body":"everything in the stack."},{"startTime":1122.11,"endTime":1124.74,"body":"We don't have a human"},{"startTime":1122.11,"endTime":1124.74,"body":"equivalent of the stack."},{"startTime":1124.74,"endTime":1125.76,"body":"We don't what's in our brain."},{"startTime":1125.76,"endTime":1127.06,"body":"So we can't write it down."},{"startTime":1128.72,"endTime":1133.63,"body":"This diagram also shows another"},{"startTime":1128.72,"endTime":1133.63,"body":"feature that is not quite"},{"startTime":1133.63,"endTime":1136.21,"body":"so evident from what"},{"startTime":1133.63,"endTime":1136.21,"body":"I've been saying so far."},{"startTime":1136.21,"endTime":1137.73,"body":"And it's not essential to have this,"},{"startTime":1137.73,"endTime":1140.38,"body":"but most modern computers would have this,"},{"startTime":1140.38,"endTime":1144.77,"body":"which is there's a clear"},{"startTime":1140.38,"endTime":1144.77,"body":"distinction in a modern piece"},{"startTime":1144.77,"endTime":1147.76,"body":"of hardware usually"},{"startTime":1144.77,"endTime":1147.76,"body":"starts at hardware level,"},{"startTime":1147.76,"endTime":1149.65,"body":"between what we would call"},{"startTime":1149.65,"endTime":1152.27,"body":"the instructions that can be accessed"},{"startTime":1152.27,"endTime":1155.57,"body":"by users and the"},{"startTime":1152.27,"endTime":1155.57,"body":"instructions that are only"},{"startTime":1155.57,"endTime":1160.57,"body":"for the part of the operating"},{"startTime":1155.57,"endTime":1160.57,"body":"system that does the work."},{"startTime":1162.08,"endTime":1164.59,"body":"And they're called protected instructions."},{"startTime":1164.59,"endTime":1166.67,"body":"They're not absolutely essential."},{"startTime":1166.67,"endTime":1170.32,"body":"I remember some sadistic professor"},{"startTime":1170.32,"endTime":1174.54,"body":"of mine setting a homework assignment,"},{"startTime":1174.54,"endTime":1177.42,"body":"which was to write a"},{"startTime":1174.54,"endTime":1177.42,"body":"multi-user operating system"},{"startTime":1177.42,"endTime":1179.193,"body":"for a processor called the Z80."},{"startTime":1180.05,"endTime":1181.45,"body":"I mean, this was incredibly cruel"},{"startTime":1181.45,"endTime":1182.76,"body":"'cause the Z80 didn't have any"},{"startTime":1182.76,"endTime":1186.25,"body":"protective mode instructions"},{"startTime":1182.76,"endTime":1186.25,"body":"and was frankly,"},{"startTime":1186.25,"endTime":1188.54,"body":"it wasn't even powerful"},{"startTime":1186.25,"endTime":1188.54,"body":"enough to run a digital watch,"},{"startTime":1188.54,"endTime":1189.86,"body":"let alone anything else."},{"startTime":1189.86,"endTime":1191.17,"body":"So you can do it,"},{"startTime":1191.17,"endTime":1192.75,"body":"but you've got to have quite"},{"startTime":1192.75,"endTime":1195.67,"body":"a lot of cooperation with the users."},{"startTime":1195.67,"endTime":1200.13,"body":"And the reason is of course you"},{"startTime":1195.67,"endTime":1200.13,"body":"don't want a malign agent up"},{"startTime":1200.13,"endTime":1203.81,"body":"here being able to affect what's happening"},{"startTime":1203.81,"endTime":1205.42,"body":"to this user over here."},{"startTime":1205.42,"endTime":1206.53,"body":"So the only way you can do"},{"startTime":1206.53,"endTime":1210.38,"body":"that is to stop these user processes"},{"startTime":1210.38,"endTime":1213.6,"body":"accessing various bits of the hardware."},{"startTime":1213.6,"endTime":1217.41,"body":"And you certainly want to"},{"startTime":1213.6,"endTime":1217.41,"body":"stop them task switching"},{"startTime":1217.41,"endTime":1219.36,"body":"stuff that they don't own."},{"startTime":1219.36,"endTime":1223.79,"body":"So alongside, I was going to"},{"startTime":1219.36,"endTime":1223.79,"body":"say every operating system,"},{"startTime":1223.79,"endTime":1225.144,"body":"I hate using the word"},{"startTime":1223.79,"endTime":1225.144,"body":"every 'cause there's always"},{"startTime":1225.144,"endTime":1228.46,"body":"somebody online who says,"},{"startTime":1225.144,"endTime":1228.46,"body":"oh no, RTS doesn't do this."},{"startTime":1228.46,"endTime":1230.77,"body":"But I suspect every operating system"},{"startTime":1230.77,"endTime":1234.703,"body":"has the idea of privilege."},{"startTime":1235.638,"endTime":1237.4,"body":"So there are super users"},{"startTime":1237.4,"endTime":1239.55,"body":"and users who have certain privileges."},{"startTime":1239.55,"endTime":1242.24,"body":"So there's a hierarchy"},{"startTime":1239.55,"endTime":1242.24,"body":"of what people can do."},{"startTime":1242.24,"endTime":1243.66,"body":"And if you don't have that hierarchy,"},{"startTime":1243.66,"endTime":1246.25,"body":"it's a free for all and you"},{"startTime":1243.66,"endTime":1246.25,"body":"all have to incorporate."},{"startTime":1246.25,"endTime":1249.94,"body":"And as we know, computer scientists find"},{"startTime":1249.94,"endTime":1251.763,"body":"cooperation somewhat difficult,"},{"startTime":1253.98,"endTime":1256.93,"body":"particularly when a little"},{"startTime":1253.98,"endTime":1256.93,"body":"bit of mis-cooperation"},{"startTime":1256.93,"endTime":1259.933,"body":"can give you more access"},{"startTime":1256.93,"endTime":1259.933,"body":"to the valuable CPU time."},{"startTime":1260.92,"endTime":1263.36,"body":"Which used to be when I"},{"startTime":1260.92,"endTime":1263.36,"body":"was a graduate student,"},{"startTime":1263.36,"endTime":1264.74,"body":"that was a favorite trick of ours,"},{"startTime":1264.74,"endTime":1268.29,"body":"which was to log in and adjust"},{"startTime":1264.74,"endTime":1268.29,"body":"the scheduling parameters"},{"startTime":1268.29,"endTime":1271.47,"body":"on our workstations so that our jobs ran"},{"startTime":1271.47,"endTime":1274.893,"body":"a hundred percent of the"},{"startTime":1271.47,"endTime":1274.893,"body":"time over the weekend,"},{"startTime":1276.05,"endTime":1277.31,"body":"it was a brilliant,"},{"startTime":1277.31,"endTime":1279.23,"body":"a brilliant game."},{"startTime":1279.23,"endTime":1283.19,"body":"And it probably gave me"},{"startTime":1279.23,"endTime":1283.19,"body":"enumerable results in my PhD"},{"startTime":1283.19,"endTime":1284.94,"body":"that I didn't have a right to have,"},{"startTime":1285.78,"endTime":1287.11,"body":"almost certainly at the expense"},{"startTime":1287.11,"endTime":1288.91,"body":"of research group who owned the computers."},{"startTime":1288.91,"endTime":1290.96,"body":"But there you go, public confession time."},{"startTime":1292.65,"endTime":1295.41,"body":"Now there's one other"},{"startTime":1292.65,"endTime":1295.41,"body":"feature that was developed"},{"startTime":1295.41,"endTime":1297.65,"body":"in this sort of rather febrile period"},{"startTime":1297.65,"endTime":1299.83,"body":"when we're talking about multi programming"},{"startTime":1299.83,"endTime":1302.82,"body":"and I put this next to context switching,"},{"startTime":1302.82,"endTime":1303.85,"body":"but it's not the same,"},{"startTime":1303.85,"endTime":1305.6,"body":"they're often confused in people's minds."},{"startTime":1305.6,"endTime":1308.16,"body":"So context switching is the ability"},{"startTime":1308.16,"endTime":1311.103,"body":"to run multiple tasks at once."},{"startTime":1311.99,"endTime":1315.44,"body":"Now I'm going to talk about"},{"startTime":1311.99,"endTime":1315.44,"body":"virtual memory and virtual memory"},{"startTime":1315.44,"endTime":1318.59,"body":"is it's a portmanteau term and could refer"},{"startTime":1318.59,"endTime":1322.233,"body":"to quite a few things."},{"startTime":1323.536,"endTime":1325.89,"body":"And it's not very precisely"},{"startTime":1323.536,"endTime":1325.89,"body":"defined as a lot of operating"},{"startTime":1325.89,"endTime":1327.83,"body":"systems are cannot precisely defined,"},{"startTime":1327.83,"endTime":1329.81,"body":"but I'll show you some of the concepts"},{"startTime":1329.81,"endTime":1332.293,"body":"that sit within the"},{"startTime":1329.81,"endTime":1332.293,"body":"idea of virtual memory."},{"startTime":1333.7,"endTime":1337.266,"body":"So if we are going to allow users to think"},{"startTime":1337.266,"endTime":1340.86,"body":"that they have exclusive"},{"startTime":1337.266,"endTime":1340.86,"body":"access to the computer,"},{"startTime":1340.86,"endTime":1342.13,"body":"it's an illusion that we're going"},{"startTime":1342.13,"endTime":1344.72,"body":"to create with our operating system."},{"startTime":1344.72,"endTime":1348.02,"body":"Then we presumably have to give them"},{"startTime":1348.02,"endTime":1351.38,"body":"a programmers model of memory."},{"startTime":1351.38,"endTime":1354.241,"body":"So we've already acknowledged"},{"startTime":1351.38,"endTime":1354.241,"body":"that parts of the memory"},{"startTime":1354.241,"endTime":1355.94,"body":"are going to have the operating system in"},{"startTime":1355.94,"endTime":1357.18,"body":"and parts of them are going to have bits"},{"startTime":1357.18,"endTime":1359.08,"body":"of other users code and so on,"},{"startTime":1359.08,"endTime":1360.43,"body":"but we don't want progress."},{"startTime":1361.279,"endTime":1363.85,"body":"But I don't want to know what you've put"},{"startTime":1363.85,"endTime":1365.34,"body":"operating in the computer."},{"startTime":1365.34,"endTime":1367.64,"body":"I just want to get on with my life."},{"startTime":1367.64,"endTime":1370.04,"body":"So the programmers model"},{"startTime":1367.64,"endTime":1370.04,"body":"is shown here on the left,"},{"startTime":1370.04,"endTime":1373.92,"body":"which is just a sort of"},{"startTime":1370.04,"endTime":1373.92,"body":"linear block of memory."},{"startTime":1373.92,"endTime":1376.81,"body":"And then over on the computer side,"},{"startTime":1376.81,"endTime":1379.72,"body":"we've got a block reserved"},{"startTime":1376.81,"endTime":1379.72,"body":"for the operating system."},{"startTime":1379.72,"endTime":1383.173,"body":"We've got user one jammed"},{"startTime":1379.72,"endTime":1383.173,"body":"in here, we've got user two,"},{"startTime":1384.78,"endTime":1386.553,"body":"maybe jammed in here."},{"startTime":1388.3,"endTime":1390.92,"body":"And then we've got some"},{"startTime":1388.3,"endTime":1390.92,"body":"spare memory over here,"},{"startTime":1390.92,"endTime":1395.75,"body":"but this isn't the full"},{"startTime":1390.92,"endTime":1395.75,"body":"story because most computers"},{"startTime":1395.75,"endTime":1400.45,"body":"will have some way of"},{"startTime":1395.75,"endTime":1400.45,"body":"managing fast memory,"},{"startTime":1400.45,"endTime":1402.87,"body":"different from slow memory."},{"startTime":1402.87,"endTime":1404.21,"body":"And in the old days,"},{"startTime":1404.21,"endTime":1408.26,"body":"slow memory was a disc, a physical disc."},{"startTime":1408.26,"endTime":1410.5,"body":"You know, there was a, I dunno"},{"startTime":1408.26,"endTime":1410.5,"body":"if you remember those days,"},{"startTime":1410.5,"endTime":1412.96,"body":"but there used to be a"},{"startTime":1410.5,"endTime":1412.96,"body":"large lump of spinning metal"},{"startTime":1412.96,"endTime":1417.96,"body":"in your laptop or even on your"},{"startTime":1412.96,"endTime":1417.96,"body":"mainframe, great big thing."},{"startTime":1418.49,"endTime":1422.98,"body":"And it could hold a lot"},{"startTime":1418.49,"endTime":1422.98,"body":"of data by which I mean"},{"startTime":1422.98,"endTime":1426.93,"body":"in the early days kilobytes,"},{"startTime":1422.98,"endTime":1426.93,"body":"but it was very slow."},{"startTime":1426.93,"endTime":1431.93,"body":"So the trick was to persuade"},{"startTime":1426.93,"endTime":1431.93,"body":"the physical computer,"},{"startTime":1433.1,"endTime":1436.893,"body":"to use some of that"},{"startTime":1433.1,"endTime":1436.893,"body":"memory as virtual memory."},{"startTime":1437.95,"endTime":1440.68,"body":"And if I just add these"},{"startTime":1437.95,"endTime":1440.68,"body":"diagrams here, so the way"},{"startTime":1440.68,"endTime":1444.32,"body":"this is usually done is to"},{"startTime":1440.68,"endTime":1444.32,"body":"split your memory into blocks."},{"startTime":1444.32,"endTime":1445.95,"body":"These are usually called pages."},{"startTime":1445.95,"endTime":1447.28,"body":"Some people call them segments,"},{"startTime":1447.28,"endTime":1449.5,"body":"but let's stick with pages here."},{"startTime":1449.5,"endTime":1451.38,"body":"I've labeled them A, B, C, D, E, F."},{"startTime":1451.38,"endTime":1453.42,"body":"Obviously the page size has"},{"startTime":1453.42,"endTime":1455.96,"body":"to be chosen carefully to fit"},{"startTime":1455.96,"endTime":1457.44,"body":"with the parameters of your system."},{"startTime":1457.44,"endTime":1459.0,"body":"And that's what systems engineers do."},{"startTime":1459.0,"endTime":1461.69,"body":"They fiddle around with the"},{"startTime":1459.0,"endTime":1461.69,"body":"page size, get it wrong."},{"startTime":1461.69,"endTime":1463.72,"body":"And you've got some performance disaster"},{"startTime":1463.72,"endTime":1466.35,"body":"on your hand I should add."},{"startTime":1466.35,"endTime":1469.03,"body":"And then through this thing here,"},{"startTime":1469.03,"endTime":1471.26,"body":"which is usually called a page table,"},{"startTime":1471.26,"endTime":1476.26,"body":"we're going to map these out"},{"startTime":1471.26,"endTime":1476.26,"body":"to this backing store out here."},{"startTime":1476.65,"endTime":1477.84,"body":"So in this case,"},{"startTime":1477.84,"endTime":1482.84,"body":"we just have two physical"},{"startTime":1477.84,"endTime":1482.84,"body":"pages in our quick memory"},{"startTime":1484.57,"endTime":1486.89,"body":"and the rest are out on disc."},{"startTime":1486.89,"endTime":1488.58,"body":"So if somebody asks, they say,"},{"startTime":1488.58,"endTime":1490.92,"body":"well, I want page C, please."},{"startTime":1490.92,"endTime":1493.97,"body":"What happens is a page"},{"startTime":1490.92,"endTime":1493.97,"body":"fault is generated here."},{"startTime":1493.97,"endTime":1495.49,"body":"And the paging system goes,"},{"startTime":1495.49,"endTime":1497.438,"body":"ah, quick, quick, they want page C."},{"startTime":1497.438,"endTime":1498.398,"body":"Do we have it?"},{"startTime":1498.398,"endTime":1499.42,"body":"Do we have it?"},{"startTime":1499.42,"endTime":1500.253,"body":"No. Right."},{"startTime":1500.253,"endTime":1501.086,"body":"Get it in from disc."},{"startTime":1501.086,"endTime":1502.14,"body":"Get it in from disc."},{"startTime":1502.14,"endTime":1505.15,"body":"It's like one of those"},{"startTime":1502.14,"endTime":1505.15,"body":"sort of French farces"},{"startTime":1505.15,"endTime":1507.83,"body":"where something horrible is"},{"startTime":1505.15,"endTime":1507.83,"body":"happening behind the doors."},{"startTime":1507.83,"endTime":1510.05,"body":"And somebody sort of"},{"startTime":1507.83,"endTime":1510.05,"body":"says nothing to see here,"},{"startTime":1510.05,"endTime":1511.31,"body":"nothing to see here."},{"startTime":1511.31,"endTime":1514.236,"body":"What's actually happening is"},{"startTime":1511.31,"endTime":1514.236,"body":"the system is just saying,"},{"startTime":1514.236,"endTime":1515.29,"body":"I'm not ready yet."},{"startTime":1515.29,"endTime":1516.56,"body":"I'm not ready yet. I'm not ready yet."},{"startTime":1516.56,"endTime":1518.13,"body":"Go off and do something else."},{"startTime":1518.13,"endTime":1519.57,"body":"Interrupt."},{"startTime":1519.57,"endTime":1520.877,"body":"Computer goes into something else."},{"startTime":1520.877,"endTime":1521.76,"body":"Are you ready yet?"},{"startTime":1521.76,"endTime":1522.652,"body":"Yes, I'm ready now."},{"startTime":1522.652,"endTime":1523.485,"body":"I've got it in memory."},{"startTime":1523.485,"endTime":1527.49,"body":"Ah, right here it is,"},{"startTime":1523.485,"endTime":1527.49,"body":"the process of shuffling"},{"startTime":1528.375,"endTime":1530.38,"body":"these to and fro here is usually mediated"},{"startTime":1530.38,"endTime":1531.71,"body":"through something called a cache."},{"startTime":1531.71,"endTime":1534.73,"body":"So if you hear the use of the word cache,"},{"startTime":1534.73,"endTime":1537.46,"body":"that is a another bit of"},{"startTime":1534.73,"endTime":1537.46,"body":"memory to make the access"},{"startTime":1537.46,"endTime":1539.62,"body":"of these lumps of disc"},{"startTime":1539.62,"endTime":1541.633,"body":"and pages faster still."},{"startTime":1543.22,"endTime":1546.6,"body":"Right, nowadays, we've got a lot of RAM."},{"startTime":1546.6,"endTime":1550.14,"body":"And so that's the quick memory."},{"startTime":1550.14,"endTime":1554.24,"body":"So this paging store"},{"startTime":1550.14,"endTime":1554.24,"body":"backing store malarkey"},{"startTime":1554.24,"endTime":1557.773,"body":"isn't used anywhere near as"},{"startTime":1554.24,"endTime":1557.773,"body":"extensively as it used to be."},{"startTime":1559.04,"endTime":1560.817,"body":"I mean, when I was a kid,"},{"startTime":1560.817,"endTime":1563.79,"body":"kid, I mean, when I was an undergraduate,"},{"startTime":1563.79,"endTime":1567.52,"body":"we were programming on"},{"startTime":1563.79,"endTime":1567.52,"body":"computers made by the Digital"},{"startTime":1567.52,"endTime":1568.98,"body":"Equipment Corporation who made"},{"startTime":1568.98,"endTime":1570.6,"body":"a wonderful range of computers,"},{"startTime":1570.6,"endTime":1573.15,"body":"the first group were called PDP 11,"},{"startTime":1573.15,"endTime":1576.28,"body":"which was very extensively"},{"startTime":1573.15,"endTime":1576.28,"body":"used in research labs."},{"startTime":1576.28,"endTime":1578.47,"body":"And then they moved to"},{"startTime":1576.28,"endTime":1578.47,"body":"a system called the VAX,"},{"startTime":1578.47,"endTime":1579.617,"body":"which ran an operating system called"},{"startTime":1579.617,"endTime":1582.671,"body":"the VMS, virtual memory system."},{"startTime":1582.671,"endTime":1584.89,"body":"You know, it was a big"},{"startTime":1582.671,"endTime":1584.89,"body":"selling point then for Deck,"},{"startTime":1584.89,"endTime":1588.77,"body":"the VMS, and because they were expensive,"},{"startTime":1588.77,"endTime":1590.54,"body":"they were notorious for being supplied"},{"startTime":1590.54,"endTime":1593.79,"body":"with not enough fast store."},{"startTime":1593.79,"endTime":1598.69,"body":"So you were always paging"},{"startTime":1593.79,"endTime":1598.69,"body":"stuff in and out of memory."},{"startTime":1598.69,"endTime":1600.643,"body":"And that takes time."},{"startTime":1601.52,"endTime":1605.92,"body":"You can get to a point where"},{"startTime":1601.52,"endTime":1605.92,"body":"the amount of time you spend"},{"startTime":1605.92,"endTime":1609.65,"body":"shuffling pages in and out"},{"startTime":1605.92,"endTime":1609.65,"body":"in off disk actually exceed"},{"startTime":1609.65,"endTime":1611.69,"body":"the amount of time you"},{"startTime":1609.65,"endTime":1611.69,"body":"spend doing anything else."},{"startTime":1611.69,"endTime":1613.333,"body":"And that's called thrashing."},{"startTime":1615.278,"endTime":1618.75,"body":"And this parody of, do"},{"startTime":1615.278,"endTime":1618.75,"body":"you recall this poem?"},{"startTime":1618.75,"endTime":1621.44,"body":"It was by Lewis Carroll, \"The Duchess\"."},{"startTime":1621.44,"endTime":1623.2,"body":"She was sort of dangling her baby"},{"startTime":1624.996,"endTime":1626.39,"body":"and had this peculiar poem,"},{"startTime":1626.39,"endTime":1628.59,"body":"which probably wouldn't be allowed"},{"startTime":1628.59,"endTime":1629.423,"body":"to get away with now,"},{"startTime":1629.423,"endTime":1631.7,"body":"called speak roughly to your little boy"},{"startTime":1631.7,"endTime":1636.7,"body":"and beat him when he"},{"startTime":1631.7,"endTime":1636.7,"body":"displeases you I think."},{"startTime":1637.31,"endTime":1640.13,"body":"So this poem was pinned on every"},{"startTime":1641.31,"endTime":1646.31,"body":"operator's door about the"},{"startTime":1641.31,"endTime":1646.31,"body":"nightmare of VAX paging."},{"startTime":1649.533,"endTime":1654.28,"body":"So now we've sort of scooted"},{"startTime":1649.533,"endTime":1654.28,"body":"up to what is basically"},{"startTime":1654.28,"endTime":1655.48,"body":"the modern operating system."},{"startTime":1655.48,"endTime":1658.43,"body":"We've got something there that is handling"},{"startTime":1658.43,"endTime":1662.03,"body":"some of the hardware issues"},{"startTime":1662.03,"endTime":1667.03,"body":"and it's looking like a bit like"},{"startTime":1667.036,"endTime":1669.47,"body":"the sort of operating systems"},{"startTime":1669.47,"endTime":1671.233,"body":"that people are familiar with."},{"startTime":1673.09,"endTime":1675.12,"body":"So now it'll be a good time to look"},{"startTime":1675.12,"endTime":1678.69,"body":"a little bit more detail"},{"startTime":1675.12,"endTime":1678.69,"body":"at an operating system."},{"startTime":1678.69,"endTime":1681.3,"body":"And you might say, well,"},{"startTime":1681.3,"endTime":1684.49,"body":"how do you choose what"},{"startTime":1681.3,"endTime":1684.49,"body":"operating system to talk about?"},{"startTime":1684.49,"endTime":1688.5,"body":"And that's actually quite"},{"startTime":1684.49,"endTime":1688.5,"body":"easy because nowadays,"},{"startTime":1688.5,"endTime":1689.5,"body":"as we'll see later,"},{"startTime":1689.5,"endTime":1692.05,"body":"there are really only"},{"startTime":1689.5,"endTime":1692.05,"body":"two operating systems"},{"startTime":1692.05,"endTime":1694.343,"body":"of any significance."},{"startTime":1695.454,"endTime":1698.46,"body":"And I've picked one"},{"startTime":1695.454,"endTime":1698.46,"body":"that is a sort of always"},{"startTime":1698.46,"endTime":1701.14,"body":"a hero of academics,"},{"startTime":1701.14,"endTime":1703.32,"body":"'cause it's been widely used in,"},{"startTime":1703.32,"endTime":1705.67,"body":"it's widely used in universities."},{"startTime":1705.67,"endTime":1706.503,"body":"That's for sure."},{"startTime":1706.503,"endTime":1709.44,"body":"And is now widely used in a wide range"},{"startTime":1709.44,"endTime":1712.32,"body":"of places and that's Unix."},{"startTime":1712.32,"endTime":1715.33,"body":"So rather than explain Unix,"},{"startTime":1715.33,"endTime":1720.24,"body":"I will play a little video"},{"startTime":1715.33,"endTime":1720.24,"body":"of the two inventors of Unix,"},{"startTime":1720.24,"endTime":1724.92,"body":"Dennis Richie and Ken Thompson,"},{"startTime":1724.92,"endTime":1729.76,"body":"who were both based at"},{"startTime":1724.92,"endTime":1729.76,"body":"Bell Labs AT\u0026T Bell Labs."},{"startTime":1729.76,"endTime":1731.63,"body":"For those of you who've"},{"startTime":1729.76,"endTime":1731.63,"body":"been following the series,"},{"startTime":1731.63,"endTime":1733.18,"body":"you will notice that an awful lot"},{"startTime":1733.18,"endTime":1736.35,"body":"of things were developed at Bell Labs."},{"startTime":1736.35,"endTime":1738.55,"body":"And if you've got a moment"},{"startTime":1736.35,"endTime":1738.55,"body":"do visit AT\u0026T Bell Labs"},{"startTime":1738.55,"endTime":1740.89,"body":"to have a look at their history timeline,"},{"startTime":1740.89,"endTime":1745.89,"body":"it is a very surprising"},{"startTime":1740.89,"endTime":1745.89,"body":"record of achievement."},{"startTime":1746.3,"endTime":1748.27,"body":"Let's have a look at what they say."},{"startTime":1748.27,"endTime":1750.06,"body":"- Back in 1969,"},{"startTime":1750.06,"endTime":1752.744,"body":"a couple of computer scientists"},{"startTime":1750.06,"endTime":1752.744,"body":"here at Bell Labs started"},{"startTime":1752.744,"endTime":1755.763,"body":"to develop some programs they"},{"startTime":1752.744,"endTime":1755.763,"body":"needed for their own use."},{"startTime":1757.14,"endTime":1760.34,"body":"What Ken Thompson and Dennis"},{"startTime":1757.14,"endTime":1760.34,"body":"Richie started developing"},{"startTime":1760.34,"endTime":1762.81,"body":"then has evolved into the"},{"startTime":1760.34,"endTime":1762.81,"body":"Unix operating system,"},{"startTime":1762.81,"endTime":1765.353,"body":"which by now is widely"},{"startTime":1762.81,"endTime":1765.353,"body":"used around the world."},{"startTime":1766.37,"endTime":1769.366,"body":"- We are trying to make"},{"startTime":1766.37,"endTime":1769.366,"body":"computing as simple as possible,"},{"startTime":1769.366,"endTime":1771.1,"body":"in the late 1960s Dennis Richie"},{"startTime":1771.1,"endTime":1773.37,"body":"and I realized that the then current"},{"startTime":1773.37,"endTime":1776.08,"body":"operating systems were much too complex."},{"startTime":1776.08,"endTime":1778.73,"body":"We attempted to reverse this"},{"startTime":1776.08,"endTime":1778.73,"body":"trend by building a small,"},{"startTime":1778.73,"endTime":1782.244,"body":"simple operating system"},{"startTime":1778.73,"endTime":1782.244,"body":"on a mini computer."},{"startTime":1782.244,"endTime":1784.44,"body":"But what we wanted to"},{"startTime":1782.244,"endTime":1784.44,"body":"preserve was not just"},{"startTime":1784.44,"endTime":1788.23,"body":"a good programming environment"},{"startTime":1784.44,"endTime":1788.23,"body":"in which to do programming,"},{"startTime":1788.23,"endTime":1790.693,"body":"but a system around which"},{"startTime":1788.23,"endTime":1790.693,"body":"a community could form."},{"startTime":1790.693,"endTime":1791.559,"body":"Fellowship."},{"startTime":1791.559,"endTime":1795.69,"body":"We knew from experience"},{"startTime":1791.559,"endTime":1795.69,"body":"that the essence of communal"},{"startTime":1795.69,"endTime":1797.65,"body":"computing as supplied"},{"startTime":1797.65,"endTime":1799.86,"body":"by remote access time sharing systems"},{"startTime":1799.86,"endTime":1801.7,"body":"is not just to type programs into"},{"startTime":1801.7,"endTime":1804.13,"body":"a terminal instead of a key punch,"},{"startTime":1804.13,"endTime":1806.85,"body":"but to encourage close communication."},{"startTime":1806.85,"endTime":1809.76,"body":"The Unix system started"},{"startTime":1806.85,"endTime":1809.76,"body":"out as a two-man effort."},{"startTime":1809.76,"endTime":1812.44,"body":"And by now it's used all over Bell Labs."},{"startTime":1812.44,"endTime":1815.593,"body":"We have close to 20,000 computer"},{"startTime":1812.44,"endTime":1815.593,"body":"terminals in this company,"},{"startTime":1816.445,"endTime":1818.523,"body":"roughly one per employee."},{"startTime":1819.4,"endTime":1820.93,"body":"And most of them are used"},{"startTime":1820.93,"endTime":1822.98,"body":"for communicating with Unix systems."},{"startTime":1822.98,"endTime":1825.46,"body":"One of the main reasons that"},{"startTime":1822.98,"endTime":1825.46,"body":"the Unix system is popular"},{"startTime":1825.46,"endTime":1828.08,"body":"around here is because it"},{"startTime":1825.46,"endTime":1828.08,"body":"provides graceful facilities"},{"startTime":1828.08,"endTime":1830.98,"body":"for decomposing complex computing tasks"},{"startTime":1830.98,"endTime":1832.313,"body":"into simple subtasks."},{"startTime":1834.17,"endTime":1835.73,"body":"- The Unix operating system"},{"startTime":1835.73,"endTime":1838.27,"body":"is basically made up of three parts."},{"startTime":1838.27,"endTime":1842.57,"body":"The kernel or operating"},{"startTime":1838.27,"endTime":1842.57,"body":"system proper is the part"},{"startTime":1842.57,"endTime":1845.39,"body":"that manages the control of the machine"},{"startTime":1845.39,"endTime":1850.12,"body":"and supervises scheduling of"},{"startTime":1845.39,"endTime":1850.12,"body":"the various user programs,"},{"startTime":1850.12,"endTime":1852.81,"body":"the shell, or which is the name we give"},{"startTime":1852.81,"endTime":1856.03,"body":"to the command interpreter looks"},{"startTime":1856.03,"endTime":1858.69,"body":"after the communication between"},{"startTime":1858.69,"endTime":1862.49,"body":"the user and the system itself."},{"startTime":1862.49,"endTime":1863.323,"body":"And the third part,"},{"startTime":1863.323,"endTime":1864.89,"body":"which is actually the largest"},{"startTime":1864.89,"endTime":1867.7,"body":"is the various utility programs,"},{"startTime":1867.7,"endTime":1871.21,"body":"which perform specific"},{"startTime":1867.7,"endTime":1871.21,"body":"tasks like editing a file"},{"startTime":1871.21,"endTime":1876.21,"body":"or sorting a bunch of"},{"startTime":1871.21,"endTime":1876.21,"body":"numbers or making a plot."},{"startTime":1876.47,"endTime":1877.303,"body":"In other words,"},{"startTime":1877.303,"endTime":1880.57,"body":"all the other programs that"},{"startTime":1877.303,"endTime":1880.57,"body":"are not provided directly"},{"startTime":1880.57,"endTime":1882.69,"body":"as part of the operating system kernel."},{"startTime":1882.69,"endTime":1884.08,"body":"- Yeah."},{"startTime":1884.08,"endTime":1885.74,"body":"It's good to hear those guys talk."},{"startTime":1885.74,"endTime":1887.6,"body":"They're incredibly important innovators"},{"startTime":1887.6,"endTime":1890.953,"body":"in the world of computer science."},{"startTime":1890.953,"endTime":1892.58,"body":"Also good to hear the word fellowship."},{"startTime":1892.58,"endTime":1894.2,"body":"You don't hear that word said very often"},{"startTime":1894.2,"endTime":1897.71,"body":"in a operating systems lecture apart"},{"startTime":1897.71,"endTime":1899.0,"body":"from of course the Worshipful Company"},{"startTime":1899.0,"endTime":1901.43,"body":"of Information Technologists"},{"startTime":1899.0,"endTime":1901.43,"body":"who sponsor these lectures"},{"startTime":1901.43,"endTime":1904.02,"body":"and who believe in amongst"},{"startTime":1901.43,"endTime":1904.02,"body":"other things fellowship."},{"startTime":1904.02,"endTime":1905.623,"body":"So shout out to them."},{"startTime":1907.13,"endTime":1909.55,"body":"You also heard the word kernel there,"},{"startTime":1909.55,"endTime":1914.04,"body":"kernel as in inner part"},{"startTime":1909.55,"endTime":1914.04,"body":"of a nut and the analogy"},{"startTime":1914.04,"endTime":1915.53,"body":"that they were using there was"},{"startTime":1915.53,"endTime":1917.01,"body":"that there was this sort of inner part"},{"startTime":1917.01,"endTime":1919.55,"body":"of the operating system"},{"startTime":1917.01,"endTime":1919.55,"body":"that does the work."},{"startTime":1919.55,"endTime":1921.93,"body":"And then there's this shell"},{"startTime":1919.55,"endTime":1921.93,"body":"which you interact with."},{"startTime":1921.93,"endTime":1922.763,"body":"And in fact,"},{"startTime":1922.763,"endTime":1924.58,"body":"the first Unix shell was imaginatively"},{"startTime":1924.58,"endTime":1928.083,"body":"called SH, S-H, stands for shell."},{"startTime":1929.22,"endTime":1932.3,"body":"And then there's lots of utilities,"},{"startTime":1932.3,"endTime":1934.59,"body":"which sit on the outside of that."},{"startTime":1934.59,"endTime":1937.44,"body":"And that was indeed in some contrast"},{"startTime":1937.44,"endTime":1939.41,"body":"to operating system that preceded it,"},{"startTime":1939.41,"endTime":1942.011,"body":"which had become very bulky."},{"startTime":1942.011,"endTime":1942.92,"body":"Nowadays,"},{"startTime":1942.92,"endTime":1945.82,"body":"we don't normally draw it as a"},{"startTime":1942.92,"endTime":1945.82,"body":"series of concentric circles."},{"startTime":1945.82,"endTime":1948.72,"body":"You'd normally draw an operating"},{"startTime":1945.82,"endTime":1948.72,"body":"system with the hardware"},{"startTime":1948.72,"endTime":1952.6,"body":"down at the bottom, and"},{"startTime":1948.72,"endTime":1952.6,"body":"then the kernel sits here."},{"startTime":1952.6,"endTime":1956.1,"body":"This is the main part of the"},{"startTime":1952.6,"endTime":1956.1,"body":"operating system up here."},{"startTime":1956.1,"endTime":1957.89,"body":"And then these are processes."},{"startTime":1957.89,"endTime":1959.25,"body":"They might be system processes,"},{"startTime":1959.25,"endTime":1961.11,"body":"or they might be user processes,"},{"startTime":1961.11,"endTime":1963.3,"body":"difference between a system"},{"startTime":1961.11,"endTime":1963.3,"body":"process and user process"},{"startTime":1963.3,"endTime":1966.743,"body":"is the amount of privilege"},{"startTime":1963.3,"endTime":1966.743,"body":"it has when it's running."},{"startTime":1968.06,"endTime":1969.55,"body":"Now, this diagram looks simple,"},{"startTime":1969.55,"endTime":1972.82,"body":"but it introduces a number"},{"startTime":1969.55,"endTime":1972.82,"body":"of sort of common concepts"},{"startTime":1972.82,"endTime":1975.28,"body":"that we're used to in operating systems."},{"startTime":1975.28,"endTime":1976.68,"body":"So the first one I suppose,"},{"startTime":1976.68,"endTime":1978.89,"body":"is at the top of this,"},{"startTime":1978.89,"endTime":1982.58,"body":"we have standard interfaces"},{"startTime":1982.58,"endTime":1986.78,"body":"and this is really a"},{"startTime":1982.58,"endTime":1986.78,"body":"programmer's convenience."},{"startTime":1986.78,"endTime":1989.16,"body":"It's a tremendous hassle writing programs"},{"startTime":1989.16,"endTime":1990.38,"body":"at the best of times."},{"startTime":1990.38,"endTime":1993.44,"body":"And if you have to rewrite them every time"},{"startTime":1993.44,"endTime":1996.37,"body":"a user has a slightly"},{"startTime":1993.44,"endTime":1996.37,"body":"different bit of hardware,"},{"startTime":1996.37,"endTime":1998.83,"body":"it's a nightmare, and this"},{"startTime":1996.37,"endTime":1998.83,"body":"is what used to happen."},{"startTime":1998.83,"endTime":2001.71,"body":"So you thought, well, I've got a PDP 1140,"},{"startTime":2001.71,"endTime":2003.28,"body":"I've written my program."},{"startTime":2003.28,"endTime":2004.21,"body":"And then your friend would say,"},{"startTime":2004.21,"endTime":2006.13,"body":"can I have a copy of your program?"},{"startTime":2006.13,"endTime":2007.33,"body":"And you'd say, yeah, here you go."},{"startTime":2007.33,"endTime":2010.58,"body":"And he said, I've got"},{"startTime":2007.33,"endTime":2010.58,"body":"a different keyboard."},{"startTime":2010.58,"endTime":2012.42,"body":"Oh, sorry, it won't work."},{"startTime":2012.42,"endTime":2013.72,"body":"That doesn't happen now."},{"startTime":2013.72,"endTime":2016.92,"body":"And the reason is because we have defined"},{"startTime":2016.92,"endTime":2018.962,"body":"interfaces between things,"},{"startTime":2018.962,"endTime":2021.9,"body":"it's a straight copy from"},{"startTime":2018.962,"endTime":2021.9,"body":"electrical engineering"},{"startTime":2021.9,"endTime":2024.32,"body":"where you have standard parts"},{"startTime":2024.32,"endTime":2026.23,"body":"and these standard or mechanical"},{"startTime":2026.23,"endTime":2029.2,"body":"engineering now where these"},{"startTime":2026.23,"endTime":2029.2,"body":"standard parts fit together."},{"startTime":2029.2,"endTime":2030.8,"body":"So that's an important part,"},{"startTime":2030.8,"endTime":2033.48,"body":"important function of an operating system,"},{"startTime":2033.48,"endTime":2036.9,"body":"which is to provide a"},{"startTime":2033.48,"endTime":2036.9,"body":"coherent programmers interface"},{"startTime":2036.9,"endTime":2041.9,"body":"between you, the user and"},{"startTime":2036.9,"endTime":2041.9,"body":"hardware, that could be way,"},{"startTime":2041.923,"endTime":2046.473,"body":"way different, really"},{"startTime":2041.923,"endTime":2046.473,"body":"surprisingly different."},{"startTime":2047.54,"endTime":2052.0,"body":"The other feature here is"},{"startTime":2047.54,"endTime":2052.0,"body":"that the kernel is split"},{"startTime":2052.0,"endTime":2054.62,"body":"into blocks and there may be"},{"startTime":2054.62,"endTime":2056.65,"body":"some difference between operating systems"},{"startTime":2056.65,"endTime":2060.33,"body":"and these blocks, but"},{"startTime":2056.65,"endTime":2060.33,"body":"pretty much you would expect"},{"startTime":2060.33,"endTime":2063.224,"body":"if I put the diagram of Windows up here"},{"startTime":2063.224,"endTime":2066.89,"body":"you would've seen pretty similar blocks."},{"startTime":2066.89,"endTime":2069.92,"body":"So it's a bit like a"},{"startTime":2066.89,"endTime":2069.92,"body":"mechanic opening the sort"},{"startTime":2069.92,"endTime":2072.83,"body":"of the hood or the bonnet of a car,"},{"startTime":2072.83,"endTime":2077.64,"body":"they can spot, although the"},{"startTime":2072.83,"endTime":2077.64,"body":"air conditioning compressor"},{"startTime":2077.64,"endTime":2081.89,"body":"looks different on a"},{"startTime":2077.64,"endTime":2081.89,"body":"Tesla from a VW Passat,"},{"startTime":2081.89,"endTime":2084.77,"body":"it's fairly simple to"},{"startTime":2081.89,"endTime":2084.77,"body":"identify it by its function."},{"startTime":2084.77,"endTime":2086.91,"body":"And it has similar inputs and outputs"},{"startTime":2086.91,"endTime":2088.26,"body":"and does similar things."},{"startTime":2088.26,"endTime":2093.08,"body":"So that's an important"},{"startTime":2088.26,"endTime":2093.08,"body":"concept of an operating system"},{"startTime":2093.08,"endTime":2098.08,"body":"that common blocks are"},{"startTime":2093.08,"endTime":2098.08,"body":"labeled in a common way,"},{"startTime":2099.27,"endTime":2101.78,"body":"which makes systems design"},{"startTime":2101.78,"endTime":2104.303,"body":"and systems tweaking a lot easier."},{"startTime":2106.015,"endTime":2107.76,"body":"And we can see this just by looking,"},{"startTime":2107.76,"endTime":2109.52,"body":"I'm sorry about the"},{"startTime":2107.76,"endTime":2109.52,"body":"complexity of this slide,"},{"startTime":2109.52,"endTime":2111.947,"body":"but it does come straight from GitHub."},{"startTime":2113.743,"endTime":2116.09,"body":"These are a list of tools for interacting"},{"startTime":2116.09,"endTime":2120.24,"body":"with various bits of the"},{"startTime":2116.09,"endTime":2120.24,"body":"Linux operating system."},{"startTime":2120.24,"endTime":2121.55,"body":"It's a bit of an open question"},{"startTime":2121.55,"endTime":2125.5,"body":"as to whether Linux is Unix or not Unix."},{"startTime":2125.5,"endTime":2128.54,"body":"Most people on the family"},{"startTime":2125.5,"endTime":2128.54,"body":"tree of operating systems say,"},{"startTime":2128.54,"endTime":2133.54,"body":"no, Linux is not the same as Unix."},{"startTime":2135.25,"endTime":2137.82,"body":"And that's because Linus Torvalds,"},{"startTime":2137.82,"endTime":2139.74,"body":"when he was writing Linux,"},{"startTime":2139.74,"endTime":2142.82,"body":"looked at the concepts"},{"startTime":2139.74,"endTime":2142.82,"body":"that were present in Unix"},{"startTime":2142.82,"endTime":2145.243,"body":"and decided to rewrite"},{"startTime":2142.82,"endTime":2145.243,"body":"them all from scratch,"},{"startTime":2146.18,"endTime":2149.69,"body":"same command names,"},{"startTime":2146.18,"endTime":2149.69,"body":"same structure as Unix,"},{"startTime":2149.69,"endTime":2154.69,"body":"but completely fresh and"},{"startTime":2149.69,"endTime":2154.69,"body":"different code under the hood."},{"startTime":2155.47,"endTime":2157.98,"body":"So I'm not quite sure what you"},{"startTime":2157.98,"endTime":2161.84,"body":"would call it, sort of"},{"startTime":2157.98,"endTime":2161.84,"body":"Unix clone I suppose,"},{"startTime":2161.84,"endTime":2163.41,"body":"the reason for that was partly"},{"startTime":2163.41,"endTime":2167.134,"body":"because I think Torvalds"},{"startTime":2163.41,"endTime":2167.134,"body":"likes writing code."},{"startTime":2167.134,"endTime":2168.67,"body":"And if you can write operating systems,"},{"startTime":2168.67,"endTime":2171.66,"body":"then you you've probably"},{"startTime":2168.67,"endTime":2171.66,"body":"reached the sort of,"},{"startTime":2171.66,"endTime":2174.05,"body":"it's the Wimbledon of programming"},{"startTime":2174.05,"endTime":2176.56,"body":"or Flushing Meadow of programming."},{"startTime":2176.56,"endTime":2180.23,"body":"It's the ultimate achievement doing so,"},{"startTime":2180.23,"endTime":2182.26,"body":"but partly because AT\u0026T,"},{"startTime":2182.26,"endTime":2184.78,"body":"although they'd given away copies of Unix"},{"startTime":2184.78,"endTime":2189.28,"body":"for free to universities,"},{"startTime":2184.78,"endTime":2189.28,"body":"it got mired into"},{"startTime":2191.32,"endTime":2193.56,"body":"all sorts of intellectual"},{"startTime":2191.32,"endTime":2193.56,"body":"property disputes."},{"startTime":2193.56,"endTime":2194.89,"body":"And then there was another version"},{"startTime":2194.89,"endTime":2196.537,"body":"that Berkeley had produced called BSD."},{"startTime":2196.537,"endTime":2198.0,"body":"And some people had used that"},{"startTime":2198.0,"endTime":2200.01,"body":"and then someone had come along"},{"startTime":2198.0,"endTime":2200.01,"body":"and done their own version."},{"startTime":2200.01,"endTime":2201.39,"body":"It was getting all very confused,"},{"startTime":2201.39,"endTime":2202.35,"body":"so he said stuff that,"},{"startTime":2202.35,"endTime":2206.0,"body":"I'm going to do my own version of Unix,"},{"startTime":2206.0,"endTime":2207.35,"body":"which I'm going to call Linux."},{"startTime":2208.58,"endTime":2209.71,"body":"That was an aside."},{"startTime":2209.71,"endTime":2213.16,"body":"The important thing is to look"},{"startTime":2209.71,"endTime":2213.16,"body":"at some of these blocks here"},{"startTime":2213.16,"endTime":2216.06,"body":"and we can see that these"},{"startTime":2213.16,"endTime":2216.06,"body":"will be fairly standard."},{"startTime":2216.06,"endTime":2218.97,"body":"Again, we've got hardware-y"},{"startTime":2216.06,"endTime":2218.97,"body":"bits down the bottom."},{"startTime":2218.97,"endTime":2220.8,"body":"So these are called device drivers."},{"startTime":2220.8,"endTime":2223.45,"body":"These are the interfaces"},{"startTime":2220.8,"endTime":2223.45,"body":"with bits of hardware."},{"startTime":2223.45,"endTime":2226.44,"body":"We've got stuff over here"},{"startTime":2223.45,"endTime":2226.44,"body":"to do with file systems,"},{"startTime":2226.44,"endTime":2228.483,"body":"virtual file system so on,"},{"startTime":2230.11,"endTime":2231.6,"body":"we got stuff here to do"},{"startTime":2231.6,"endTime":2234.63,"body":"with low level and medium"},{"startTime":2231.6,"endTime":2234.63,"body":"level communication."},{"startTime":2234.63,"endTime":2237.8,"body":"That's networking, the internet protocol,"},{"startTime":2237.8,"endTime":2242.083,"body":"and then the slightly higher TCP."},{"startTime":2243.27,"endTime":2245.27,"body":"These are things to do with"},{"startTime":2245.27,"endTime":2248.3,"body":"the virtual memory, the scheduler."},{"startTime":2248.3,"endTime":2251.17,"body":"This is something to do with"},{"startTime":2248.3,"endTime":2251.17,"body":"how the CPUs are being used."},{"startTime":2251.17,"endTime":2254.913,"body":"And then up here, we've"},{"startTime":2251.17,"endTime":2254.913,"body":"got stuff to do with users."},{"startTime":2256.999,"endTime":2260.51,"body":"So an important feature"},{"startTime":2256.999,"endTime":2260.51,"body":"of operating systems"},{"startTime":2260.51,"endTime":2265.353,"body":"is the provision of these"},{"startTime":2260.51,"endTime":2265.353,"body":"things called libraries."},{"startTime":2268.58,"endTime":2273.58,"body":"And the there's a bit of a debate."},{"startTime":2273.84,"endTime":2275.49,"body":"No, I think it's now settled,"},{"startTime":2275.49,"endTime":2277.77,"body":"but there was a bit of a"},{"startTime":2275.49,"endTime":2277.77,"body":"debate running pretty much"},{"startTime":2277.77,"endTime":2280.42,"body":"when Torvalds wrote Linux actually"},{"startTime":2280.42,"endTime":2284.83,"body":"as to how you would best"},{"startTime":2280.42,"endTime":2284.83,"body":"configure an operating system."},{"startTime":2284.83,"endTime":2286.6,"body":"So far I've been talking"},{"startTime":2286.6,"endTime":2290.444,"body":"about what are call"},{"startTime":2286.6,"endTime":2290.444,"body":"monolithic operating systems,"},{"startTime":2290.444,"endTime":2294.64,"body":"where all of these things"},{"startTime":2290.444,"endTime":2294.64,"body":"here in pink are part"},{"startTime":2294.64,"endTime":2299.64,"body":"of the protected mode and"},{"startTime":2294.64,"endTime":2299.64,"body":"run in super user mode."},{"startTime":2301.34,"endTime":2304.27,"body":"So in a way you can think of it as a sort"},{"startTime":2304.27,"endTime":2307.89,"body":"of a cabal of developers"},{"startTime":2304.27,"endTime":2307.89,"body":"write all of this."},{"startTime":2307.89,"endTime":2312.04,"body":"They don't need to check"},{"startTime":2307.89,"endTime":2312.04,"body":"whether the file server"},{"startTime":2312.04,"endTime":2315.43,"body":"and the device driver are"},{"startTime":2312.04,"endTime":2315.43,"body":"compatible with each other,"},{"startTime":2315.43,"endTime":2316.5,"body":"'cause they go together."},{"startTime":2316.5,"endTime":2318.35,"body":"They're always locked together."},{"startTime":2318.35,"endTime":2322.07,"body":"So you can do quite fast"},{"startTime":2318.35,"endTime":2322.07,"body":"inter process communication,"},{"startTime":2322.07,"endTime":2324.693,"body":"but it's a big old"},{"startTime":2322.07,"endTime":2324.693,"body":"block of stuff to write."},{"startTime":2326.197,"endTime":2328.32,"body":"So there's a big sort of,"},{"startTime":2326.197,"endTime":2328.32,"body":"there was a big debate,"},{"startTime":2328.32,"endTime":2330.51,"body":"do we actually need all"},{"startTime":2328.32,"endTime":2330.51,"body":"of this stuff running"},{"startTime":2330.51,"endTime":2332.633,"body":"in protective mode,"},{"startTime":2333.49,"endTime":2338.49,"body":"hence micro-kernel and the"},{"startTime":2333.49,"endTime":2338.49,"body":"idea behind the micro-kernel"},{"startTime":2338.54,"endTime":2341.84,"body":"is the principle of"},{"startTime":2338.54,"endTime":2341.84,"body":"least privilege really."},{"startTime":2341.84,"endTime":2345.223,"body":"Which is you should not, what is the,"},{"startTime":2346.929,"endTime":2349.68,"body":"how little stuff can I get away"},{"startTime":2349.68,"endTime":2352.233,"body":"with running in protected"},{"startTime":2349.68,"endTime":2352.233,"body":"mode or as a super user."},{"startTime":2353.605,"endTime":2355.72,"body":"And it's really a matter"},{"startTime":2353.605,"endTime":2355.72,"body":"of philosophy of this"},{"startTime":2355.72,"endTime":2359.06,"body":"and like a lot of operating systems wars,"},{"startTime":2359.06,"endTime":2361.98,"body":"it doesn't really have a"},{"startTime":2359.06,"endTime":2361.98,"body":"right or a wrong answer."},{"startTime":2361.98,"endTime":2364.31,"body":"I think there is a slight interest."},{"startTime":2364.31,"endTime":2366.88,"body":"One of the things that"},{"startTime":2364.31,"endTime":2366.88,"body":"intrigues me about micro kernels"},{"startTime":2366.88,"endTime":2368.47,"body":"isn't whether one is better than"},{"startTime":2368.47,"endTime":2370.68,"body":"the other to write or any of those things,"},{"startTime":2370.68,"endTime":2372.86,"body":"but the micro-kernel does hold out"},{"startTime":2372.86,"endTime":2374.82,"body":"one interesting potential,"},{"startTime":2374.82,"endTime":2377.47,"body":"which is if you could get it small enough,"},{"startTime":2377.47,"endTime":2382.187,"body":"then you might be able"},{"startTime":2377.47,"endTime":2382.187,"body":"to prove that it works."},{"startTime":2382.187,"endTime":2383.88,"body":"People are smiling when I say that,"},{"startTime":2383.88,"endTime":2385.33,"body":"seems a bit of a weird thing."},{"startTime":2386.66,"endTime":2388.61,"body":"One of the problems with"},{"startTime":2386.66,"endTime":2388.61,"body":"modern computer systems"},{"startTime":2388.61,"endTime":2391.01,"body":"and I've alluded to"},{"startTime":2388.61,"endTime":2391.01,"body":"this in other lectures,"},{"startTime":2391.01,"endTime":2393.93,"body":"is how do you know that"},{"startTime":2391.01,"endTime":2393.93,"body":"the thing you've got"},{"startTime":2393.93,"endTime":2397.92,"body":"in front of you is doing what it says,"},{"startTime":2397.92,"endTime":2402.04,"body":"and it's a sort of existence proof really."},{"startTime":2402.04,"endTime":2404.0,"body":"And that becomes particularly important"},{"startTime":2404.0,"endTime":2405.66,"body":"when you've got embedded systems."},{"startTime":2405.66,"endTime":2408.3,"body":"So I'll give you an example."},{"startTime":2408.3,"endTime":2412.8,"body":"Let's say we we bought a"},{"startTime":2408.3,"endTime":2412.8,"body":"router for 5G telephony"},{"startTime":2412.8,"endTime":2415.163,"body":"in this country, United Kingdom."},{"startTime":2416.05,"endTime":2417.11,"body":"Well there's three or four people"},{"startTime":2417.11,"endTime":2418.56,"body":"who could supply that router."},{"startTime":2420.23,"endTime":2421.54,"body":"It's a bit of a dumb terminal."},{"startTime":2421.54,"endTime":2425.04,"body":"What gives it life is the"},{"startTime":2421.54,"endTime":2425.04,"body":"algorithm that gets downloaded"},{"startTime":2425.04,"endTime":2428.74,"body":"into the router and does its business."},{"startTime":2428.74,"endTime":2430.453,"body":"And that algorithm gets updated."},{"startTime":2431.46,"endTime":2435.69,"body":"So then the router can go"},{"startTime":2431.46,"endTime":2435.69,"body":"from completely functioning"},{"startTime":2435.69,"endTime":2438.923,"body":"to not functioning at all, just like that."},{"startTime":2440.26,"endTime":2444.34,"body":"So if the person supplying"},{"startTime":2440.26,"endTime":2444.34,"body":"the router was from a country"},{"startTime":2444.34,"endTime":2448.01,"body":"that wasn't friendly"},{"startTime":2444.34,"endTime":2448.01,"body":"towards the United Kingdom,"},{"startTime":2448.01,"endTime":2450.36,"body":"then one press of the button"},{"startTime":2450.36,"endTime":2452.923,"body":"and all of a sudden your"},{"startTime":2450.36,"endTime":2452.923,"body":"telephony stops working."},{"startTime":2454.6,"endTime":2456.34,"body":"That's software-ization,"},{"startTime":2456.34,"endTime":2458.613,"body":"that can happen with software-ization."},{"startTime":2459.766,"endTime":2463.793,"body":"So, and it's a common"},{"startTime":2459.766,"endTime":2463.793,"body":"problem in the IT industry."},{"startTime":2464.649,"endTime":2467.687,"body":"We are never quite sure how the thing"},{"startTime":2467.687,"endTime":2469.8,"body":"we've got in front of us really works"},{"startTime":2469.8,"endTime":2472.39,"body":"as maybe only one person in the world"},{"startTime":2472.39,"endTime":2474.37,"body":"who knows how it works, right?"},{"startTime":2474.37,"endTime":2477.22,"body":"So micro-kernel, if we"},{"startTime":2474.37,"endTime":2477.22,"body":"could get it small enough,"},{"startTime":2477.22,"endTime":2479.39,"body":"we might be able to do a formal proof"},{"startTime":2479.39,"endTime":2482.08,"body":"that it is doing what it says it can do."},{"startTime":2482.08,"endTime":2483.52,"body":"And indeed, that it's been done."},{"startTime":2483.52,"endTime":2486.42,"body":"There's a micro-kernel system called L4."},{"startTime":2486.42,"endTime":2488.371,"body":"And there's a version of L4,"},{"startTime":2488.371,"endTime":2492.21,"body":"I think it's either SEL4 or CEL4,"},{"startTime":2492.21,"endTime":2494.04,"body":"which is a high assurance version of L4"},{"startTime":2494.04,"endTime":2495.98,"body":"that has been formally verified."},{"startTime":2495.98,"endTime":2497.67,"body":"I think that's the first time ever."},{"startTime":2497.67,"endTime":2501.61,"body":"And so that's quite a sort"},{"startTime":2497.67,"endTime":2501.61,"body":"of encouraging thought"},{"startTime":2501.61,"endTime":2503.86,"body":"that there is an"},{"startTime":2501.61,"endTime":2503.86,"body":"operating system out there"},{"startTime":2503.86,"endTime":2505.68,"body":"that we can be mathematically"},{"startTime":2505.68,"endTime":2509.55,"body":"confident is doing what it is meant to do."},{"startTime":2509.55,"endTime":2511.48,"body":"Doesn't say anything about the"},{"startTime":2509.55,"endTime":2511.48,"body":"rest of the stuff of course."},{"startTime":2511.48,"endTime":2513.83,"body":"So it doesn't get you out of the woods,"},{"startTime":2513.83,"endTime":2515.66,"body":"but it's a step in the right direction"},{"startTime":2515.66,"endTime":2517.363,"body":"towards high assurance computing."},{"startTime":2518.75,"endTime":2523.52,"body":"Now I've alluded to this"},{"startTime":2518.75,"endTime":2523.52,"body":"standardization several times"},{"startTime":2523.52,"endTime":2528.52,"body":"and this block diagram is"},{"startTime":2523.52,"endTime":2528.52,"body":"another version of Linux."},{"startTime":2529.84,"endTime":2532.83,"body":"It's one that you are"},{"startTime":2529.84,"endTime":2532.83,"body":"probably quite familiar with."},{"startTime":2532.83,"endTime":2535.22,"body":"It's called Android."},{"startTime":2535.22,"endTime":2537.517,"body":"So if you have an Android phone,"},{"startTime":2537.517,"endTime":2542.476,"body":"it's actually a Linux kernel in there,"},{"startTime":2542.476,"endTime":2545.12,"body":"which is a version of Unix."},{"startTime":2545.12,"endTime":2546.77,"body":"So if you were thinking,"},{"startTime":2546.77,"endTime":2548.39,"body":"if you were sitting here thinking, well,"},{"startTime":2548.39,"endTime":2550.132,"body":"I've never heard of Unix,"},{"startTime":2548.39,"endTime":2550.132,"body":"it sounds very rarefied."},{"startTime":2550.132,"endTime":2552.05,"body":"I you've probably heard of Android"},{"startTime":2552.05,"endTime":2555.03,"body":"and you've probably"},{"startTime":2552.05,"endTime":2555.03,"body":"been using it every day."},{"startTime":2555.03,"endTime":2558.48,"body":"Android is a rather interesting case"},{"startTime":2558.48,"endTime":2563.09,"body":"and I picked it because it"},{"startTime":2558.48,"endTime":2563.09,"body":"illustrates an interesting"},{"startTime":2563.09,"endTime":2565.74,"body":"observation about the"},{"startTime":2563.09,"endTime":2565.74,"body":"way code is put together,"},{"startTime":2565.74,"endTime":2569.23,"body":"which is a function of the"},{"startTime":2565.74,"endTime":2569.23,"body":"way operating systems work."},{"startTime":2569.23,"endTime":2571.718,"body":"So I remember the first program I wrote"},{"startTime":2571.718,"endTime":2574.38,"body":"for a big Windows operating system."},{"startTime":2574.38,"endTime":2577.493,"body":"It was for a Sun workstation,"},{"startTime":2574.38,"endTime":2577.493,"body":"wonderful computers."},{"startTime":2578.69,"endTime":2580.68,"body":"And the first program you always write"},{"startTime":2580.68,"endTime":2581.89,"body":"is called hello world."},{"startTime":2581.89,"endTime":2583.47,"body":"And hello world only does one thing."},{"startTime":2583.47,"endTime":2585.58,"body":"It prints hello world on the output."},{"startTime":2585.58,"endTime":2587.99,"body":"But because it's a Windows program has"},{"startTime":2587.99,"endTime":2591.273,"body":"to add various code and that"},{"startTime":2587.99,"endTime":2591.273,"body":"code comes from libraries."},{"startTime":2592.52,"endTime":2595.87,"body":"So my one line program, hello"},{"startTime":2592.52,"endTime":2595.87,"body":"world, or couple of lines,"},{"startTime":2595.87,"endTime":2598.82,"body":"by the time I'd finished compiling it,"},{"startTime":2598.82,"endTime":2602.84,"body":"I had added in 130,000 lines of code."},{"startTime":2602.84,"endTime":2607.09,"body":"So that extra, that was the"},{"startTime":2602.84,"endTime":2607.09,"body":"stuff to do win loading system."},{"startTime":2607.09,"endTime":2610.14,"body":"So the library can be very significant"},{"startTime":2611.02,"endTime":2613.81,"body":"and you can see the problem"},{"startTime":2611.02,"endTime":2613.81,"body":"already can't you, which is,"},{"startTime":2613.81,"endTime":2618.24,"body":"if you add every bit of"},{"startTime":2613.81,"endTime":2618.24,"body":"the library to your code,"},{"startTime":2618.24,"endTime":2620.53,"body":"as you compile it, as you build it,"},{"startTime":2620.53,"endTime":2621.84,"body":"you're going to end up with great"},{"startTime":2621.84,"endTime":2624.303,"body":"big bulky bloated bits of code."},{"startTime":2625.21,"endTime":2627.71,"body":"Well, that's called static library."},{"startTime":2627.71,"endTime":2632.71,"body":"So the alternative is to"},{"startTime":2627.71,"endTime":2632.71,"body":"dynamically add in the code"},{"startTime":2634.33,"endTime":2636.7,"body":"only when you call, it's"},{"startTime":2634.33,"endTime":2636.7,"body":"called dynamic linking."},{"startTime":2636.7,"endTime":2638.84,"body":"So those of you who remember"},{"startTime":2636.7,"endTime":2638.84,"body":"windows has this thing"},{"startTime":2638.84,"endTime":2642.32,"body":"called a DLL or dynamic link library."},{"startTime":2642.32,"endTime":2645.17,"body":"And of course that leads to"},{"startTime":2642.32,"endTime":2645.17,"body":"something called DLL hell,"},{"startTime":2645.17,"endTime":2649.76,"body":"which is the version that I linked with."},{"startTime":2649.76,"endTime":2651.8,"body":"Doesn't have quite the same syntax"},{"startTime":2651.8,"endTime":2655.2,"body":"as the one that's on the operating system."},{"startTime":2655.2,"endTime":2658.87,"body":"So one of the ways around"},{"startTime":2655.2,"endTime":2658.87,"body":"this is to get away"},{"startTime":2658.87,"endTime":2661.243,"body":"from this linking to libraries altogether,"},{"startTime":2662.08,"endTime":2666.15,"body":"and to either interpret"},{"startTime":2662.08,"endTime":2666.15,"body":"the code as you go."},{"startTime":2666.15,"endTime":2668.59,"body":"So you could do that on Android."},{"startTime":2668.59,"endTime":2670.57,"body":"You could have Java,"},{"startTime":2670.57,"endTime":2672.94,"body":"which is an interpreted"},{"startTime":2670.57,"endTime":2672.94,"body":"language as a native,"},{"startTime":2672.94,"endTime":2676.55,"body":"or you can do a quick bit of compilation"},{"startTime":2676.55,"endTime":2679.98,"body":"before you run it called"},{"startTime":2676.55,"endTime":2679.98,"body":"just in time compilation."},{"startTime":2679.98,"endTime":2682.24,"body":"So JavaScript, that's the language"},{"startTime":2682.24,"endTime":2685.92,"body":"that runs on web browsers"},{"startTime":2682.24,"endTime":2685.92,"body":"is an example of that."},{"startTime":2687.69,"endTime":2690.11,"body":"So we talked a little bit"},{"startTime":2687.69,"endTime":2690.11,"body":"about the operating system,"},{"startTime":2690.11,"endTime":2691.93,"body":"what it does, a bit of virtual memory,"},{"startTime":2691.93,"endTime":2693.69,"body":"all that sort of stuff."},{"startTime":2693.69,"endTime":2695.37,"body":"I skipped over a bit,"},{"startTime":2695.37,"endTime":2696.833,"body":"which is scheduling and scheduling"},{"startTime":2696.833,"endTime":2699.15,"body":"is a rather interesting problem."},{"startTime":2699.15,"endTime":2702.41,"body":"You know, you've got a number of processes"},{"startTime":2702.41,"endTime":2704.4,"body":"in your computer system."},{"startTime":2704.4,"endTime":2706.36,"body":"How does the computer decide"},{"startTime":2706.36,"endTime":2708.503,"body":"how much time to give to each one?"},{"startTime":2709.35,"endTime":2711.31,"body":"Well, there's a"},{"startTime":2709.35,"endTime":2711.31,"body":"multiplicity of algorithms."},{"startTime":2711.31,"endTime":2713.623,"body":"I've just picked one, which"},{"startTime":2711.31,"endTime":2713.623,"body":"is quite a simple one."},{"startTime":2713.623,"endTime":2716.78,"body":"I've picked one from an"},{"startTime":2713.623,"endTime":2716.78,"body":"operating system called Solaris,"},{"startTime":2716.78,"endTime":2718.89,"body":"which was developed by"},{"startTime":2716.78,"endTime":2718.89,"body":"the Sun operating system,"},{"startTime":2718.89,"endTime":2722.453,"body":"the Sun Microsystems, but"},{"startTime":2718.89,"endTime":2722.453,"body":"is now owned by Oracle."},{"startTime":2724.327,"endTime":2727.69,"body":"And what Solaris does"},{"startTime":2724.327,"endTime":2727.69,"body":"is it defines things."},{"startTime":2727.69,"endTime":2730.62,"body":"It processes as one of multiple classes,"},{"startTime":2730.62,"endTime":2734.24,"body":"most things are assigned"},{"startTime":2730.62,"endTime":2734.24,"body":"to the time sharing class."},{"startTime":2734.24,"endTime":2738.65,"body":"And each one of these things is given"},{"startTime":2738.65,"endTime":2742.153,"body":"a priority level and the"},{"startTime":2738.65,"endTime":2742.153,"body":"lower the priority level,"},{"startTime":2742.153,"endTime":2747.15,"body":"the more time it is allowed to run."},{"startTime":2747.15,"endTime":2748.91,"body":"So the shunting algorithm goes like this."},{"startTime":2748.91,"endTime":2750.993,"body":"Firstly, we we're going to slice the time."},{"startTime":2752.081,"endTime":2755.4,"body":"So I think Solaris by default"},{"startTime":2752.081,"endTime":2755.4,"body":"has 20 millisecond time slots."},{"startTime":2756.35,"endTime":2759.38,"body":"We're going to assign"},{"startTime":2756.35,"endTime":2759.38,"body":"a thread, a priority."},{"startTime":2759.38,"endTime":2760.485,"body":"There's a default designation,"},{"startTime":2760.485,"endTime":2762.71,"body":"but in most of Unix and most things you,"},{"startTime":2762.71,"endTime":2765.353,"body":"the user can fiddle around"},{"startTime":2762.71,"endTime":2765.353,"body":"with that if you want to."},{"startTime":2766.49,"endTime":2769.45,"body":"The high priority threads"},{"startTime":2769.45,"endTime":2773.69,"body":"are going to be dealt with first,"},{"startTime":2773.69,"endTime":2777.33,"body":"once they have used up"},{"startTime":2773.69,"endTime":2777.33,"body":"their exceeded time,"},{"startTime":2777.33,"endTime":2779.643,"body":"then we decrease the priority."},{"startTime":2780.83,"endTime":2783.98,"body":"So it's the sort of greedy"},{"startTime":2780.83,"endTime":2783.98,"body":"algorithm in the sense"},{"startTime":2783.98,"endTime":2785.35,"body":"that your high priority,"},{"startTime":2785.35,"endTime":2786.61,"body":"I'll deal with you, I'll deal with you."},{"startTime":2786.61,"endTime":2787.5,"body":"Oh, you've run out of time,"},{"startTime":2787.5,"endTime":2789.74,"body":"right thanks, I've had enough of you,"},{"startTime":2789.74,"endTime":2792.44,"body":"you're lower priority now,"},{"startTime":2789.74,"endTime":2792.44,"body":"go to the back of a queue."},{"startTime":2792.44,"endTime":2793.83,"body":"Now I'll take you."},{"startTime":2793.83,"endTime":2795.377,"body":"So a lot of these algorithms out there,"},{"startTime":2795.377,"endTime":2797.36,"body":"but that's quite a simple one."},{"startTime":2797.36,"endTime":2799.03,"body":"The reason I pick Solaris is"},{"startTime":2799.03,"endTime":2800.54,"body":"because I just wanted to alert you"},{"startTime":2800.54,"endTime":2803.53,"body":"to this interesting class of tasks here"},{"startTime":2803.53,"endTime":2805.47,"body":"called real time."},{"startTime":2805.47,"endTime":2808.01,"body":"Real time is often misused in our field."},{"startTime":2808.01,"endTime":2809.83,"body":"It doesn't just mean speedy."},{"startTime":2809.83,"endTime":2814.83,"body":"It means I must have something"},{"startTime":2809.83,"endTime":2814.83,"body":"done within a fixed time."},{"startTime":2815.92,"endTime":2817.95,"body":"So people often analyze,"},{"startTime":2817.95,"endTime":2822.95,"body":"think of an operating system"},{"startTime":2817.95,"endTime":2822.95,"body":"as the person spinning plates."},{"startTime":2823.56,"endTime":2824.59,"body":"I'm sure you've seen these people."},{"startTime":2824.59,"endTime":2825.877,"body":"Big wobbly sticks and"},{"startTime":2824.59,"endTime":2825.877,"body":"the plates are spinning."},{"startTime":2825.877,"endTime":2827.21,"body":"The plates are spinning."},{"startTime":2827.21,"endTime":2829.11,"body":"This plate over here is going to fall over"},{"startTime":2829.11,"endTime":2831.2,"body":"unless I get some twist in the stick."},{"startTime":2831.2,"endTime":2832.76,"body":"That is a real time problem."},{"startTime":2832.76,"endTime":2834.27,"body":"I don't have to do it now,"},{"startTime":2834.27,"endTime":2836.5,"body":"but I have to do it within a fixed time."},{"startTime":2836.5,"endTime":2837.333,"body":"I have to do that."},{"startTime":2837.333,"endTime":2839.48,"body":"So that's a real time problem."},{"startTime":2839.48,"endTime":2841.514,"body":"And there are whole"},{"startTime":2839.48,"endTime":2841.514,"body":"operating systems devoted"},{"startTime":2841.514,"endTime":2844.803,"body":"to the challenge of real time."},{"startTime":2846.24,"endTime":2847.53,"body":"I feel I ought to say a little bit"},{"startTime":2847.53,"endTime":2850.173,"body":"about inter process"},{"startTime":2847.53,"endTime":2850.173,"body":"communication, but not too much."},{"startTime":2851.066,"endTime":2852.503,"body":"Here's a problem."},{"startTime":2853.42,"endTime":2855.84,"body":"Let's imagine I had this variable X,"},{"startTime":2855.84,"endTime":2857.177,"body":"which I'm going to set to zero"},{"startTime":2857.177,"endTime":2859.803,"body":"and I've got two functions"},{"startTime":2857.177,"endTime":2859.803,"body":"on the left here."},{"startTime":2861.02,"endTime":2863.2,"body":"This one reads X and adds one to it."},{"startTime":2863.2,"endTime":2864.957,"body":"And this one reads X and adds one to it."},{"startTime":2864.957,"endTime":2867.72,"body":"And this is my code, sequential code."},{"startTime":2867.72,"endTime":2869.68,"body":"So you can what's going to happen."},{"startTime":2869.68,"endTime":2872.283,"body":"I'm going to read X equals zero."},{"startTime":2873.27,"endTime":2874.57,"body":"Well, X is zero."},{"startTime":2874.57,"endTime":2876.13,"body":"Then I'm going to read it in."},{"startTime":2876.13,"endTime":2877.31,"body":"That's why it's in blue."},{"startTime":2877.31,"endTime":2878.35,"body":"I'm going to add one to it."},{"startTime":2878.35,"endTime":2880.68,"body":"And then I set it to one."},{"startTime":2880.68,"endTime":2883.043,"body":"So X goes from zero to one,"},{"startTime":2885.57,"endTime":2886.6,"body":"I'll read it again."},{"startTime":2886.6,"endTime":2888.52,"body":"And X ends up as two."},{"startTime":2888.52,"endTime":2889.81,"body":"No problem at all."},{"startTime":2889.81,"endTime":2892.02,"body":"Now then let's say we put that through"},{"startTime":2892.02,"endTime":2895.86,"body":"an optimizing compiler"},{"startTime":2892.02,"endTime":2895.86,"body":"and it thinks, wow, well,"},{"startTime":2895.86,"endTime":2899.17,"body":"I can run these on"},{"startTime":2895.86,"endTime":2899.17,"body":"separate processes, right?"},{"startTime":2899.17,"endTime":2900.883,"body":"That will make it faster won't it?"},{"startTime":2902.89,"endTime":2905.011,"body":"So I start with X equals zero."},{"startTime":2905.011,"endTime":2908.433,"body":"I read it in,"},{"startTime":2909.689,"endTime":2913.62,"body":"and I do my computation and I just,"},{"startTime":2913.62,"endTime":2914.76,"body":"oh, hang on."},{"startTime":2914.76,"endTime":2917.56,"body":"This one has started before"},{"startTime":2914.76,"endTime":2917.56,"body":"this one has written it out."},{"startTime":2919.19,"endTime":2921.71,"body":"That's an example of a race condition,"},{"startTime":2921.71,"endTime":2924.58,"body":"can happen a lot in our business."},{"startTime":2924.58,"endTime":2927.85,"body":"You've got these multiple"},{"startTime":2924.58,"endTime":2927.85,"body":"tasks all going on."},{"startTime":2927.85,"endTime":2930.49,"body":"And either you can end up"},{"startTime":2930.49,"endTime":2933.75,"body":"with very unexpected results like this."},{"startTime":2933.75,"endTime":2936.17,"body":"I mean the sum was executed twice."},{"startTime":2936.17,"endTime":2937.8,"body":"It should be two, it's only one."},{"startTime":2937.8,"endTime":2939.19,"body":"And that's because something was read"},{"startTime":2939.19,"endTime":2940.85,"body":"at the wrong time, or worse,"},{"startTime":2940.85,"endTime":2943.35,"body":"you can end up with task blocking."},{"startTime":2943.35,"endTime":2946.01,"body":"So the famous sort of"},{"startTime":2943.35,"endTime":2946.01,"body":"undergraduate example"},{"startTime":2946.01,"endTime":2951.01,"body":"is often given here is"},{"startTime":2946.01,"endTime":2951.01,"body":"one of the Mars missions."},{"startTime":2951.77,"endTime":2954.58,"body":"And it didn't last very long this,"},{"startTime":2954.58,"endTime":2956.91,"body":"but somebody very kindly wrote it up."},{"startTime":2956.91,"endTime":2960.151,"body":"So it gets mentioned a lot"},{"startTime":2956.91,"endTime":2960.151,"body":"in undergraduate classes."},{"startTime":2960.151,"endTime":2962.48,"body":"What happened here was"},{"startTime":2962.48,"endTime":2966.64,"body":"the Lunar vehicle had a high priority task"},{"startTime":2966.64,"endTime":2968.793,"body":"that really needed to run."},{"startTime":2971.41,"endTime":2973.26,"body":"And it was running, running, running."},{"startTime":2974.561,"endTime":2976.493,"body":"And no, no, let's get this right,"},{"startTime":2976.493,"endTime":2979.82,"body":"It's the other way round, a"},{"startTime":2976.493,"endTime":2979.82,"body":"low priority task was run."},{"startTime":2979.82,"endTime":2984.61,"body":"And as that low priority task"},{"startTime":2979.82,"endTime":2984.61,"body":"was running along the low"},{"startTime":2984.61,"endTime":2986.98,"body":"priority task had some"},{"startTime":2984.61,"endTime":2986.98,"body":"IO that it had to do"},{"startTime":2986.98,"endTime":2987.92,"body":"or something that blocked it."},{"startTime":2987.92,"endTime":2988.87,"body":"So it said, well,"},{"startTime":2988.87,"endTime":2990.68,"body":"I'll just wait for this IO."},{"startTime":2990.68,"endTime":2992.1,"body":"Then high priority task comes on."},{"startTime":2992.1,"endTime":2993.14,"body":"I'm in charge."},{"startTime":2993.14,"endTime":2995.168,"body":"High priority task comes in,"},{"startTime":2995.168,"endTime":2997.73,"body":"high priority task also needs the same IO,"},{"startTime":2997.73,"endTime":2999.69,"body":"it's blocked because"},{"startTime":2999.69,"endTime":3002.203,"body":"the low priority task has locked the IO."},{"startTime":3003.417,"endTime":3005.66,"body":"Ah, so suddenly the computer thinks,"},{"startTime":3005.66,"endTime":3006.493,"body":"oh, well, that's blocked."},{"startTime":3006.493,"endTime":3007.84,"body":"I can swap that out."},{"startTime":3007.84,"endTime":3009.83,"body":"So it swaps out the high"},{"startTime":3007.84,"endTime":3009.83,"body":"priority task and brings"},{"startTime":3009.83,"endTime":3013.04,"body":"in a medium priority task because"},{"startTime":3013.04,"endTime":3014.56,"body":"the medium priority task is higher"},{"startTime":3014.56,"endTime":3015.63,"body":"than the low priority task."},{"startTime":3015.63,"endTime":3017.14,"body":"And the whole thing falls in the heap."},{"startTime":3017.14,"endTime":3019.52,"body":"It's called priority inversion."},{"startTime":3019.52,"endTime":3023.58,"body":"As an example of deadlock or"},{"startTime":3019.52,"endTime":3023.58,"body":"locking or race conditions."},{"startTime":3023.58,"endTime":3025.75,"body":"They're all examples of the same thing."},{"startTime":3025.75,"endTime":3029.53,"body":"And quite a lot of effort has"},{"startTime":3025.75,"endTime":3029.53,"body":"to go through operating system"},{"startTime":3029.53,"endTime":3032.503,"body":"design to try and stop"},{"startTime":3029.53,"endTime":3032.503,"body":"those things hurting it."},{"startTime":3033.75,"endTime":3036.18,"body":"Few words about the cloud,"},{"startTime":3036.18,"endTime":3040.855,"body":"which is all computer science"},{"startTime":3036.18,"endTime":3040.855,"body":"talks given in industry always"},{"startTime":3040.855,"endTime":3044.413,"body":"have a large fluffy picture of the cloud."},{"startTime":3045.85,"endTime":3048.42,"body":"I'd like a prize for not having"},{"startTime":3045.85,"endTime":3048.42,"body":"put a picture of a fluffy"},{"startTime":3048.42,"endTime":3049.853,"body":"cloud in my presentation."},{"startTime":3050.69,"endTime":3052.44,"body":"What's happening at the moment however,"},{"startTime":3052.44,"endTime":3055.73,"body":"is the transition from physical machines"},{"startTime":3055.73,"endTime":3058.883,"body":"in front of you to physical"},{"startTime":3055.73,"endTime":3058.883,"body":"machines elsewhere."},{"startTime":3059.72,"endTime":3061.5,"body":"And this can have quite"},{"startTime":3059.72,"endTime":3061.5,"body":"a lot of advantages,"},{"startTime":3061.5,"endTime":3063.41,"body":"particularly for corporations."},{"startTime":3063.41,"endTime":3065.52,"body":"Obviously there's a huge capital advantage"},{"startTime":3065.52,"endTime":3068.39,"body":"because you're not buy,"},{"startTime":3065.52,"endTime":3068.39,"body":"well, you can buy them,"},{"startTime":3068.39,"endTime":3070.02,"body":"but very often you'll be renting them."},{"startTime":3070.02,"endTime":3073.17,"body":"So that can be more"},{"startTime":3070.02,"endTime":3073.17,"body":"convenient financially."},{"startTime":3073.17,"endTime":3075.27,"body":"You can site the machines in places"},{"startTime":3075.27,"endTime":3077.02,"body":"where you can get free electricity."},{"startTime":3078.2,"endTime":3082.55,"body":"Like Iceland is a famous"},{"startTime":3078.2,"endTime":3082.55,"body":"place to put a server site."},{"startTime":3082.55,"endTime":3085.91,"body":"You can also ensure"},{"startTime":3082.55,"endTime":3085.91,"body":"tremendous physical security"},{"startTime":3085.91,"endTime":3088.43,"body":"with remote machines,"},{"startTime":3088.43,"endTime":3089.89,"body":"which might not be available to you."},{"startTime":3089.89,"endTime":3093.51,"body":"I mean, we're giving this"},{"startTime":3089.89,"endTime":3093.51,"body":"lecture in the city of London."},{"startTime":3093.51,"endTime":3096.01,"body":"I have no idea how many servers are really"},{"startTime":3096.01,"endTime":3100.08,"body":"based in the city of London,"},{"startTime":3096.01,"endTime":3100.08,"body":"but not many I should think."},{"startTime":3100.08,"endTime":3101.93,"body":"You know, why would you base them here"},{"startTime":3101.93,"endTime":3106.5,"body":"with very expensive real"},{"startTime":3101.93,"endTime":3106.5,"body":"estate and all sorts of issues."},{"startTime":3106.5,"endTime":3108.74,"body":"You base them somewhere"},{"startTime":3106.5,"endTime":3108.74,"body":"where it's possible"},{"startTime":3108.74,"endTime":3109.96,"body":"to give them physical security."},{"startTime":3109.96,"endTime":3112.0,"body":"So a lot of interest in doing this,"},{"startTime":3112.0,"endTime":3114.74,"body":"and the sort of buzzwords are,"},{"startTime":3114.74,"endTime":3117.73,"body":"you could offer something"},{"startTime":3114.74,"endTime":3117.73,"body":"that software as service,"},{"startTime":3117.73,"endTime":3118.93,"body":"probably everyone has used that,"},{"startTime":3118.93,"endTime":3120.37,"body":"that's something like Google Docs."},{"startTime":3120.37,"endTime":3121.61,"body":"That's a something that runs"},{"startTime":3121.61,"endTime":3125.189,"body":"in the cloud or running"},{"startTime":3121.61,"endTime":3125.189,"body":"on remote sheets here."},{"startTime":3125.189,"endTime":3127.16,"body":"And that's everything"},{"startTime":3125.189,"endTime":3127.16,"body":"provided by the provider."},{"startTime":3127.16,"endTime":3130.183,"body":"And this of course is the history where"},{"startTime":3130.183,"endTime":3132.609,"body":"you had operators in operating rooms"},{"startTime":3132.609,"endTime":3134.773,"body":"and they had to do everything for you."},{"startTime":3137.47,"endTime":3142.01,"body":"This is called"},{"startTime":3137.47,"endTime":3142.01,"body":"infrastructure of a service."},{"startTime":3142.01,"endTime":3145.579,"body":"And that's where you have"},{"startTime":3142.01,"endTime":3145.579,"body":"virtual servers in the cloud."},{"startTime":3145.579,"endTime":3147.2,"body":"And just for completeness,"},{"startTime":3147.2,"endTime":3149.07,"body":"I've got a platform of service."},{"startTime":3149.07,"endTime":3151.16,"body":"So that's an example of things like AWS,"},{"startTime":3151.16,"endTime":3153.44,"body":"Amazon Web Services or Azure."},{"startTime":3153.44,"endTime":3157.44,"body":"So those are services that"},{"startTime":3153.44,"endTime":3157.44,"body":"you can use and integrate"},{"startTime":3157.44,"endTime":3158.95,"body":"into your own applications."},{"startTime":3158.95,"endTime":3160.413,"body":"So for example,"},{"startTime":3162.72,"endTime":3163.74,"body":"I hope I'm getting right here,"},{"startTime":3163.74,"endTime":3168.1,"body":"but I'm sure there is"},{"startTime":3163.74,"endTime":3168.1,"body":"a Azure face detector."},{"startTime":3168.1,"endTime":3170.44,"body":"So you don't need to write"},{"startTime":3168.1,"endTime":3170.44,"body":"your own face detector."},{"startTime":3170.44,"endTime":3172.72,"body":"You can just subscribe to Microsoft Azure"},{"startTime":3172.72,"endTime":3176.79,"body":"and use their face detection"},{"startTime":3172.72,"endTime":3176.79,"body":"service in your own software."},{"startTime":3176.79,"endTime":3178.78,"body":"Looks like you've got a"},{"startTime":3176.79,"endTime":3178.78,"body":"library on your computer"},{"startTime":3178.78,"endTime":3179.998,"body":"that does face detection."},{"startTime":3179.998,"endTime":3181.25,"body":"And of course the advantage"},{"startTime":3181.25,"endTime":3182.78,"body":"of that is you can have"},{"startTime":3181.25,"endTime":3182.78,"body":"this enormous library,"},{"startTime":3182.78,"endTime":3186.13,"body":"which you can access your leisure, right?"},{"startTime":3186.13,"endTime":3189.32,"body":"IAS is an interesting"},{"startTime":3186.13,"endTime":3189.32,"body":"one because when we look"},{"startTime":3189.32,"endTime":3192.18,"body":"at the way IAS is deployed,"},{"startTime":3192.18,"endTime":3195.74,"body":"instead of having this diagram over here,"},{"startTime":3195.74,"endTime":3200.25,"body":"which is what your machine"},{"startTime":3195.74,"endTime":3200.25,"body":"might look like in front of you,"},{"startTime":3200.25,"endTime":3203.37,"body":"what you've got in the"},{"startTime":3200.25,"endTime":3203.37,"body":"service center is a block"},{"startTime":3203.37,"endTime":3208.37,"body":"of hardware and multiple"},{"startTime":3203.37,"endTime":3208.37,"body":"virtual machines running here."},{"startTime":3208.47,"endTime":3210.78,"body":"I'd just like a point for remembering"},{"startTime":3210.78,"endTime":3215.763,"body":"to color the kernel boxes in mustard,"},{"startTime":3217.34,"endTime":3219.4,"body":"just a little Cluedo joke there,"},{"startTime":3219.4,"endTime":3223.06,"body":"but each one of these"},{"startTime":3219.4,"endTime":3223.06,"body":"is a virtual machine."},{"startTime":3223.06,"endTime":3224.47,"body":"And this thing here,"},{"startTime":3224.47,"endTime":3227.28,"body":"the virtual machine manager is"},{"startTime":3227.28,"endTime":3230.693,"body":"an operating system of operating systems."},{"startTime":3231.904,"endTime":3233.75,"body":"It's a sometimes called hypervisor,"},{"startTime":3233.75,"endTime":3238.75,"body":"and it in itself might"},{"startTime":3233.75,"endTime":3238.75,"body":"be an operating system,"},{"startTime":3239.49,"endTime":3242.29,"body":"especially configured to run processes"},{"startTime":3242.29,"endTime":3244.74,"body":"that are themselves operating systems."},{"startTime":3244.74,"endTime":3248.08,"body":"The usual choice is Unix again,"},{"startTime":3248.08,"endTime":3249.868,"body":"or Linux to be precise."},{"startTime":3249.868,"endTime":3251.703,"body":"But there are others."},{"startTime":3254.572,"endTime":3258.46,"body":"I want to end by looking"},{"startTime":3254.572,"endTime":3258.46,"body":"at this market share graph,"},{"startTime":3258.46,"endTime":3260.45,"body":"which looks ever so complicated"},{"startTime":3260.45,"endTime":3263.54,"body":"and down here are in very"},{"startTime":3260.45,"endTime":3263.54,"body":"small font are gazillions"},{"startTime":3263.54,"endTime":3268.54,"body":"of bizarre operating systems"},{"startTime":3263.54,"endTime":3268.54,"body":"that no longer exist,"},{"startTime":3268.892,"endTime":3270.91,"body":"but let's look at it."},{"startTime":3270.91,"endTime":3273.18,"body":"And I should point out,"},{"startTime":3270.91,"endTime":3273.18,"body":"this is not all computers."},{"startTime":3273.18,"endTime":3277.44,"body":"This is just personal devices."},{"startTime":3277.44,"endTime":3279.84,"body":"So I'm ignoring servers."},{"startTime":3279.84,"endTime":3284.63,"body":"And so on servers are"},{"startTime":3279.84,"endTime":3284.63,"body":"dominated by Linux really."},{"startTime":3284.63,"endTime":3287.07,"body":"And various varieties of Unix."},{"startTime":3287.07,"endTime":3289.57,"body":"Let's look at today, right,"},{"startTime":3289.57,"endTime":3292.14,"body":"we've really got two things"},{"startTime":3289.57,"endTime":3292.14,"body":"going on, haven't we,"},{"startTime":3292.14,"endTime":3294.16,"body":"we've got this green lump here."},{"startTime":3294.16,"endTime":3296.44,"body":"That's windows and that's based,"},{"startTime":3296.44,"endTime":3298.12,"body":"Windows as we know today"},{"startTime":3298.12,"endTime":3301.4,"body":"is nothing to do with DOS and old Windows."},{"startTime":3301.4,"endTime":3303.8,"body":"It's to do with an operating"},{"startTime":3301.4,"endTime":3303.8,"body":"session called OS2,"},{"startTime":3304.9,"endTime":3306.33,"body":"which was written some time ago."},{"startTime":3306.33,"endTime":3307.95,"body":"And over here,"},{"startTime":3307.95,"endTime":3312.82,"body":"we've got varieties of"},{"startTime":3307.95,"endTime":3312.82,"body":"Linux and this and Unix,"},{"startTime":3312.82,"endTime":3316.222,"body":"this lump here is Android."},{"startTime":3316.222,"endTime":3321.222,"body":"So Linux has gone from this"},{"startTime":3316.222,"endTime":3321.222,"body":"incredibly minor share of life"},{"startTime":3321.27,"endTime":3323.59,"body":"to this incredibly huge share"},{"startTime":3323.59,"endTime":3328.59,"body":"of the operating system and that's Linux."},{"startTime":3328.78,"endTime":3330.4,"body":"This is macOS."},{"startTime":3330.4,"endTime":3334.04,"body":"I think macOS is an interesting project"},{"startTime":3334.04,"endTime":3337.58,"body":"is based on a micro-kernel"},{"startTime":3334.04,"endTime":3337.58,"body":"actually called Mac,"},{"startTime":3337.58,"endTime":3339.35,"body":"which was a version of Unix,"},{"startTime":3339.35,"endTime":3342.07,"body":"especially rewritten,"},{"startTime":3339.35,"endTime":3342.07,"body":"actually it's a hybrid."},{"startTime":3342.07,"endTime":3343.71,"body":"It has half of it's a micro-kernel"},{"startTime":3343.71,"endTime":3345.87,"body":"half of it's a monolithic kernel,"},{"startTime":3345.87,"endTime":3347.56,"body":"very interesting system."},{"startTime":3347.56,"endTime":3351.94,"body":"And then this is iOS, which"},{"startTime":3347.56,"endTime":3351.94,"body":"is the operating system runs"},{"startTime":3351.94,"endTime":3354.56,"body":"on your mobile phone, a version"},{"startTime":3351.94,"endTime":3354.56,"body":"that runs on your watch,"},{"startTime":3354.56,"endTime":3355.7,"body":"is all Unix,"},{"startTime":3355.7,"endTime":3358.35,"body":"and down here, we've got Windows."},{"startTime":3358.35,"endTime":3362.64,"body":"So from this sort of many"},{"startTime":3358.35,"endTime":3362.64,"body":"colored spectrum over here,"},{"startTime":3362.64,"endTime":3366.03,"body":"we've gone to incredible homogeneity."},{"startTime":3366.03,"endTime":3367.59,"body":"I'm not sure I have a good explanation"},{"startTime":3367.59,"endTime":3371.65,"body":"for the homogeneity and I"},{"startTime":3367.59,"endTime":3371.65,"body":"suspect it's highly commercial,"},{"startTime":3371.65,"endTime":3373.35,"body":"but I think it's quite interesting"},{"startTime":3374.771,"endTime":3377.31,"body":"that when you track"},{"startTime":3374.771,"endTime":3377.31,"body":"back these things here,"},{"startTime":3377.31,"endTime":3380.74,"body":"the winners are probably"},{"startTime":3377.31,"endTime":3380.74,"body":"the creation of a tiny,"},{"startTime":3380.74,"endTime":3385.36,"body":"tiny handful of people of"},{"startTime":3380.74,"endTime":3385.36,"body":"whom I have talked about."},{"startTime":3385.36,"endTime":3387.163,"body":"Just two of course."},{"startTime":3388.41,"endTime":3389.69,"body":"Ladies and gentlemen,"},{"startTime":3389.69,"endTime":3391.12,"body":"that is the end of this lecture,"},{"startTime":3391.12,"endTime":3393.64,"body":"it's also the end of the series for me."},{"startTime":3393.64,"endTime":3395.71,"body":"So thank you very much for having me."},{"startTime":3395.71,"endTime":3399.06,"body":"I should give a shout out to my successor,"},{"startTime":3399.06,"endTime":3402.166,"body":"who is Professor Victoria Banes,"},{"startTime":3402.166,"endTime":3404.85,"body":"who I think will give an"},{"startTime":3402.166,"endTime":3404.85,"body":"excellent series of lectures."},{"startTime":3404.85,"endTime":3408.65,"body":"And in so many ways will"},{"startTime":3404.85,"endTime":3408.65,"body":"be so much better than me."},{"startTime":3408.65,"endTime":3409.848,"body":"Thank you."},{"startTime":3409.848,"endTime":3412.848,"body":"(audience applauds)"},{"startTime":3415.884,"endTime":3417.67,"body":"- Professor Harvey, thank you very much."},{"startTime":3417.67,"endTime":3420.5,"body":"We have just a tiny bit of"},{"startTime":3417.67,"endTime":3420.5,"body":"time for some questions."},{"startTime":3420.5,"endTime":3422.99,"body":"I've got a couple the online audience,"},{"startTime":3422.99,"endTime":3424.85,"body":"and then I'll ask the in person audience"},{"startTime":3424.85,"endTime":3426.773,"body":"if there are any questions from you."},{"startTime":3428.05,"endTime":3431.86,"body":"Can you explain what"},{"startTime":3428.05,"endTime":3431.86,"body":"exactly is a kernel panic?"},{"startTime":3431.86,"endTime":3432.77,"body":"- Oh, kernel panic."},{"startTime":3432.77,"endTime":3433.603,"body":"Yeah."},{"startTime":3436.93,"endTime":3437.92,"body":"So the answer is no,"},{"startTime":3437.92,"endTime":3439.41,"body":"I can't exactly explain it,"},{"startTime":3439.41,"endTime":3440.243,"body":"but,"},{"startTime":3443.297,"endTime":3444.9,"body":"there are some things that you never want"},{"startTime":3444.9,"endTime":3446.68,"body":"to see in your life, right."},{"startTime":3446.68,"endTime":3448.08,"body":"You know, there are sort of,"},{"startTime":3451.13,"endTime":3453.18,"body":"I'm applying CPR is one of the,"},{"startTime":3453.18,"endTime":3456.12,"body":"you don't want to hear that"},{"startTime":3453.18,"endTime":3456.12,"body":"if somebody's saying that,"},{"startTime":3456.12,"endTime":3458.7,"body":"it's trouble, and kernel"},{"startTime":3456.12,"endTime":3458.7,"body":"panic is when something"},{"startTime":3458.7,"endTime":3461.07,"body":"has badly has gone wrong in the kernel."},{"startTime":3461.07,"endTime":3463.31,"body":"And it can't think what to do other than"},{"startTime":3463.31,"endTime":3466.16,"body":"to print on your terminal, kernel panic."},{"startTime":3466.16,"endTime":3468.45,"body":"And it's going to shut down in as best"},{"startTime":3468.45,"endTime":3470.87,"body":"and orderly way as it can."},{"startTime":3470.87,"endTime":3472.25,"body":"And in the old days,"},{"startTime":3472.25,"endTime":3475.81,"body":"that usually meant the"},{"startTime":3472.25,"endTime":3475.81,"body":"end of your hard disc."},{"startTime":3475.81,"endTime":3477.74,"body":"And the reason it meant"},{"startTime":3475.81,"endTime":3477.74,"body":"the end of your hard disc"},{"startTime":3477.74,"endTime":3479.66,"body":"was 'cause your kernel was controlling"},{"startTime":3479.66,"endTime":3482.58,"body":"all that memory management"},{"startTime":3479.66,"endTime":3482.58,"body":"that I was talking about."},{"startTime":3482.58,"endTime":3484.58,"body":"So you've got all these"},{"startTime":3482.58,"endTime":3484.58,"body":"pages stacked up everywhere,"},{"startTime":3484.58,"endTime":3487.37,"body":"and they can't do it anymore, end."},{"startTime":3487.37,"endTime":3490.91,"body":"And your disc is now a"},{"startTime":3487.37,"endTime":3490.91,"body":"scramble and the stuff"},{"startTime":3490.91,"endTime":3493.89,"body":"that was in your memory may"},{"startTime":3490.91,"endTime":3493.89,"body":"or may not be on your disc."},{"startTime":3493.89,"endTime":3495.68,"body":"And so there was little you could do,"},{"startTime":3495.68,"endTime":3497.86,"body":"but turn off usually your Linux system."},{"startTime":3497.86,"endTime":3499.21,"body":"'Cause it was experimental,"},{"startTime":3500.36,"endTime":3503.42,"body":"cautiously you would turn it"},{"startTime":3500.36,"endTime":3503.42,"body":"off and on again was the only,"},{"startTime":3503.42,"endTime":3506.07,"body":"but usually it wouldn't turn on again."},{"startTime":3506.07,"endTime":3508.06,"body":"- So that was a good question."},{"startTime":3508.06,"endTime":3511.07,"body":"And are Unix and Linux both written in C,"},{"startTime":3511.07,"endTime":3513.81,"body":"could they be rewritten"},{"startTime":3511.07,"endTime":3513.81,"body":"in another language?"},{"startTime":3513.81,"endTime":3515.1,"body":"- Yes they could."},{"startTime":3515.1,"endTime":3516.913,"body":"So they are both written in C."},{"startTime":3518.757,"endTime":3521.38,"body":"There has been a long running debate about"},{"startTime":3521.38,"endTime":3525.16,"body":"how you should write kernels."},{"startTime":3525.16,"endTime":3527.23,"body":"And, well actually we talked"},{"startTime":3527.23,"endTime":3530.11,"body":"about Per Brig Hansen,"},{"startTime":3527.23,"endTime":3530.11,"body":"and he was an advocate"},{"startTime":3530.11,"endTime":3533.85,"body":"I think of writing as much"},{"startTime":3530.11,"endTime":3533.85,"body":"of a kernel in high level"},{"startTime":3533.85,"endTime":3536.953,"body":"language as possible, as indeed"},{"startTime":3533.85,"endTime":3536.953,"body":"we're Richie and Thompson."},{"startTime":3538.65,"endTime":3540.89,"body":"The truth of the matter is"},{"startTime":3538.65,"endTime":3540.89,"body":"you usually have to write"},{"startTime":3540.89,"endTime":3542.28,"body":"a little bit of your kernel"},{"startTime":3542.28,"endTime":3544.62,"body":"in machine code to get efficiency."},{"startTime":3544.62,"endTime":3547.77,"body":"So there is no reason in"},{"startTime":3544.62,"endTime":3547.77,"body":"principle why you cannot write"},{"startTime":3547.77,"endTime":3549.69,"body":"operating systems in a high level language"},{"startTime":3549.69,"endTime":3552.8,"body":"and many people have, but in practice,"},{"startTime":3552.8,"endTime":3556.79,"body":"usually in line as it's"},{"startTime":3552.8,"endTime":3556.79,"body":"called a little bit of it,"},{"startTime":3556.79,"endTime":3560.38,"body":"just to get the speed,"},{"startTime":3556.79,"endTime":3560.38,"body":"operating systems are terribly."},{"startTime":3560.38,"endTime":3561.84,"body":"People get very cross"},{"startTime":3561.84,"endTime":3564.52,"body":"if the operating system"},{"startTime":3561.84,"endTime":3564.52,"body":"is slow doing things,"},{"startTime":3564.52,"endTime":3565.92,"body":"I still get cross myself."},{"startTime":3565.92,"endTime":3567.83,"body":"It's something very disturbing about"},{"startTime":3567.83,"endTime":3570.08,"body":"a very powerful computer"},{"startTime":3567.83,"endTime":3570.08,"body":"sitting there going,"},{"startTime":3572.91,"endTime":3575.16,"body":"it's not loved by users."},{"startTime":3575.16,"endTime":3577.48,"body":"- We are at the end of Professor Harvey's"},{"startTime":3577.48,"endTime":3580.39,"body":"last series and our provost was sadly,"},{"startTime":3580.39,"endTime":3581.99,"body":"he was not able to be here tonight,"},{"startTime":3581.99,"endTime":3584.62,"body":"but he would like to say a few words."},{"startTime":3584.62,"endTime":3586.85,"body":"We're just going to put him on the screen"},{"startTime":3587.686,"endTime":3589.663,"body":"to talk to Professor Harvey."},{"startTime":3589.663,"endTime":3590.496,"body":"- Oh thanks."},{"startTime":3590.496,"endTime":3592.41,"body":"- Well, ladies and gentlemen, sadly,"},{"startTime":3592.41,"endTime":3596.1,"body":"this is Richard Harvey's final lecture"},{"startTime":3597.381,"endTime":3601.35,"body":"as the Worshipful Company of"},{"startTime":3597.381,"endTime":3601.35,"body":"Information Technologists,"},{"startTime":3601.35,"endTime":3604.75,"body":"professor of information technology."},{"startTime":3604.75,"endTime":3605.9,"body":"And because of this,"},{"startTime":3605.9,"endTime":3610.28,"body":"I just wanted Richard to"},{"startTime":3605.9,"endTime":3610.28,"body":"say a few words of thanks."},{"startTime":3610.28,"endTime":3614.03,"body":"In addition to his work for Gresham,"},{"startTime":3614.03,"endTime":3618.048,"body":"Richard is professor at the"},{"startTime":3614.03,"endTime":3618.048,"body":"School of Computing Sciences"},{"startTime":3618.048,"endTime":3621.1,"body":"at the University of East Anglia,"},{"startTime":3621.1,"endTime":3625.33,"body":"and before joining UEA in 1993,"},{"startTime":3625.33,"endTime":3628.96,"body":"Professor Harvey was a mathematician first"},{"startTime":3628.96,"endTime":3630.9,"body":"at Plessy Naval Systems"},{"startTime":3630.9,"endTime":3634.27,"body":"and then Marconi Underwater Systems."},{"startTime":3634.27,"endTime":3635.57,"body":"And throughout his career,"},{"startTime":3635.57,"endTime":3638.99,"body":"he has acted as a consultant"},{"startTime":3635.57,"endTime":3638.99,"body":"for a number of international"},{"startTime":3638.99,"endTime":3643.99,"body":"companies and as executive"},{"startTime":3638.99,"endTime":3643.99,"body":"and non-executive directors,"},{"startTime":3644.38,"endTime":3646.91,"body":"his research now focuses"},{"startTime":3646.91,"endTime":3650.99,"body":"on artificial intelligence"},{"startTime":3646.91,"endTime":3650.99,"body":"and computer vision."},{"startTime":3650.99,"endTime":3653.1,"body":"And recently he's been working"},{"startTime":3653.1,"endTime":3656.99,"body":"on the field of artificial lip reading,"},{"startTime":3656.99,"endTime":3661.72,"body":"which fascinates him because"},{"startTime":3656.99,"endTime":3661.72,"body":"of the scientific challenge."},{"startTime":3661.72,"endTime":3665.23,"body":"And it allows him to debunk false claims"},{"startTime":3665.23,"endTime":3667.367,"body":"and misunderstandings."},{"startTime":3667.367,"endTime":3671.81,"body":"Well Richard, your 10"},{"startTime":3667.367,"endTime":3671.81,"body":"years Gresham professor"},{"startTime":3671.81,"endTime":3673.333,"body":"began in 2018,"},{"startTime":3674.48,"endTime":3679.48,"body":"and your first series was called"},{"startTime":3674.48,"endTime":3679.48,"body":"The Science of Information."},{"startTime":3679.97,"endTime":3683.93,"body":"And Professor Harvey explored"},{"startTime":3679.97,"endTime":3683.93,"body":"some of the modern advances"},{"startTime":3683.93,"endTime":3686.62,"body":"in computer technology from speech"},{"startTime":3686.62,"endTime":3689.58,"body":"and text processing to machine learning"},{"startTime":3689.58,"endTime":3692.54,"body":"and creative computers."},{"startTime":3692.54,"endTime":3695.05,"body":"In his second series,"},{"startTime":3695.05,"endTime":3698.98,"body":"which was entitled The Digital State,"},{"startTime":3698.98,"endTime":3702.04,"body":"he examined the technological developments"},{"startTime":3702.04,"endTime":3705.04,"body":"in a variety of services provided"},{"startTime":3705.04,"endTime":3709.04,"body":"to the public such as digital healthcare,"},{"startTime":3709.04,"endTime":3714.04,"body":"the digital economy, cashless"},{"startTime":3709.04,"endTime":3714.04,"body":"society, digital education,"},{"startTime":3714.31,"endTime":3718.81,"body":"and asked what could"},{"startTime":3714.31,"endTime":3718.81,"body":"these mean for the future?"},{"startTime":3718.81,"endTime":3722.582,"body":"His series in 2020 was called Great Ideas"},{"startTime":3722.582,"endTime":3726.65,"body":"From Computer Science and"},{"startTime":3722.582,"endTime":3726.65,"body":"this included lectures"},{"startTime":3726.65,"endTime":3729.3,"body":"on the history of"},{"startTime":3726.65,"endTime":3729.3,"body":"computers and the internet"},{"startTime":3729.3,"endTime":3733.08,"body":"and an introduction to"},{"startTime":3729.3,"endTime":3733.08,"body":"algorithms and programming."},{"startTime":3733.08,"endTime":3735.43,"body":"The series looked at how"},{"startTime":3733.08,"endTime":3735.43,"body":"these concepts have gone on"},{"startTime":3735.43,"endTime":3740.43,"body":"to influence and indeed pervade"},{"startTime":3735.43,"endTime":3740.43,"body":"our lives and our thinking."},{"startTime":3740.91,"endTime":3742.89,"body":"And Richard, your last series,"},{"startTime":3742.89,"endTime":3746.24,"body":"which you've wound up so"},{"startTime":3742.89,"endTime":3746.24,"body":"brilliantly this evening"},{"startTime":3746.24,"endTime":3751.24,"body":"was called Six Tech Inventions"},{"startTime":3746.24,"endTime":3751.24,"body":"That Changed the World."},{"startTime":3751.43,"endTime":3754.02,"body":"And this gave us a wonderful rundown"},{"startTime":3754.02,"endTime":3756.82,"body":"of some of the most"},{"startTime":3754.02,"endTime":3756.82,"body":"significant inventions,"},{"startTime":3756.82,"endTime":3760.02,"body":"such as cellular telephones, GPS,"},{"startTime":3760.02,"endTime":3762.73,"body":"and various operating systems."},{"startTime":3762.73,"endTime":3767.43,"body":"Richard has shown us the computer"},{"startTime":3762.73,"endTime":3767.43,"body":"science principles behind"},{"startTime":3767.43,"endTime":3769.1,"body":"the everyday technologies"},{"startTime":3769.1,"endTime":3771.743,"body":"that we've all become so dependent on."},{"startTime":3773.24,"endTime":3776.15,"body":"Through your time at Gresham College,"},{"startTime":3776.15,"endTime":3779.03,"body":"Richard, you've brought"},{"startTime":3776.15,"endTime":3779.03,"body":"your considerable knowledge"},{"startTime":3779.03,"endTime":3782.63,"body":"and expertise to a wider audience,"},{"startTime":3782.63,"endTime":3787.63,"body":"and we are extremely grateful"},{"startTime":3782.63,"endTime":3787.63,"body":"to you for your work."},{"startTime":3787.91,"endTime":3790.07,"body":"You've helped us with our new website"},{"startTime":3790.07,"endTime":3793.28,"body":"and other technical"},{"startTime":3790.07,"endTime":3793.28,"body":"aspects of our provision."},{"startTime":3793.28,"endTime":3795.67,"body":"And we really hope that in the future"},{"startTime":3795.67,"endTime":3799.74,"body":"we can welcome you back as a"},{"startTime":3795.67,"endTime":3799.74,"body":"guest lecturer to the college."},{"startTime":3799.74,"endTime":3801.89,"body":"So thank you very much,"},{"startTime":3801.89,"endTime":3803.601,"body":"Professor Harvey, for all you've done over"},{"startTime":3803.601,"endTime":3808.017,"body":"the last four years as"},{"startTime":3803.601,"endTime":3808.017,"body":"a Gresham professor."},{"startTime":3808.017,"endTime":3811.017,"body":"(audience applauds)"}]}