Bonus Interview- Andrew Tannenbaum - Minix

دوره: Using Databases with Python / فصل: Many-to-Many Relationships in SQL / درس 4

Bonus Interview- Andrew Tannenbaum - Minix

توضیح مختصر

But Robert's remark ultimately changed billions of dollars of valuation in the Samsung versus Apple stock prices. And so I didn't want to make Minix like a big commercial thing because I figured the BSD guys were eventually are going to go out there and it's a stable mature system with many programmers, and many users, and all software. And there you go and there's a slight glitch of maybe a couple of hundred milliseconds for the application when there was no file service but they don't know that, unless you're doing hard real time, everything works.

  • زمان مطالعه 0 دقیقه
  • سطح خیلی سخت

دانلود اپلیکیشن «زوم»

این درس را می‌توانید به بهترین شکل و با امکانات عالی در اپلیکیشن «زوم» بخوانید

دانلود اپلیکیشن «زوم»

فایل ویدیویی

برای دسترسی به این محتوا بایستی اپلیکیشن زبانشناس را نصب کنید.

متن انگلیسی درس

We were an early adopter of Version 6 Unix here and we had a VAX and PDP-11s and all the stuff.

And so we were happy to run Unix and I was teaching a course on operating systems using Version 6 Unix.

And John Lions of Australia wrote a little book sort of describing it line by line and it was very popular at universities.

And the bean counters at AT and T decided this was a bad idea.

That having every student in the world learn about their product, which they owned, they thought was a horrible idea.

So the Version 7 came with a license saying, thou shalt not teach.

Okay, so the Version 7 license was you couldn’t teach Version 7 Unix anymore, which was, it’s gotta be up there, ranking up there with something Xerox did as the dumbest mistake of all of history.

But, they did that. So, we couldn’t teach Unix anymore.

I said, maybe I’ll write my own operating system which is compatible with V7, then I can teach it. I sat down and I began writing.

It sort of worked, I got it almost to the point where it worked. And it was crashing at random.

All of the functionality was there and it would run for 15 minutes and then it would crash.

I was like about to give up, I just couldn’t, so I said what i’ll do, i’ll write a simulator for the PC and I’ll run on the simulator because that’s entirely deterministic and reproducible, and then after it crashes I can go run it again and print out the last 100,000 instructions and find out what happened.

So I wrote the simulator, it took me a little while but I got it running, so I had a complete simulator for the PC. If I’d been smart I would have invented VMware.

This is in the ’80s because I already done the basic work I could have done translation instead of interpretation.

So I wrote a PC simulator, anybody could do that. So I didn’t care.

So, it worked perfectly on the simulator. It would run forever. It wouldn’t run on the hardware. It only ran on the simulator.

And I’m kinda scratching my head from, gee, how come? One of my students Robert from NASA mentioned to me sort of, I was explaining this problem to him, mentioned me offhand. you know, when the Intel chip gets hot, it gives interrupt 15.

I said, no it doesn’t. He said, yeah, I heard that somewhere. I said, the manual doesn’t mention anything about that.

And so I said, well I don’t know, I can put in the test. I wasn’t catching interrupt 15, of course, because the manual didn’t mention it existed.

So I put in a little piece of code which caught interrupt 15. And sure enough, within an hour of running it I get this message.

Hi, I’m interrupt 15. This is impossible, you’ll never see this message. So I was saying all these very unpleasant things which I cannot repeat on the Internet about Intel.

If they want to put a thermal sensor, great. Please put it in the manual, though, you know, mention it. So I put it in, and all of a sudden Minix worked, okay?

If Robert hadn’t made that comment there would have been no Minix. If there were no Minix there’d be no Linux.

Because Linus went out and bought a PC specifically for the purpose of running Minix. He was in a Minix newsgroup.

He had a big newsgroup on Usenet newsgroups. He spent a lot of time developing Linux based on Minix. He changed this. He changed that.

And eventually he changed almost everything. And so it sort of launched as its own system. So if Robert hadn’t made that comment there’d be no Minix, there’d be no Linux.

If there’d been no Linux, there would have been no Android because the Android is Linux. Okay?

And if there’d been no Android the relative stock prices of Samsung and Apple would have been quite different. Because the Apple is based on iOS, which is FreeBSD. which came from a whole different strain of Unix.

So that wouldn’t have been affected, by the presence or absence of Linux. But Robert’s remark ultimately changed billions of dollars of valuation in the Samsung versus Apple stock prices.

And if he hadn’t made that, the world would be quite different. There probably wouldn’t have been an Android.

And, heaven knows all of the other things it depends on, Linux and Android. All the server bits of all of that, too.

All the server parts, too. I mean, they may have been using FreeBSD or something instead, who knows?

But that one little offhand remark had all these consequences downstream. So then, how did you, did you write Minix and then write the book?

So anyway, yeah, I wrote Minix and then I wanted to document it. Because I wanted something like Lion’s book, which explained in a course.

Most of the chapters have three sections, one is the general principles of file systems or process management or whatever, the second part is how these general principles apply to Minix.

What is the memory management algorithm, how’s the file system organized, what are the key data structures, and so on.

The third part of every chapter is, now we’re going to look at the code. Here online 10,720, we see the main headers for the file system.

Here we’re declaring these headers. And now on line 14,000 we’re starting with the actual main loop of the file system, and it goes and gets a request, and it takes it apart, there’s a switch there, and it figures what to do.

