Where is Microsoft Headed?

Recently, Windows NT Magazine interviewed Bob Muglia, Microsoft's Director of Windows NT. We asked him many of the questions you have asked us in focus groups, on CompuServe, and on the Internet. Muglia's responses are enlightening and provide a sneak peak at the future directions of Microsoft and Windows NT. Here is the bulk of that interview.

What are your views with regard to where you think the desktop is going?

When we started focusing on our strategy of Windows and Windows NT in 1990, we realized that the hardware requirements were such that it was not possible to have a single operating system that met all the requirements customers have. That's why we've been pursuing a dual operating-system strategy with, first, Windows 3.x and now Windows 95 as a high-volume general-purpose operating system which satisfies the needs of most people.

At the same time we were building a higher-end operating system, Windows NT, that satisfies the needs of customers who want a secure, robust environment and also servers. It turns out that the characteristics of a robust, high-end desktop and a server are pretty common. That will be true for about two more years. Because of the hardware price point, it's necessary to continue to have two different operating systems. NT today is a 12MB minimum operating system-16MB to serve an optimal configuration for most simple desktop uses. For more advanced stations, you may want more memory-potentially 32MB, or 64MB if you're doing very high-end CAD or compute-intensive work. As time goes on, that distinction begins to blur. The machines that people are buying now are Pentium P75s, P90s, 16MB of RAM, and those machines are very capable of running NT.

There is an installed base of 70 million DOS/ Windows machines that probably aren't capable of running NT. Windows 95 has a tremendous market to upgrade that base. In fact, for consistency reasons people will buy Windows 95 for some time.

If you look forward, though, in about two years, it will become apparent that NT-especially for business uses-will be able to satisfy what people need because the hardware will have advanced. Now, we are putting NT first into business because that's where its characteristics are most important: its robustness and security. Certainly by the end of the century-probably as early as 1997, 1998-we'll begin to see business shifting over to NT.

It'll take longer for the home to shift, because one of the things NT does is compromise some compatibility for the robustness characteristics. It's just not possible to be robust and crash-proof and to run every application. You have to make a trade-off. Where we've made those trade-offs up until now, we've made them toward robustness.

As the applications go to Win32, the games go to Win32 with WIN G and DCI, you're going to see those things all run on NT in a robust way. You begin to be able to run "Grandma and me" on NT. Then you can potentially bring the system down or have a high-end game asking the first question, to insert a boot disk. We're not there yet, and I don't think we'll be there for another 24 months. But as the games market shifts, we can begin to move NT into high volume, not just in business but in the home. I think you'll see that in probably four years.

I'm confident we will be able to get to a single kernel architecture a single operating-system architecture. Whether we choose to package that differently-continue with the two distinct brand lines-is something that we'll have to figure out. It will reflect what the marketplace wants. We're beginning to see this distinction, where corporate wants the ability to download software. They want to be able to manage their desktop; they want a series of things that are very different from what people want in the home.

By the way, when you have a question about NT/Cairo, recognize that Cairo is NT. It's simply a follow-on, an upcoming release of NT. In fact, every day, we do a Windows NT 3.51 build, and we do a Cairo build. And we do it out of the same source tree.

In some of the other environments-I think it's true of both the desktop and the server, but it's much clearer on the desktop-the key to success is the application base. Today, it is dominated by Windows 16-bit applications, but it is moving overwhelmingly to Win32 and OLE as the fundamental characteristics of these APIs are built. Because the applications are in Windows today and they'll be in Win32 tomorrow, the predominance of the desktop will still be Windows-based. We may change the characteristics, but fundamentally it will still be Windows.

Will we see more size and performance tuning in NT in the near future?

When we shipped NT 3.1, we had few distinguishing characteristics between the workstation and the server in terms of performance. When we went to 3.5, we changed that fairly significantly. The basic pieces of the system are the same: The kernel is the same; the device drivers are largely the same; the user GDIs are the same; but we tune it differently for a workstation or a server. A server is tuned for throughput, and workstations are tuned for response time. A Windows application will run on NT Server, but it will not run as fast as it will on NT Workstation. You're not going to get the kind of service you'll get out of a workstation; it's not meant for that.

Let me elaborate a little bit on performance: We made massive changes in 3.5, as you know. In 3.51, we have more subtle changes, but they're still distinct. We've improved OLE performance considerably, and NT Server is around 10% faster than it was in 3.5. If you run an OLE application like Word or Excel, you will notice that 3.51 is faster. We still see tremendous opportunity to improve performance on NT, and we will continue to do that in upcoming releases.

