We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Values of β may give rise to dom!

00:00

Formal Metadata

Title
Values of β may give rise to dom!
Title of Series
Number of Parts
34
Author
License
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
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
Computer animation
BitMetropolitan area networkMereologyGame theoryOperating systemNeuroinformatikSlide ruleStreaming mediaElectronic visual displaySoftware developerWindowError messageMessage passingBeta functionJSONXMLComputer animationProgram flowchart
Physical systemMeeting/Interview
ComputerProduct (business)Projective planeDigitizingMultiplication signNeuroinformatikArithmetic progressionMereologyCollaborationismSoftwareBell and HowellGroup actionOperating systemConcurrency (computer science)Point (geometry)Inheritance (object-oriented programming)Computer multitaskingSource code
Extension (kinesiology)Assembly languageDigital photographyConnectionismNeuroinformatikPhysical systemMacro (computer science)Computer scienceDigital photographyGoogolMultiplication signOperating systemComputer programmingGame theoryType theoryNichtlineares GleichungssystemSlide ruleTable (information)Electronic visual displayFormal languageBell and HowellGraphing calculatorRadical (chemistry)Assembly languageFile formatSoftware repositoryGravitationCartesian coordinate systemData managementSemiconductor memoryFile archiverOcean currentComputing platformGraph (mathematics)Computer clusterMeeting/InterviewComputer animation
Computer fileError messageRevision controlQuicksortText editorBookmark (World Wide Web)Directory serviceInheritance (object-oriented programming)Physical systemArrow of timeKernel (computing)Beta functionMereologyFunction (mathematics)Dependent and independent variablesSlide ruleBitMultiplication signPoint (geometry)Line (geometry)CodeNeuroinformatikCartesian coordinate systemGame theoryComputer programmingMiniDiscLogic gateDigital photographySpeech synthesis
Point (geometry)
Line (geometry)Interface (computing)Physical systemContext awarenessSoftwareSource codeSoftwareSheaf (mathematics)Slide ruleSource codeModulare ProgrammierungPhysical systemTelecommunicationInterface (computing)Line (geometry)Programmer (hardware)CASE <Informatik>Projective planeWeb pageOpen setSoftware bug
Power (physics)FreewareComputer animationXMLProgram flowchart
Transcript: English(auto-generated)
So my name is Mark Allen, I have computer difficulties and I'm going to play the 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. All right, so let's get going, hopefully this will work. So this is what it all started with, I mean not literally the 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 Multics. We're going to talk more about what Multics 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
Richardson called Unix, which you may have heard about. Unix actually originated in 1969 after GE decided, or I'm sorry, after Multics was pulled out of by Bell Labs. Both Dennis Ritchie and Ken Thompson worked at Bell Labs and they were involved with the Multics projects.
Ken Thompson went to the University of California at Berkeley in the mid 60s and Dennis Ritchie 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 Multics and Multics 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 users of like 25 concurrent sessions or something like that. But the point 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 Multics did not. So Bell Labs pulled out of Multics because it was failing pretty badly, 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 PDP-7. How many people in the audience have ever used like a Timex Sinclair or a TI-99-4AA? 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 modeled 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, 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 a digital equipment's 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, I'm sorry, Bell Labs had just pulled out of Multics 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 TROF 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. So this guy named Joe Asana translated GROF into assembler so that he could do photo
typesetting with this macro package, this language. And then after Asana actually passed away in 1977, Brian Kernighan rewrote GROF 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 types of things. 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 Lorenda Cherry, who is a reasonably well
known computer scientist and was at Bell Labs at the time. She and Brian Kernighan 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 error message. Sorry for the long discursion.
We needed 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 6 system, even though it's 45 years old. So we finally get two values of beta that 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 phototypesetter. 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 I'm not British. This is the 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've ever used pipes, that's where that came from. 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 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 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, it would put this exclamation point at the end of
your line, and that's where the exclamation point came from. But anyway, they put this 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 6, and this is where it is.
It's actually in the move program. If you try to move a file that starts with dot, 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 6 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 6. So if you don't want to read a really long textbook, you can read the System 6 kernel. It's about 40K. It's about 10,000 lines of code. It sounds like a lot, but really, compared to Linux, which has about 1.2 million lines of code, it's not that much. All right. So this came from Lion's commentary on Unix.
It's 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 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 at 2284 are the same values as URSave
at 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 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
of 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.