Browse DevX
Sign up for e-mail newsletters from DevX


Heard on .NET Rocks!: A Stroll Down RAM Lane with David Treadwell : Page 2

Interviewers Carl Franklin and Richard Campbell catch up with Microsoft's David Treadwell at the PDC, who discusses his early experiences, right out of college, programming the Windows NT kernel.




Building the Right Environment to Support AI, Machine Learning and Deep Learning

David Treadwell: Well the education in OSs, frankly, came from sitting in front of the computer looking at the code that the other experts from Digital had written... understanding their aspects… understanding the way they put together the system. This is a group of folks who are probably the most senior, the most exceptional group of operating system engineers in the world at the time. They had created other operating systems and they took the [experience] that they had there and used that to build NT. And one of the great things that I think that they did is… because they'd been through it enough times… they had a real vision of what the system needed to be. And in fact, today, a lot of the code in Vista is nearly unmodified from when Dave Cutler and Daryll Havens and Chuck Lenzmeir… when these folks wrote this back in 1988-1989. Richard Campbell: Yeah, they got it right then.

David Treadwell: Yeah, they really did and what's remarkable. They have living software, you know, the things people care about… not just what you maintain on the shelf, but something that's mainline core code that you care a lot about. That's essentially persisted for seventeen years. I mean, that's kind of remarkable! Carl Franklin: It is remarkable! Well, if you think about it they had a lot of impetus to create something a lot more stable… because obviously Windows had grown to the point where, you know, systems had grown, RAM availability had grown, and we were still working in this 640K model and then the 32-bit Windows 95 came out, but it still wasn't quite solid enough. So, maybe a lot of people don't know this but what is it about NT that separates it from the Windows 95 lineage?

David Treadwell: Well, to a very high level, NT is a fundamentally different kernel. All the guts of NT are different than the guts of Win9X, which was essentially DOS. With Win9X we took the DOS system and put a new shell on it, put a new programming model on it. But, DOS had never really been designed to support a multithreaded, preemptive, multitasking operating system. It just wasn't the right base for that. And the strategy was that NT would serve as a base which was written for that level of system. The challenge, of course, was that in the early 90s NT required more resources, mostly memory and CPU, than the machines were capable of delivering. Richard Campbell: It really was ahead of its time.

David Treadwell: The early releases of NT, like in NT 3.1, was good for what it did, but you wouldn't run it very much on a client because it required so much more RAM. Richard Campbell: I used 3.1 in the command line mode. I thought it was fabulous for that but I was operating servers—that's what mattered to me.

David Treadwell: For servers it was fine but you wouldn't use it as a client because the machines of the day weren't really up to it. So, the main distinguishing [factor] between the NT and the 9X base is basically NT was designed to be a preemptive, multithreaded, multitasking operating system, and works pretty well as that base. Carl Franklin: We had tried to have application protection… you know protection from crashing and all that kind of stuff… going all the way back to the AT in protected mode, so, what is it in terms of memory management about the NT Base which is now the lineage in Windows 2000 and XP

David Treadwell: And Vista. Carl Franklin: And Vista is obviously the up-and-coming iteration… What is it about the memory management that's different from the 9X lineage?

David Treadwell: It essentially was designed right from the start to be a virtual memory system. With DOS it wasn't designed to be virtual memory in the beginning and so it had to be… Carl Franklin: So a lot of swapping...

David Treadwell: Yeah, it had to be retrofitted, and retrofitting something like that is pretty tough to do effectively. You can't really put something so deep and [fundamental] on top of the system. Whereas [with] NT—the guys who built that knew right up front that that was going to be a prerequisite for their operating system. So, they really designed that kind of infrastructure right into the system. Carl Franklin: And you can definitely tell, I mean, there was an option in NT to run a program in its own process and I guess the process is the magic that keeps things separate.

David Treadwell: Right, exactly. The process is the boundary of protection between code. Carl Franklin: And there are so many people out there now that think, "Oh, I don't use the computer that much. I am just going to stick with the old versions of Windows, Windows Me, that kind of stuff, and Windows 98."