NT still lacks many features needed for large-scale mission-critical applications. What are your plans to remedy this?

What NT people are trying to do in many cases is use a PC-based system to replace a business-critical function that formerly ran on a higher-end UNIX system or on a mainframe, a system like a VAX. We are not yet at the point where we can replace all these systems. There are certain characteristics that we don't have in place yet, but we're getting there.

It is our intent over the next couple of years to fill in all the pieces. Peripheral systems operation is very critical, and in an upcoming release of NT, you'll see the ability to do things like replace disks that are part of stripe sets or mirrored volumes without having to reboot to restore them.

We're not exposing things like memory quota but it can be exposed as a programmer option. When you write a program in Win32, you can specify the memory quotas it uses. We'll probably expose them in the future, but the most important is disk, and we will do that.

When it comes to system duplexing, we probably will not do what Novell does with SFT III (System Fault Tolerance). SFT III, which is truly a UNIX server, relies on the fact that NetWare is a non-preemptive operating system. Since you're not driven by interrupts, you can schedule things and keep two machines in synch. In a pre-emptive environment, which is completely interrupt-driven, it's virtually impossible to do. So, that's not an appropriate avenue to take. Our plan is to work on loosely coupled systems. In fact, Digital has done some work to provide clustering for NT, and we're working with them and other vendors to provide general clustering solutions.

Will the Windows 95 UI be available for Windows NT?

Basically, when customers adopt NT Workstations and they've got Windows 95 in a mixed environment, they want a common UI. We've addressed the applications' need to run on both NT and Windows 95 in NT 3.51. It's incredibly straightforward to build an application that works in both environments.

In 3.51, we moved to Win Help 4 which is identical to Windows 95. The major aspects of the UI from an application perspective, such as the new control, the tab dialogs, things like that, are available in 3.51. When we update Office and Lotus updates Smart Suite and everybody else rolls out their Windows 95 applications, that can be done on both platforms without any changes.

However, customers still ask for the Windows 95 UI. We don't have an absolute schedule for it but we've become more sophisticated in the development environment, so now it's possible for us to ship a shell update release without impacting Cairo.

Cairo is just another technology that we're incorporating into the next release of NT, both the Server and the Workstation. We're thrilled about the acceptance of our NT 3.5 Server. It is far beyond our expectations-the numbers of people buying it. Our customers are deploying it to run their businesses, and it's working.

The combination of NT Server, BackOffice, and the applications-as well as third-party applications-is just tremendous. You can see the developers' community galvanizing on NT Server to build server applications because it has the characteristics they need. They need a robust environment; they need a great development environment. I think it's pretty straightforward to say that NT is the best application development environment available today. It has the server that they need, the ability to run programs as a service, to log in the event log, to leverage our security, to provide high-performance I/O, full multithreaded pre-emptive support, SMP support-all those things that those same people need to develop high-end server applications and in a secure environment.

That's where the emphasis seems to be today. More than any other environment-more than NLM, more than UNIX-we're seeing the development community move to NT Server. Cairo will provide more services to leverage, more distributed capabilities to build on.

Windows NT lacks features such as At Work Fax and Plug and Play. Do you intend to remedy this situation?

We probably will pull in At Work Fax. It's a separate technology. Plug and Play is complicated enough so it's probably a Cairo feature. When you think about what Cairo is about-distributed support of OLE-it's the advanced directory service and the query capabilities that the new file system provides. Another major thing is Plug and Play.

How well do you think NT competes with UNIX?

The interesting thing about this is the word UNIX. I can talk about NT and how it compares to Solaris or AIX or HP-UX. But one of the key distinctions is that where NT is one operating system on four platforms-x86, MIPS, Alpha, and PowerPC, currently running on and certified to run on over 5000 pieces of hardware-UNIX is scattered on at least three or four different major platforms with somewhat different programming interfaces, so there really isn't direct portability between those environments. I think the biggest difference for developers is that they can write to NT and get all the x86 applications by running it on Intel machines. If they want to run it on RISC, it's straightforward and cost-effective to do that and get the high performance that some of those RISC machines offer. That's probably the biggest difference.

From a technical perspective, NT combines the things that you think you should find across UNIX even if you don't always find them. NT has the thread-level preemptive scheduling that's starting to creep into UNIX today; UNIX historically has had process-level scheduling. NT has high-performance I/O, something you typically find in UNIX. NT has the Windows UI so that total compatibility is maintained with all the applications written for Windows. It's straightforward for people to write an application that runs both on NT and on Windows 95 (or Windows 3.1 with the Win32 API). It provides an environment that's much more compatible with the PC.