And, so it goes through the code bit by bit. So it was like Lion’s code, and the book came with a bunch of floppy disks, which was the only transport medium in those days, where you actually had the source code.

And so the book came out, it was an enormous success. And at the same time it was already BSD, which was a mature, stable, working system which had 20 years of background, the VAX and the PDP-11, and the guys who formed it, McCusick and so on, they formed a company BSD incorporated, and they were trying to sell it commercially.

And their phone number was 1 800 it’s Unix and so what does ATT do? Again, in one of the more brilliant commercial moves in all of history, they sued BSDI to get rid of them.

And they had no knowledge at all of how to sell Unix. If anybody ever had had an IQ above about, you know, two-digit numbers, they would have gone to the BSDI guys and say, we want to buy your company, how much?

And given you’re ATT, the biggest corporation in the world, no matter what number they mentioned, they would have said good, sign here. And they would have had the BSDI guys sell Unix.

There would have been no MS DOS, there would have been be no Windows. It would have been all Unix. And they tried to stop these guys.

So BSD was blocked from going commercial and I knew about this.

And so I didn’t want to make Minix like a big commercial thing because I figured the BSD guys were eventually are going to go out there and it’s a stable mature system with many programmers, and many users, and all software. that would take over the commercial aspect of this free software world.

But it didn’t because of the stupid lawsuit from ATT. And so that was the interval that Linux got a chance to grow. So again, one of those freaky.

The bean counters at AT who sued these guys instead of buying the company and saying you’re our marketing division, go sell it.

But at the same time, if you think about Minix, the Linux movement let Minux stay for teaching and education.

For a while. Yeah. We’ve changed that recently. Okay. I got one of these, the European Union, they decided to set up a couple of new programs where basically, they would give a large chunk of money, about two and a half million Euro, which is I don’t know, three and a half or four million dollars, to one specific investigator.

There’s two categories, young investigators who are sort of getting started, and senior ones with a track record, and basically let them go do their thing. And I applied for this, and I got one of them.

And with this ERC advance grant, we’re trying to go commercial with Minix. We’re pushing it in the area of embedded systems and high reliability because it’s got a kernel and all these servers that run separately in user spaces, user mode processes.

And in particular, if one of them crashes, there’s a reasonable chance we can repair it on the fly without disturbing running programs. And so if the disk driver fails, we can detect that, we can start up another disk driver.

And there’s a glitch of a couple hundred milliseconds while we’re restarting things. But things go on. If the disk driver in Linux crashes, that’s the end of Linux, okay?

You have to reboot the whole computer. So we think there might be a little niche in there. I think there’s a significant niche actually.

I think that the problem with modern operating systems is they’re getting too large and too complex Yeah this breaks up the little pieces.

And another thing which we can do now, just before you started one of my PhD students came in. He’s working on live update.

So we can update almost all of the operating system on the fly, from version 3.3 to version 3.4, which might have thousands of changes, including data structures, on the fly, while the system is running, while application programs are running, without changing or stopping or interfering with the running programs.

And this is tricky. The model, of course, is that the person who wrote version 3.4 was keenly aware of all the details of 3.3.

So if there was some internal table, like say the mount table, which was, say, a linear list in 3.3, and he decided to make it a hash table in 3.4 because you could have a lot of things mounted, then he’d have to write the code for converting one data structure to the other.

But basically, you say I want to do an update and there’s a manager which handles that, and the manager goes to the old one and says okay, finish off what you’re doing now, don’t take on any more work. Queue it.

And then when you’re all done, let me know. And when it’s done then the manager starts up the new one.

The new one then goes to the old one and says okay, I need all your data structures. And the LLVM compiler allows us to record in memory all the data structures very nicely, their types and locations. So it says to them give me your first data structure. And it gets the first data structure, see if it’s identical to the old one, if so, just copies it.

If not, it’s got to run a routine to do a conversion from, say, a linear table to a hash table or a list or whatever the new one is, it runs that. When it’s all done the whole thing is converted.

Okay, it doesn’t take very long, computers are good at that. And then when it’s all finished, it tells the manager, okay I’m ready to go live.

The manager then changes all the internal connections to point to the new one, makes the new one go live, kills off the old one.

And there you go and there’s a slight glitch of maybe a couple of hundred milliseconds for the application when there was no file service but they don’t know that, unless you’re doing hard real time, everything works.

And we think that might be interesting for applications that never want to go down. And they know that softwares change all the time, and there are security fixes.

And we’re focusing this on the embedded world where we think there’s a lot of interest in keeping the thing running all the time. If you’re running some real-time system, whether it’s a radio telescope, or an electric power plant, or some other real-time thing, you may not want to go down for reboots once in a while.

And so a system which can update itself, which can repair itself, which can try and have a fairly high availability might have a niche in there. We’ve got it working in the lab now for the BeagleBoard, for the BeagleBone.

We’re about to release it for the Beagle Black also, which is like the Raspberry Pi but even better. So we’re sort of trying to see if we can find a niche there.

مشارکت کنندگان در این صفحه

تا کنون فردی در بازسازی این صفحه مشارکت نداشته است.

🖊 شما نیز می‌توانید برای مشارکت در ترجمه‌ی این صفحه یا اصلاح متن انگلیسی، به این لینک مراجعه بفرمایید.