“I Found a Cool Little Problem That I Just Couldn’t Resist Solving”

REDMOND, Wash., Oct. 9, 2000 — To commemorate the company’s 25 th anniversary, Microsoft this month published Inside Out , a book written by and for Microsoft employees that highlights the products, people and culture that transformed Bill Gates’ and Paul Allen’s vision for personal computing into reality. Featuring new essays by Gates and individual stories from hundreds of current and former Microsoft employees, the book provides personal anecdotes of triumph and failure, facts and trivia, and a look ahead to the company’s next 25 years.

Throughout the week, PressPass will publish excerpts and photographs from the book; in the story below, David Weise, now a project leader in Microsoft Research, explains how his curiosity about Windows’ memory management features led to a major development in the product.



David Weise, Project Leader, Microsoft Research

I used to be a physicist, but I wasn’t the kind of physicist who liked dealing with big particle accelerators or huge experiments where you needed hundreds of people to get things done. I was a
“tabletop”
physicist. I liked working with my hands, dealing with problems that can fit on a work table. Working with PCs gives me that kind of thrill. There are always new experiments to try, new problems to solve, all in a box that fits on my desk.

Back in 1988, when I was working on the Windows kernel — the low-level code that’s the core of the operating system — I found a cool little problem that I just couldn’t resist solving. Back in those days, memory was really complicated–accessing the first megabyte of memory was easy, but beyond that it was kind of tricky because of the way the hardware and the chip worked. Basically, you had a lot of trouble really using all the memory you had, and that got in the way of application performance.

Because of this, Windows was still something you bought to run specific applications–graphics-intensive things like PageMaker. You didn’t run all your apps in Windows because most of them were DOS apps that were starved for memory in the Windows environment, which made them pitifully slow.

In Windows 2.1, there were all kinds of little hacks that put bits and pieces of the operating system into something called
“high memory,”
which made more efficient use of memory and helped applications run faster. But what Windows really needed was to use a different mode of the 80286 processor–something called
“protect mode.”
This allowed apps to use up to 16 MB of memory instead of the measly 1 MB they could use in
“real mode.”
But neither Windows nor DOS supported it.

I was at a party one night and ran into Murray Sargent, an old physicist friend of mine. He had come up to Microsoft for the summer from his position at the University of Arizona in optical sciences. He was here to improve the performance of some of our language tools by putting them into protect mode. He had written his own
“DOS extender.”
It was a program that allowed specially written MS-DOS apps to run in protect mode. He also had his handcrafted debugger that would allow folks to debug such apps. We both knew what a happy marriage it would be between his tools and my Windows code base. We got so excited about the idea that we went straight back to my office to start in on it.

Over the next few months, I worked nights and weekends, rewriting the memory manager and tweaking everything else so it could run in protect mode. And I didn’t tell a soul I was doing it. There were two reasons for this. First, it’s a lot more fun to do it quietly and then say,
“I did it!”
rather than say,
“I’m doing it”
and get interrupted all the time. The second reason is that Microsoft was betting on OS/2, which was a lot better about using memory, had better multitasking, and was strategic to our relationship to IBM.

So putting Windows into protect mode was more of a personal project. Hey, it was Bill and Steve’s company, and if they had wanted a protect-mode Windows, they’d have asked for it. But they didn’t. My scheme was to get it running, then tell Steve, and if he wanted to kill it, he would.

Despite my secrecy, a few people around the company had an inkling of what I was up to. I remember suggesting once to Steve Wood that we put some of the display drivers into protect mode to help multimedia content run faster, and he looked at me and said,
“Yeah, David. Like you’re going to stop there.”
So I smiled, said,
“Shhhhhh”
and carried on with my work.

A few days before I had it done, I pulled Steve Ballmer aside and said,
“Steve, um, just to get you in the loop, I’m pretty close to getting Windows running in protect mode and, um, I just thought you’d want to know about it.”
We had a meeting coming up with Bill and the team about what Windows 3.0 was going to be like, and I figured it might be useful for them to know what I had done. The day before our meeting with Bill, I told Steve that I’d have it all done that night, and he should drop by my office at eight in the morning to take a look. So I finished it at about 2 a.m. and went home to sleep.

I slept late and didn’t make it to the office on time, and when I got in I saw that my machine had crashed. I thought,
“Steve must have been here.”
I went to his office and asked if he’d seen it.

“Is that what I played with on your desk? It looks like Windows,”
Steve said.
“And it works?”

“Needs a few bug fixes, but it works,”
I said.

So he suggested that I tell my managers, Phil Barrett and Russ Werner, before the BillG meeting. So I did, and we went into the meeting, where I kept quiet because this was going to be fun. Various people talked about what Windows 3.0 should be and shouldn’t be, and I didn’t say a thing. I sat there smiling. When the time came, Steve said,
“By the way, Bill, David has some ideas about where we should go with 3.0.”

And I said,
“Well, basically, I think we should move Windows into protect mode. And, um, I have it working downstairs.”

And Steve, mindful of how this would affect OS/2, looked at Bill and said,
“What are we going to tell IBM?”

Bill just looked at him and smiled, and said,
“I don’t know, Steve. That’s your problem.”

So we did it, and suddenly people’s applications started working better on Windows. More and more applications migrated over to Windows, and more and more end users started using their applications within Windows rather than switching back and forth between Windows and DOS. Sure, there were lots of other features in Windows and lots of other factors that contributed to its success, like the improvements to the user interface, but I think that solving this little problem really opened up the floodgates and got the momentum going for the platform.

Related Posts