In two years, I'm not sure there will be such a thing as a workstation market. But right now, Windows NT Workstation is outselling any version of UNIX.

What kind of enterprise layout method is NT Server going to use?

NT today provides a single logon across an enterprise which is the number one feature that people look for in directories. In fact, it's possible to layer functionality on top of our directory service like we do with SNA Server, like we're going to do with Exchange. Exchange extends the directory that's in NT today.

In Cairo, we took a massive step forward in directory functionality. If you look back at what directories have done, it's always been separate databases that are distinct from the file system. NDS certainly is; Street Talk is; and X.500 always is. In Cairo, we're taking the directory we have today and unifying it with the file system. So the file system becomes the storage place for the directory. That means there's one name space instead of two. That means that traditional desktop applications can access the directory without having to call a whole new set of APIs. It also means you can store anything-you can store a file system in the directory.

In a traditional directory like NDS, you have to decide whether you want to store an object in the file system or in the directory service. That has a big impact on the capabilities you have in accessing that object. The file can be any size when you take queries for it. The directory is limited in size, but you can query it. In Cairo, those distinctions are eliminated. There is only one name space and one storage location. You can store objects of any type, and you can use the full query facilities to get at them.

Are there pieces of other operating systems you'd like to add to NT?

Clustering is definitely a function we're going to be adding. The biggest thing is taking large enterprise-wide things, such as mainframe systems, and trying to transform those capabilities into NT in a much more distributed environment.

Some things that are fairly simplistic, like batch queuing, will move to NT in the future. There's nothing in the operating system that prevents us from having a traditional batch queue. It's just a utility that we need to write. That's the sort of thing we'll be doing. We don't need to make significant changes to the core.

As technology moves forward, we need to make sure that NT runs on all the hardware. The hardware advances are changing so often. We're building in ATM support, frame-relay support, a communications patch that we need to add for the P6 when that comes out from Intel, and naturally PowerPC support. We have to keep up with and stay ahead of the curve on hardware.

NeXT is used as a toolset. It started as a hardware platform, transformed into an operating system, and is now being ported to NT as a toolset. I think it's great that Steve Jobs is moving NeXT onto Windows 95 and NT. We think of NeXT the same way we think of Borland and its new Delphi product. It's great to have good tools on NT, and certainly our developers' division is creating toolsets that will compete with them. One of the things NeXT requires is a robust component architecture for the integration of components, and we have that already in NT with OLE.

What's the next generation operating system going to be?

NT is the next generation operating system. If you look at where our competitors are going with their operating systems, they're talking about building operating systems that look a lot like NT. IBM has talked about doing it with Workplace/OS-microkernel base, portable architecture. Novell has talked about moving off the single architecture, single-tasking, non-pre-emptive, non-memory-managed base operating system that they have today with NetWare and moving to something called SuperNOS. It has a lot of the same characteristics as NT-a microkernel portable architecture with more modern features such as pre-emptive multitasking.

If you look at where this industry is going, it's moving to platforms that are a lot like NT. We have that architecture in place. We have an object architecture in place with OLE, and now our task is to add functionality to deliver value to the end user. In the future, we want to give OLE distributed support. People want more sophisticated client/server applications using OLE technology. We're providing higher-level services as the world moves to the distributed environment.

Distributed computing in the past focused on monolithic machines, proprietary architectures, or proprietary-use versions. That sort of computing is dead. It's moving very rapidly now to client/ server. NT provides a great base for building client/server apps with Windows on the client and NT on the server.

The next step is a truly distributed environment where companies will be moving the data from a centralized location to the people who actually need it. To do that requires a whole set of services, such as data replication, management of wide area networks, a sophisticated directory, and utilizing the file system for more than simple storage. Now that we have the foundation in place with NT, our focus is to add those services that provide people with distributed capabilities.

I think people are moving toward distributed services and to do that you need a foundation like NT. Then you've got to build your services on top of that. The foundation is in place, and now we're investing in the pieces on top.

If you could tell Windows NT developers one thing, what would it be?

The key to successfully moving forward is to exploit the things that Win32 provides, to focus on developing great Win32 apps by building the best possible high-performance applications. They should utilize the functions and leverage the capabilities in Win32 and OLE to differentiate their product from their competitors' and solve their customers' problems. We built the operating system to have the capabilities to solve tough customer-driven problems. That only works if the developers exploit everything that's there. The key is to just go for it.