While Unix personality modules are designed to function as if they were applications, both Microsoft's and IBM's entries in the portable 32-bit operating-system sweepstakes take a more integrated approach. Microsoft Windows NT and IBM's forthcoming Workplace OS have been specifically designed to support emulation of multiple operating-system personalities, although the difference between the two systems' approaches is striking.
Windows NT supports five operating-system personalities: MS-DOS, 16-bit Windows, OS/2 1.x, Posix, and 32-bit Windows. All five personalities are implemented as NT "environment subsystems"; each runs in its own protected user space. The Win32 subsystem handles display, keyboard, and mouse support for the other four personalities.
DOS and 16-bit Windows a
pplications run via VDMs (virtual DOS machines), each of which emulates a complete 80x86 computer running MS-DOS. In NT, a VDM is a Win32 application; thus, like a typical Unix personality module, NT DOS and 16-bit Windows applications effectively float in a layer directly above the Win32 subsystem.
The OS/2 and Posix subsystems are a different matter. As full-scale NT subsystems themselves, they communicate with the Win32 subsystem for user input and output, but they also communicate directly with the NT Executive for other operating-system services. The OS/2 subsystem can run many current character-mode OS/2 applications, including OS/2 SQL Server, and it supports named pipes and NetBIOS.
But the Posix subsystem is remarkably limited, despite direct access to kernel services. Posix applications must be compiled specifically for Windows NT; NT does not support binary code intended for any other Posix-compliant operating systems, such as Unix. In addition, NT's Posix subsystem does not directly
support printing, does not support network access except for remote file systems, and does not support any facilities of the Win32 subsystem such as memory-mapped files or graphics.
Compared to NT, IBM's forthcoming Workplace OS uses a more straightforward organization. While some NT personalities go through the Win32 subsystem and others deal directly with the NT kernel, all Workplace OS personalities have direct access to kernel services. Workplace OS currently supports three personality servers: an OS/2 server for OS/2 applications, an AIX server that mimics IBM's version of Unix, and an MVM (multiple virtual machines) server for DOS and 16-bit Windows applications.
Workplace OS is built on a version of Mach 3.0. The IBM microkernel supplies only a very limited set of services; it is essentially a software backplane into which other modules, called servers, connect. The personality servers function exactly like any other Workplace OS servers. Each runs in its own protected memory space and co
mmunicates directly with the microkernel and, through it, other servers.
However, all personality servers are not created equal. IBM initially plans two versions of Workplace OS, one the OS/2 Workplace Shell, the other, Unix CDE (common desktop environment). In each case, the dominant personality will do double duty, providing both the capabilities required for its own applications and the desktop GUI and default execution semantics for the other personalities. On a standard Workplace OS system, the OS/2 (or Unix) personality is dominant. The other personality servers, known as alternative personalities, don't contain code to provide these services.
However, dominance is entirely arbitrary in Workplace OS. The Workplace OS could be given a Windows look and feel, although IBM has no plans to do so. IBM says the server interfaces for Workplace OS will be published, so constructing dominant and alternative personalities will be practical for ISVs (independent software vendors). Additional personali
ties can also be added by IBM or other vendors; although none have been announced, a Mac personality is rumored as a future addition.
In practice, announcements and demonstrations are currently the limit of Workplace OS's functionality, because it is a product in development rather than a shipping package like NT. In recent demonstrations, for example, Workplace OS's Unix and DOS personalities were both character-based, and users could only hot-key between them and the OS/2 GUI.
Technically, both Windows NT and Workplace OS use modular subsystems to support multiple operating-system personalities. Paul Giangarra, lead architect for Workplace OS, is enthusiastic about the idea of other software vendors developing additional personalities (or, alternatively, personality-neutral services). Microsoft's director of business development, Bob Kruger, says the whole reason NT includes Posix support is to demonstrate that subsystems can be added, either by Microsoft or other vendors, that connect directl
y to the NT Executive without running as Win32 applications.
In fact, the two approaches seem very comparable at a technical level. Then why does Workplace OS's approach to multiple personalities seem so robust, promising the potential ability to run every significant desktop operating system, while NT's non-Windows personalities seem thoroughly undeveloped? One reason may be that it's easier to create a robust plan than a working operating system with robust implementations of multiple personalities.
But there's also clearly a difference in business philosophy. IBM is pursuing multiple personalities, while Microsoft appears to be discarding them. "How many people are actually going to write a Posix application?" asks Kruger. And he downplays NT's ability to run OS/2 applications: "At the end of the day, people will buy Windows NT because it runs Windows," Kruger insists. It's true that with good support for Windows applications, NT already has many of the benefits that multiple personalities pr
omise. But only time will tell if a Windows-only philosophy will help or hurt NT in its competition with other advanced operating systems.