Richard Campbell: The big difference was when something blew up—and it blew up once in a while, you know software would fail. On a 9X machine, once you had a piece of software fail you knew, you are on a time limit to rebuild. David Treadwell: The reboot's coming!

Richard Campbell: Here it comes. You know you might as well get there first before it does so itself. Whereas, with an NT box, when a program died, the program died. That's all that died. Everything else was fine. David Treadwell: And essentially the philosophy is that, if a program is able to impact the rest of the system, well, that's a bug in the system.

Richard Campbell: Right. David Treadwell: There are certain kinds of things, like, if something is spinning and taking up CPU, okay, that you can't control. But, in general, the rule is [if a] program degrades the system, [that's a] system bug not a program bug, which is different.

Richard Campbell: Program A shouldn't be able to damage Program B. That's what an OS's job is: to say "Oh no, you play in your own pool." Carl Franklin: And in what operating system were programs running in their own process by default? There was an option in NT, wasn't there? In NT4, I think, it was even an option, wasn't it?

David Treadwell: Well, even in 9X, programs kind of have their own process but there is less protection between the processes in 9X. In NT, it's essentially default that you have to go out of your way to run other code in your process. By default, you own your process and what's in that process is under your control. Other processes can't hijack your own process that your are running in directly. Carl Franklin: So, when did you make the jump from operating systems to programming, development framework?

David Treadwell: Well, the history basically goes, I worked on the file server in NT for a while and moved from that to work on Winsock in the early days of the Internet. Carl Franklin: Oh cool! Dude!

Richard Campbell: Yeah Winsock. (Laugh)

David Treadwell: I wrote the original WinSock spec. Richard Campbell: Did you really?

Carl Franklin: You wrote the original WinSock? Richard Campbell: That's fabulous.

Carl Franklin: Alright! Give me some skin. (Laugh)

David Treadwell: So, I wrote the Winsock stuff and I did the Winsock implementation for NT in '92 to '94. And this is when the Internet was just becoming relevant. Carl Franklin: Sure.

Richard Campbell: And we are still arguing whether TCP/IP was important or not. David Treadwell: Right! Or OSI. OSI maybe was better architected, and it was going to be the real thing, and these days TCP/IP is [so prevalent that we] don't even talk about it.

Richard Campbell: Yeah, well, there is only one. Carl Franklin: And in those days, you were loading Winsock as a third-party tool. What was the public domain stack?

Richard Campbell: Trumpet Winsock. Carl Franklin: …Trumpet! That's what it was. Everybody was loading Trumpet and then you guys built it right into the next...

David Treadwell: Exactly, before Microsoft included it with the system, an end user had to go get their TCP/IP and Winsock implementations from somewhere. A lot of people used Trumpet. There were about ten in the industry. Carl Franklin: Yeah, there were, there's a lot.

David Treadwell: They were competing essentially. Carl Franklin: They all had big ads in the back of PC Week magazine. I remember that.

Richard Campbell: You also got this weird browser thing with it too. David Treadwell: A couple of years later, yeah. I think its kind of one of the less well-known parts of the success of the Internet is the inclusion of TCP/IP and Winsock with the system. Because before that, you know, it was a fair amount of work to go and install Trumpet Winsock and configure that.

Richard Campbell: Not for the weak! You really had to know a lot of stuff to make that work. David Treadwell: Exactly. You had to be somewhat expert on it.

Richard Campbell: And if you did it wrong, you really made a mess of things in your machine. That was bad. David Treadwell: Yup.

Richard Campbell: You're in trouble. David Treadwell: That was very complex. That was when everybody had to deal with IP addresses and these days, people are more into the network.

The interview goes on to document the projects David has worked on leading up to Vista including Internet Information Server. Check it out online.

Carl Franklin is a frequent contributor to CoDe Magazine.
Thanks for your registration, follow us on our social networks to keep up-to-date