Values of β may give rise to dom!
Allen, Mark
In what may be the strangest error message of all time, we are warned that values of beta may give rise to dom! This bizarre error message made it into early UNIX releases. Why? What caused it? What is β? How can we stop the insidious rise of dom?! UNIX publicly debuted in 1974 in an article in the Communications of the ACM, and it has thrived and prospered ever since. In this talk, we will take a whirlwind tour through the error handling subsystems of an early UNIX kernel and its utilities, with an eye toward what those techniques tell us about system design
 Music Applause Alright, awesome. So my name is Mark Allen. I have computer difficulties. And I'm going to play a part of Grumpy Old Man for you today. The thing I'd like to talk to you about today is values of beta may give rise to DOM. And this is probably one of the most obscure and strange air messages that's ever made it into an operating system. We're going to talk about the history of that operating system and also why this air message exists. And a little bit about the aesthetics and ethics of Unix. Alright, so let's get going. Hopefully this will work. So this is what it all started with. I mean, not literally this slide, but the actual display of what's on the slide. This is a... I know you can't see it on the live stream, but that's cool. Anyway, what this is showing is a game window, a game written in 1969 that was played on a GE635. GE635 was this really old computer that was massively expensive in the day. And it was used for development of this operating system called Multix. We're going to talk more about what Multix is in a little bit, but for right now, just understand that this game is a game that was written by this person whose name is Ken Thompson. Ken Thompson won the ACM Touring Award in 1983 along with this guy, who's Dennis Richie. And together these men collaborated on an operating system called Unix, which you may have heard about. Unix actually originated in 1969 after GE decided... I'm sorry. After Multix was pulled out of by Bell Labs. Both Dennis Richie and Ken Thompson worked at Bell Labs. And they were involved with the Multix projects. Ken Thompson went to the University of California, Berkeley in the mid-60s, and Dennis Richie went to Harvard in the mid-60s. And this was a project at MIT and also a collaboration with General Electric. And that's why they were using General Electric computers. By the way, did you know General Electric manufactured computers in the 60s? They did. So they worked on this project called Multix. And Multix was supposed to be the super advanced operating system. And the reason the phone company was interested in developing it was because it was going to be massively... a multi-user, massively concurrent. And when I say massive, I mean massive for the day. We're talking about, you know, users of like 25 concurrent sessions or something like that. But the point is, is that they were trying to build an operating system that could scale up to the needs of the phone switching network, which at the time was mostly mechanical. Digitization was something that had been on the radar for a long time. And they finally felt like, you know, with transistors and multi-programming and some other disciplines that came out of the late 60s, that they'd have a chance of digitizing the phone network and making it completely electronic. That part succeeded, but Multix did not. So Bell Labs pulled out of Multix because it was failing pretty badly. It wasn't achieving the kind of progress that Bell Labs felt like it ought to. And so these two gentlemen, Dennis Ritchie and Ken Thompson, had to go find a different computer to play their game on. And they found this one. This is a PDP7. How many people in the audience have ever used like a Timex Sinclair or a TI994A? Okay, just old people. That's fine. It's cool. How many of you have used an HP graphing calculator or a TI graphing calculator? Awesome. So you have used a computer that is more powerful than this one. So this computer in its day cost about $25,000 and it had 4K of main memory. But the reason that Ken Thompson liked it was because no one else was using it and it also had a tube display, which means that they could show the graphics that I showed you on the very first slide. So he could write his game. Now, the game of space travel was really interesting. What he did was model the planet's gravity and you had to pilot a spaceship and land on the planet. And all the planets in the solar system that you could land on were modeled in the game. So you could pretend to land on things like Pluto or you could go to Venus or you could go to like Phobos or Deimos. Those are the Martian moons. Anyway, he, since there was only 4K of main memory, he had to write all this in assembly language. And that was kind of a bummer. And so he said, you know, hey, they're coming out with digital equipments coming out with this new computer. It's this one. It's a PDP 11. And it actually will take up to 256K of main memory. So again, if you've used a graphing calculator, you've used a computer that's better than this. When they got a PDP 11, it cost $100,000, which is a lot of money. And in today's money, just so you know, that's about a half a million dollars. Now, GE had, I'm sorry, Bell Labs had just pulled out of Multix and they had no interest in spending half a million dollars on writing a new operating system and buying a computer for Ken Thompson to play games with. So they needed a lever. They needed some way to get that money from the management. And their lever was that they had written this really interesting application called runoff. Now runoff you may be familiar with in its current incarnation. It's actually a package that still exists on your OS X systems today. It's probably packaged as grof, G-R-O-F-F. That's the GNU runoff. It actually can read, if you want to blow your mind sometime, I'm going to show you the historical Unix Archive GitHub repo. You can go to that repo and pretty much use grof on any trough formatted document that was published 45 years ago. And it will still format correctly on your terminal today. So runoff was this really old program that was written originally for CTSS, which is another old time sharing system I don't have time to go into today. It was ported to Unix by Robert Morris, who was also at Bell Labs, is a pretty famous computer scientist. Google him sometime if you're super bored. And then later they got a photo typesetter. And so this guy named Joe Asana wrote or translated Roff into Assembler so that he could write, do photo typesetting with this macro package, this language. And then after Asana actually passed away in 1977, Brian Kernigan rewrote Roff in C and added EQN and table and pick and some other things that you might not be familiar with unless you do a lot of typesetting typesettings, but it's pretty interesting and pretty fascinating. I wanted to mention here a super quick aside. One really interesting thing about EQN is it's a package for typesetting equations and scientific literature. And it was co-written by Lorinda Cherry, who is a recently well-known computer scientist and was at Bell Labs at the time. She and Brian Kernigan worked together to build this package and there's a really fascinating paper about it that you can still read called typesetting papers for mathematical equations. Look it up, you can Google it, it's very cool. So they had users now. So the idea was we're going to use Unix as a platform to typeset patent applications. And the management at Bell Labs was more than happy to give them $100,000 to do that. So they got their PDP 11. All right, so now it's time to tell you a little bit more about this strange air message. Sorry for the long discursion. We need it all the background. Promise me. Okay, so we're at the very top of this chart. You can see over here, it might be a little small if you're in the back, but basically there's V1, which is this really, really ancient version of Unix, which still had Roff in it. It was all written in assembly. Around version 4 in 1973, it was all rewritten in C and that brings us to version 6, which is kind of where the arrow is trying to point at. Version 6 is also written in C. If you've used Unix before, you would feel very comfortable on a system, a system, even though it's 45 years old. So we finally get two values of beta and may give rise to DOM. All right, so first of all, where does this come from? Well, the story is, and again, this is in the references at the end of the slide deck, the story is that one day Ken Thompson came into the lab where they worked. And there was all this weird stuff that was on the photo type setter. And one of the things that they had printed out was this, values of beta may give rise to DOM. Well, why am I saying beta instead of beta? Because, you know, I'm not British. This last I checked anyway. And the interesting story was is that they worked with another person in the lab whose name is Doug McElroy, and he's responsible for putting the pipe into Unix. So if you ever use pipes, that's where that came from. He had this, he was experimenting with computer voice. So he had this voice synthesizer that sounded like war games. How many of you have seen war games? Yeah, so you know that in that movie, the computer talks, and it, you know, talks like this. It has this really mechanized voice. Anyway, they thought that this phrase was really funny. It obviously came from some kind of patent application or something. It's a half a phrase, and the exclamation point came from this editor that they were using called Ed. Now Ed is a line-oriented editor, and it's sort of like the great, great, great, great grandparents of VI and Vim. So if you only had a typewriter to enter stuff into a computer, you would have used a line-oriented text editor like Ed. Anyway, when Ed had a syntax error, he would put this exclamation point at the end of your line. And that's where the exclamation point came from. But anyway, they put the sentence into the computer synthesizer, and it said, Values of beta may give rise to Dom. And they thought that was the most hilarious thing that they'd ever seen or heard. So it went into version six. And this is where it is. It's actually in the Move program. If you try to move a file that starts with dot, and dot, remember, is the sort of parent of a directory, if you try to move dot into some other name, it'll actually tell you that Values of beta will give rise to Dom. But my other favorite error message from this era is this one. It's like, what? So if you tell Move to move a file that it does itself, it'll just output some question marks and go, what? They didn't have Unicode then, so they couldn't do the little gesture guy. But there's some other things that in system six are a little bit weird. This is probably the most famous comment of all time. This is a part of the Unix kernel from system six. So if you don't want to read a really long textbook, you can read the system six kernel. It's about 40k. It's about 10,000 lines of code. It sounds like a lot, but really compared to Linux, which is about 1.2 million lines of code, it's not that much. All right, so this came from Lyon's commentary on Unix, which is a very famous text from a long time ago. I was seven years old then, eating cereal and watching Scooby-Doo. But anyway, this comment says, you are not expected to understand this. What? So I mentioned this came from a text called the commentary. So let's see what the commentary says. The comment that begins here is not encouraging. We'll return to this again. Okay, let's see what that says. The question is, if these values stored in UUSave 284 are the same values as URsave in line 281, how do they get to be different? That's a pretty legitimate question. Presumably, that's what you're not meant to understand. So it offers a tip, which is, hey, you should check out this thing called xSwap. Well, more about xSwap at the end of the... I'm not going to get to it, so you're going to have to download the slides if you want to learn about it. Anyway, the ethos of Unix. Do one thing. Do it well. Tool composition. Remember I mentioned pipes before. Pipes are very important to do tool composition. Text is a universal interface, or it was, at least in the 70s. It's not anymore. Now we have, and also poo. Not that those things aren't useful. They definitely are. And then finally, documentation. One thing that was very unique about Unix in its day, and still remains unique to this day, is the fact that it has a section in its man page that's called bugs. Do you know of any other commercial software packages that have a giant section that's called bugs? Yeah, so they're really open and transparent, which brings me to the aesthetics of Unix, which are simplicity, elegance, and openness. And these are the things that attracted users and programmers to use Unix in their projects. And one of the reasons that Unix was really popular was this one. This is a quote from Dennis Ritchie's paper describing the Unix system in communications at the ACM. He wrote, if designers of a system are forced to use that system, they become aware of its functional and superficial deficiencies, and are strongly motivated to correct them before it's too late. Isn't that the case? Since all source programs were available and easily modified, we were willing to revise and rewrite this system and its software when new ideas were invented, discovered, or suggested. And I think that's something that's really powerful, and that's the reason why Unix has become such a success in the 40 years between when it was created and right now. Thanks.
 Music  Applause  Alright, awesome. So my name is Mark Allen. I have computer difficulties.  And I'm going to play a part of Grumpy Old Man for you today.  The thing I'd like to talk to you about today is values of beta may give rise to DOM.  And this is probably one of the most obscure and strange air messages that's ever made it into an operating system.  We're going to talk about the history of that operating system and also why this air message exists.  And a little bit about the aesthetics and ethics of Unix. Alright, so let's get going.  Hopefully this will work. So this is what it all started with. I mean, not literally this slide,  but the actual display of what's on the slide. This is a...  I know you can't see it on the live stream, but that's cool. Anyway, what this is showing is a game window,  a game written in 1969 that was played on a GE635.  GE635 was this really old computer that was massively expensive in the day.  And it was used for development of this operating system called Multix.  We're going to talk more about what Multix is in a little bit, but for right now,  just understand that this game is a game that was written by this person whose name is Ken Thompson.  Ken Thompson won the ACM Touring Award in 1983 along with this guy, who's Dennis Richie.  And together these men collaborated on an operating system called Unix, which you may have heard about.  Unix actually originated in 1969 after GE decided... I'm sorry.  After Multix was pulled out of by Bell Labs. Both Dennis Richie and Ken Thompson worked at Bell Labs.  And they were involved with the Multix projects.  Ken Thompson went to the University of California, Berkeley in the mid-60s, and Dennis Richie went to Harvard in the mid-60s.  And this was a project at MIT and also a collaboration with General Electric.  And that's why they were using General Electric computers.  By the way, did you know General Electric manufactured computers in the 60s? They did.  So they worked on this project called Multix.  And Multix was supposed to be the super advanced operating system.  And the reason the phone company was interested in developing it was because it was going to be massively...  a multi-user, massively concurrent.  And when I say massive, I mean massive for the day.  We're talking about, you know, users of like 25 concurrent sessions or something like that.  But the point is, is that they were trying to build an operating system that could scale up to the needs of the phone switching network,  which at the time was mostly mechanical.  Digitization was something that had been on the radar for a long time.  And they finally felt like, you know, with transistors and multi-programming and some other disciplines that came out of the late 60s,  that they'd have a chance of digitizing the phone network and making it completely electronic.  That part succeeded, but Multix did not.  So Bell Labs pulled out of Multix because it was failing pretty badly.  It wasn't achieving the kind of progress that Bell Labs felt like it ought to.  And so these two gentlemen, Dennis Ritchie and Ken Thompson, had to go find a different computer to play their game on.  And they found this one.  This is a PDP7.  How many people in the audience have ever used like a Timex Sinclair or a TI994A?  Okay, just old people.  That's fine. It's cool.  How many of you have used an HP graphing calculator or a TI graphing calculator?  Awesome.  So you have used a computer that is more powerful than this one.  So this computer in its day cost about $25,000 and it had 4K of main memory.  But the reason that Ken Thompson liked it was because no one else was using it and it also had a tube display,  which means that they could show the graphics that I showed you on the very first slide.  So he could write his game.  Now, the game of space travel was really interesting.  What he did was model the planet's gravity and you had to pilot a spaceship and land on the planet.  And all the planets in the solar system that you could land on were modeled in the game.  So you could pretend to land on things like Pluto or you could go to Venus or you could go to like Phobos or Deimos.  Those are the Martian moons.  Anyway, he, since there was only 4K of main memory, he had to write all this in assembly language.  And that was kind of a bummer.  And so he said, you know, hey, they're coming out with digital equipments coming out with this new computer.  It's this one.  It's a PDP 11.  And it actually will take up to 256K of main memory.  So again, if you've used a graphing calculator, you've used a computer that's better than this.  When they got a PDP 11, it cost $100,000, which is a lot of money.  And in today's money, just so you know, that's about a half a million dollars.  Now, GE had, I'm sorry, Bell Labs had just pulled out of Multix and they had no interest in spending half a million dollars on writing a new operating system  and buying a computer for Ken Thompson to play games with.  So they needed a lever.  They needed some way to get that money from the management.  And their lever was that they had written this really interesting application called runoff.  Now runoff you may be familiar with in its current incarnation.  It's actually a package that still exists on your OS X systems today.  It's probably packaged as grof, G-R-O-F-F.  That's the GNU runoff.  It actually can read, if you want to blow your mind sometime, I'm going to show you the historical Unix Archive GitHub repo.  You can go to that repo and pretty much use grof on any trough formatted document that was published 45 years ago.  And it will still format correctly on your terminal today.  So runoff was this really old program that was written originally for CTSS, which is another old time sharing system I don't have time to go into today.  It was ported to Unix by Robert Morris, who was also at Bell Labs, is a pretty famous computer scientist.  Google him sometime if you're super bored.  And then later they got a photo typesetter.  And so this guy named Joe Asana wrote or translated Roff into Assembler so that he could write, do photo typesetting with this macro package, this language.  And then after Asana actually passed away in 1977, Brian Kernigan rewrote Roff in C and added EQN and table and pick and some other things that you might not be familiar with  unless you do a lot of typesetting typesettings, but it's pretty interesting and pretty fascinating.  I wanted to mention here a super quick aside.  One really interesting thing about EQN is it's a package for typesetting equations and scientific literature.  And it was co-written by Lorinda Cherry, who is a recently well-known computer scientist and was at Bell Labs at the time.  She and Brian Kernigan worked together to build this package and there's a really fascinating paper about it that you can still read called typesetting papers for mathematical equations.  Look it up, you can Google it, it's very cool.  So they had users now.  So the idea was we're going to use Unix as a platform to typeset patent applications.  And the management at Bell Labs was more than happy to give them $100,000 to do that.  So they got their PDP 11.  All right, so now it's time to tell you a little bit more about this strange air message.  Sorry for the long discursion. We need it all the background. Promise me.  Okay, so we're at the very top of this chart.  You can see over here, it might be a little small if you're in the back, but basically there's V1, which is this really, really ancient version of Unix, which still had Roff in it.  It was all written in assembly.  Around version 4 in 1973, it was all rewritten in C and that brings us to version 6, which is kind of where the arrow is trying to point at.  Version 6 is also written in C. If you've used Unix before, you would feel very comfortable on a system, a system, even though it's 45 years old.  So we finally get two values of beta and may give rise to DOM.  All right, so first of all, where does this come from?  Well, the story is, and again, this is in the references at the end of the slide deck, the story is that one day Ken Thompson came into the lab where they worked.  And there was all this weird stuff that was on the photo type setter.  And one of the things that they had printed out was this, values of beta may give rise to DOM.  Well, why am I saying beta instead of beta?  Because, you know, I'm not British.  This last I checked anyway.  And the interesting story was is that they worked with another person in the lab whose name is Doug McElroy, and he's responsible for putting the pipe into Unix.  So if you ever use pipes, that's where that came from.  He had this, he was experimenting with computer voice.  So he had this voice synthesizer that sounded like war games.  How many of you have seen war games?  Yeah, so you know that in that movie, the computer talks, and it, you know, talks like this.  It has this really mechanized voice.  Anyway, they thought that this phrase was really funny.  It obviously came from some kind of patent application or something.  It's a half a phrase, and the exclamation point came from this editor that they were using called Ed.  Now Ed is a line-oriented editor, and it's sort of like the great, great, great, great grandparents of VI and Vim.  So if you only had a typewriter to enter stuff into a computer, you would have used a line-oriented text editor like Ed.  Anyway, when Ed had a syntax error, he would put this exclamation point at the end of your line.  And that's where the exclamation point came from.  But anyway, they put the sentence into the computer synthesizer, and it said,  Values of beta may give rise to Dom.  And they thought that was the most hilarious thing that they'd ever seen or heard.  So it went into version six.  And this is where it is.  It's actually in the Move program.  If you try to move a file that starts with dot, and dot, remember, is the sort of parent of a directory,  if you try to move dot into some other name, it'll actually tell you that Values of beta will give rise to Dom.  But my other favorite error message from this era is this one.  It's like, what?  So if you tell Move to move a file that it does itself, it'll just output some question marks and go,  what?  They didn't have Unicode then, so they couldn't do the little gesture guy.  But there's some other things that in system six are a little bit weird.  This is probably the most famous comment of all time.  This is a part of the Unix kernel from system six.  So if you don't want to read a really long textbook, you can read the system six kernel.  It's about 40k.  It's about 10,000 lines of code.  It sounds like a lot, but really compared to Linux, which is about 1.2 million lines of code, it's not that much.  All right, so this came from Lyon's commentary on Unix, which is a very famous text from a long time ago.  I was seven years old then, eating cereal and watching Scooby-Doo.  But anyway, this comment says, you are not expected to understand this.  What?  So I mentioned this came from a text called the commentary.  So let's see what the commentary says.  The comment that begins here is not encouraging.  We'll return to this again.  Okay, let's see what that says.  The question is, if these values stored in UUSave 284 are the same values as URsave in line 281, how do they get to be different?  That's a pretty legitimate question.  Presumably, that's what you're not meant to understand.  So it offers a tip, which is, hey, you should check out this thing called xSwap.  Well, more about xSwap at the end of the...  I'm not going to get to it, so you're going to have to download the slides if you want to learn about it.  Anyway, the ethos of Unix.  Do one thing.  Do it well.  Tool composition.  Remember I mentioned pipes before.  Pipes are very important to do tool composition.  Text is a universal interface, or it was, at least in the 70s.  It's not anymore.  Now we have, and also poo.  Not that those things aren't useful.  They definitely are.  And then finally, documentation.  One thing that was very unique about Unix in its day, and still remains unique to this day, is the fact that it has a section in its man page that's called bugs.  Do you know of any other commercial software packages that have a giant section that's called bugs?  Yeah, so they're really open and transparent, which brings me to the aesthetics of Unix, which are simplicity, elegance, and openness.  And these are the things that attracted users and programmers to use Unix in their projects.  And one of the reasons that Unix was really popular was this one.  This is a quote from Dennis Ritchie's paper describing the Unix system in communications at the ACM.  He wrote, if designers of a system are forced to use that system, they become aware of its functional and superficial deficiencies, and are strongly motivated to correct them before it's too late.  Isn't that the case?  Since all source programs were available and easily modified, we were willing to revise and rewrite this system and its software when new ideas were invented, discovered, or suggested.  And I think that's something that's really powerful, and that's the reason why Unix has become such a success in the 40 years between when it was created and right now.  Thanks.
__Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_0_71.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_72_119.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_120_287.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_288_383.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_384_479.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_480_2231.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_2232_6971.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_6972_7367.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_7368_17159.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_17160_20627.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_20628_20675.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_20676_20783.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_20784_20903.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_20904_21011.png __Con_2016_-__values_of___may_give_rise_to_dom___By_Mark_Allen_FyLnF9U18rY_21012_21058.png
Music Applause Alright, awesome. So my name is Mark Allen. I have computer difficulties. And I'm going to play a part of Grumpy Old Man for you today. The thing I'd like to talk to you about today is values of beta may give rise to DOM. And this is probably one of the most obscure and strange air messages that's ever made it into an operating system. We're going to talk about the history of that operating system and also why this air message exists. And a little bit about the aesthetics and ethics of Unix. Alright, so let's get going. Hopefully this will work. So this is what it all started with. I mean, not literally this slide, but the actual display of what's on the slide. This is a... I know you can't see it on the live stream, but that's cool. Anyway, what this is showing is a game window, a game written in 1969 that was played on a GE635. GE635 was this really old computer that was massively expensive in the day. And it was used for development of this operating system called Multix. We're going to talk more about what Multix is in a little bit, but for right now, just understand that this game is a game that was written by this person whose name is Ken Thompson. Ken Thompson won the ACM Touring Award in 1983 along with this guy, who's Dennis Richie. And together these men collaborated on an operating system called Unix, which you may have heard about. Unix actually originated in 1969 after GE decided... I'm sorry. After Multix was pulled out of by Bell Labs. Both Dennis Richie and Ken Thompson worked at Bell Labs. And they were involved with the Multix projects. Ken Thompson went to the University of California, Berkeley in the mid-60s, and Dennis Richie went to Harvard in the mid-60s. And this was a project at MIT and also a collaboration with General Electric. And that's why they were using General Electric computers. By the way, did you know General Electric manufactured computers in the 60s? They did. So they worked on this project called Multix. And Multix was supposed to be the super advanced operating system. And the reason the phone company was interested in developing it was because it was going to be massively... a multi-user, massively concurrent. And when I say massive, I mean massive for the day. We're talking about, you know, users of like 25 concurrent sessions or something like that. But the point is, is that they were trying to build an operating system that could scale up to the needs of the phone switching network, which at the time was mostly mechanical. Digitization was something that had been on the radar for a long time. And they finally felt like, you know, with transistors and multi-programming and some other disciplines that came out of the late 60s, that they'd have a chance of digitizing the phone network and making it completely electronic. That part succeeded, but Multix did not. So Bell Labs pulled out of Multix because it was failing pretty badly. It wasn't achieving the kind of progress that Bell Labs felt like it ought to. And so these two gentlemen, Dennis Ritchie and Ken Thompson, had to go find a different computer to play their game on. And they found this one. This is a PDP7. How many people in the audience have ever used like a Timex Sinclair or a TI994A? Okay, just old people. That's fine. It's cool. How many of you have used an HP graphing calculator or a TI graphing calculator? Awesome. So you have used a computer that is more powerful than this one. So this computer in its day cost about $25,000 and it had 4K of main memory. But the reason that Ken Thompson liked it was because no one else was using it and it also had a tube display, which means that they could show the graphics that I showed you on the very first slide. So he could write his game. Now, the game of space travel was really interesting. What he did was model the planet's gravity and you had to pilot a spaceship and land on the planet. And all the planets in the solar system that you could land on were modeled in the game. So you could pretend to land on things like Pluto or you could go to Venus or you could go to like Phobos or Deimos. Those are the Martian moons. Anyway, he, since there was only 4K of main memory, he had to write all this in assembly language. And that was kind of a bummer. And so he said, you know, hey, they're coming out with digital equipments coming out with this new computer. It's this one. It's a PDP 11. And it actually will take up to 256K of main memory. So again, if you've used a graphing calculator, you've used a computer that's better than this. When they got a PDP 11, it cost $100,000, which is a lot of money. And in today's money, just so you know, that's about a half a million dollars. Now, GE had, I'm sorry, Bell Labs had just pulled out of Multix and they had no interest in spending half a million dollars on writing a new operating system and buying a computer for Ken Thompson to play games with. So they needed a lever. They needed some way to get that money from the management. And their lever was that they had written this really interesting application called runoff. Now runoff you may be familiar with in its current incarnation. It's actually a package that still exists on your OS X systems today. It's probably packaged as grof, G-R-O-F-F. That's the GNU runoff. It actually can read, if you want to blow your mind sometime, I'm going to show you the historical Unix Archive GitHub repo. You can go to that repo and pretty much use grof on any trough formatted document that was published 45 years ago. And it will still format correctly on your terminal today. So runoff was this really old program that was written originally for CTSS, which is another old time sharing system I don't have time to go into today. It was ported to Unix by Robert Morris, who was also at Bell Labs, is a pretty famous computer scientist. Google him sometime if you're super bored. And then later they got a photo typesetter. And so this guy named Joe Asana wrote or translated Roff into Assembler so that he could write, do photo typesetting with this macro package, this language. And then after Asana actually passed away in 1977, Brian Kernigan rewrote Roff in C and added EQN and table and pick and some other things that you might not be familiar with unless you do a lot of typesetting typesettings, but it's pretty interesting and pretty fascinating. I wanted to mention here a super quick aside. One really interesting thing about EQN is it's a package for typesetting equations and scientific literature. And it was co-written by Lorinda Cherry, who is a recently well-known computer scientist and was at Bell Labs at the time. She and Brian Kernigan worked together to build this package and there's a really fascinating paper about it that you can still read called typesetting papers for mathematical equations. Look it up, you can Google it, it's very cool. So they had users now. So the idea was we're going to use Unix as a platform to typeset patent applications. And the management at Bell Labs was more than happy to give them $100,000 to do that. So they got their PDP 11. All right, so now it's time to tell you a little bit more about this strange air message. Sorry for the long discursion. We need it all the background. Promise me. Okay, so we're at the very top of this chart. You can see over here, it might be a little small if you're in the back, but basically there's V1, which is this really, really ancient version of Unix, which still had Roff in it. It was all written in assembly. Around version 4 in 1973, it was all rewritten in C and that brings us to version 6, which is kind of where the arrow is trying to point at. Version 6 is also written in C. If you've used Unix before, you would feel very comfortable on a system, a system, even though it's 45 years old. So we finally get two values of beta and may give rise to DOM. All right, so first of all, where does this come from? Well, the story is, and again, this is in the references at the end of the slide deck, the story is that one day Ken Thompson came into the lab where they worked. And there was all this weird stuff that was on the photo type setter. And one of the things that they had printed out was this, values of beta may give rise to DOM. Well, why am I saying beta instead of beta? Because, you know, I'm not British. This last I checked anyway. And the interesting story was is that they worked with another person in the lab whose name is Doug McElroy, and he's responsible for putting the pipe into Unix. So if you ever use pipes, that's where that came from. He had this, he was experimenting with computer voice. So he had this voice synthesizer that sounded like war games. How many of you have seen war games? Yeah, so you know that in that movie, the computer talks, and it, you know, talks like this. It has this really mechanized voice. Anyway, they thought that this phrase was really funny. It obviously came from some kind of patent application or something. It's a half a phrase, and the exclamation point came from this editor that they were using called Ed. Now Ed is a line-oriented editor, and it's sort of like the great, great, great, great grandparents of VI and Vim. So if you only had a typewriter to enter stuff into a computer, you would have used a line-oriented text editor like Ed. Anyway, when Ed had a syntax error, he would put this exclamation point at the end of your line. And that's where the exclamation point came from. But anyway, they put the sentence into the computer synthesizer, and it said, Values of beta may give rise to Dom. And they thought that was the most hilarious thing that they'd ever seen or heard. So it went into version six. And this is where it is. It's actually in the Move program. If you try to move a file that starts with dot, and dot, remember, is the sort of parent of a directory, if you try to move dot into some other name, it'll actually tell you that Values of beta will give rise to Dom. But my other favorite error message from this era is this one. It's like, what? So if you tell Move to move a file that it does itself, it'll just output some question marks and go, what? They didn't have Unicode then, so they couldn't do the little gesture guy. But there's some other things that in system six are a little bit weird. This is probably the most famous comment of all time. This is a part of the Unix kernel from system six. So if you don't want to read a really long textbook, you can read the system six kernel. It's about 40k. It's about 10,000 lines of code. It sounds like a lot, but really compared to Linux, which is about 1.2 million lines of code, it's not that much. All right, so this came from Lyon's commentary on Unix, which is a very famous text from a long time ago. I was seven years old then, eating cereal and watching Scooby-Doo. But anyway, this comment says, you are not expected to understand this. What? So I mentioned this came from a text called the commentary. So let's see what the commentary says. The comment that begins here is not encouraging. We'll return to this again. Okay, let's see what that says. The question is, if these values stored in UUSave 284 are the same values as URsave in line 281, how do they get to be different? That's a pretty legitimate question. Presumably, that's what you're not meant to understand. So it offers a tip, which is, hey, you should check out this thing called xSwap. Well, more about xSwap at the end of the... I'm not going to get to it, so you're going to have to download the slides if you want to learn about it. Anyway, the ethos of Unix. Do one thing. Do it well. Tool composition. Remember I mentioned pipes before. Pipes are very important to do tool composition. Text is a universal interface, or it was, at least in the 70s. It's not anymore. Now we have, and also poo. Not that those things aren't useful. They definitely are. And then finally, documentation. One thing that was very unique about Unix in its day, and still remains unique to this day, is the fact that it has a section in its man page that's called bugs. Do you know of any other commercial software packages that have a giant section that's called bugs? Yeah, so they're really open and transparent, which brings me to the aesthetics of Unix, which are simplicity, elegance, and openness. And these are the things that attracted users and programmers to use Unix in their projects. And one of the reasons that Unix was really popular was this one. This is a quote from Dennis Ritchie's paper describing the Unix system in communications at the ACM. He wrote, if designers of a system are forced to use that system, they become aware of its functional and superficial deficiencies, and are strongly motivated to correct them before it's too late. Isn't that the case? Since all source programs were available and easily modified, we were willing to revise and rewrite this system and its software when new ideas were invented, discovered, or suggested. And I think that's something that's really powerful, and that's the reason why Unix has become such a success in the 40 years between when it was created and right now. Thanks.
today is values of beta may give rise to DOM. And strange air messages that's ever made it into an Multix. We're going to talk more about what called Multix. And Multix was supposed to be the This is a PDP7. How many people in the audience PDP 11. And it actually will take up to 256K of error message from this era is this one. It's probably the most famous comment of all time. This is a part of the Unix kernel from system fact that it has a section in its man page that's Unix system in communications at the ACM. He and superficial deficiencies, and are strongly